
Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-23 15:06



Toto video je o „viacerých“. Zaoberáme sa multitaskingom, viacjadrami a multiclientsmi. Pred chvíľou som vyrobil diaľkové ovládanie s dvoma ESP: klientom a prístupovým bodom. Na základe toho dnes vytvoríme server s viacerými klientmi. To znamená, že budeme mať viacerých klientov pripojených v jednom ESP.
Dnešná lekcia teda zahŕňa vytvorenie servera v ESP32, pridanie nových klientov do slučky a spracovanie požiadaviek v inom jadre. Klienti odošlú informácie o zmene stavu svojich pinov a server tieto zmeny stavu reprodukuje.
Krok 1: Ukážka
Krok 2: Pripojenie servera

Krok 3: Zostavenie klienta

Krok 4: Flow - server

Krok 5: Tok - klient

Krok 6: Client.ino
Deklarácie a premenné
#include // Viac informácií // Vývoj servera žiadny server #define SSID "ESP32Server" #define PASSWORD "87654321" #define SERVER_PORT 5000 // Objete viac ako jeden server a pripojíte server WiFiClient klienta; // Struct que define os dados que vamos enviar (deve ser igual no server) typedef struct {int number; int stav; } Pin; // Množstvo pinos que iremos ler e enviar o status #define PIN_COUNT 2 // Array com os pinos definid // // caso vamos trabalhar com os 21 e 19 mas você pode alterar para para os pinos que desejar Pin pins [PIN_COUNT] = { {.číslo = 21}, {.číslo = 19}};
Nastaviť
void setup () {Serial.begin (115200); // Tempo pre úvahy a ďalšie prípady client.setTimeout (5000); // Pripojenie k WiFi a pripojenie Wi -Fi (); connectClient (); pre (int i = 0; i
Nastaviť WiFi
void setupWiFi () {Serial.print ("Connecting to" + String (SSID)); // Pripojenie k Wi -Fi pripojeniu k internetu cez ESP WiFi.begin (SSID, HESLO); // Esperamos conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); oneskorenie (500); } // Pozrite sa na WiFi pripojenie Serial.println (); Serial.println („Pripojené!“); }
ConnectClient
void connectClient () {Serial.println ("pripájajúci sa klient"); // Esperamos conectar com o server while (! Client.connect (WiFi.gatewayIP (), SERVER_PORT)) {Serial.print ("."); oneskorenie (500); } // Pozrite sa na to, čo je pripojené k serveru Serial.println (); Serial.println („Klient pripojený!“); }
Slučka
void loop () {// Pozrite sa na ďalšie možnosti pripojenia WiFi, pripojte mandamos if (WiFi.status ()! = WL_CONNECTED) {setupWiFi (); }}
HandleConnection
void handleConnection (void* pvParameters) {// DŮLEŽITÉ: Koniec koncového bodu, počet koncových tlačidiel nekonečnej slučky while (true) {// Se não estiver conectado com o server, mandamos conectar if (! client.connected ()) {connectClient (); } // Para cada pino, verificamos se mudou o estado. Pozrite sa na server alebo server o novo vypočítané (int i = 0; i
hasPinStatusChanged
// Verifikácia prebieha a prebieha načítavanie polí // Retorna 'true' sa mudou ou 'false' caso contrário boolean hasPinStatusChanged (int i) {// Faz a leitura do pino int pinStatus = digitalRead (pins .číslo); // Se o estado do pino for differentente if (pins .status! = PinStatus) {// Guardamos o novo estado e retornamos true pins .status = pinStatus; návrat true; } // Só chegará aqui se o estado não foi alterado // Então retornamos falso return false; }
sendPinStatus
// Enva para o server os dados do pino on posição 'i' do arrayvoid sendPinStatus (int i) {client.write ((uint8_t*) & pins , sizeof (Pin)); client.flush (); }
Krok 7: Server.ino
Deklarácie a premenné
#include #include // Dados da rede // Deve ser igual no Client #define SSID "ESP32Server" #define PASSWORD "87654321" #define SERVER_PORT 5000 // Criamos um server on porta definida por 'SERVER_PORT' WiFiServer server (SERVER_PORT); // Vektorové ďalšie klienti sa zhodujú s hlavnými požiadavkami štandardu:: vektoroví klienti; // Struct que define os dados que vamos enviar (deve ser igual no client) typedef struct {int number; int stav; } Pin;
Nastaviť
void setup () {Serial.begin (115200); // Criamos and rede WiFi e initiamos o server setupWiFi (); server.begin (); xTaskCreatePinnedToCore (handleClients, // Função que será executada "handleClients", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamos) 2, // Prioridade da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Número do core que será executada a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
Nastavenie Wi -Fi
neplatné nastavenieWiFi () {// Coloca este ESP como Access Point WiFi.mode (WIFI_AP); // SSID a ostatné sekcie, ktoré sú pripojené k ESP WiFi.softAP (SSID, HESLO); }
Slučka
void loop () {// Verifikácia sa týka nového klienta, ktorý sa rozhodne pripojiť WiFiClient client = server.available (); // Se sim colocamos ele no vector if (client) {clients.push_back (client); }}
HandleClients
void handleClients (void* pvParameters) {// DŮLEŽITÉ: Koniec koncového bodu, počet fisar presa em um slučiek nekonečný while (true) {// Para cada client que temos no vector for (int i = 0; i
Krok 8: Súbory
Stiahnite si súbory
INO
Odporúča:
Klonujte akékoľvek diaľkové ovládanie pomocou Arduino Nano: 5 krokov

Klonujte akékoľvek diaľkové ovládanie pomocou Arduino Nano: Klonujte akékoľvek diaľkové ovládanie pomocou Arduino Nano
Diaľkové ovládanie založené na prehliadači Arduino (Linux): 9 krokov (s obrázkami)

Diaľkové ovládanie založené na prehliadači Arduino (linux): Máme deti. Milujem ich na kusy, ale keď zapnú detské kanály, stále skryjú diaľkové ovládanie pre satelit a televíziu. Potom sa to deje denne niekoľko rokov a potom, čo mi moja drahá manželka umožnila
Ako: Inštalácia Raspberry PI 4 bezhlavého (VNC) s obrazovým procesorom Rpi a obrázkami: 7 krokov (s obrázkami)

Ako na to: Inštalácia Raspberry PI 4 bez hlavy (VNC) s obrázkom Rpi a obrázkami: Plánujem použiť tento nástroj Rapsberry PI v mnohých zábavných projektoch späť na mojom blogu. Neváhajte sa na to pozrieť. Chcel som sa vrátiť k používaniu svojho Raspberry PI, ale na novom mieste som nemal klávesnicu ani myš. Chvíľu to bolo, odkedy som nastavil Raspberry
IR diaľkové ovládanie pre váš počítač s Arduino: 6 krokov

IR diaľkové ovládanie pre váš počítač s Arduino: S týmto prijímačom budete ovládať počítač na diaľku vďaka IR modulu a Arduinu. Lenivý režim aktivovaný ^^
ESP8266 RGB LED STRIP WIFI ovládanie - NODEMCU Ako IR diaľkové ovládanie pre LED pás ovládané cez Wifi - Ovládanie smartfónu RGB LED STRIP: 4 kroky

ESP8266 RGB LED STRIP WIFI ovládanie | NODEMCU Ako IR diaľkové ovládanie pre LED pás ovládané cez Wifi | Ovládanie smartfónu RGB LED STRIP: Ahoj, v tomto návode sa naučíme, ako používať nodemcu alebo esp8266 ako IR diaľkové ovládanie na ovládanie RGB LED pásu a Nodemcu budete ovládať smartfónom cez wifi. V zásade teda môžete RGB LED STRIP ovládať pomocou svojho smartfónu