Mündəricat:

Arduino IDE Dual Core: Uzaqdan İdarəetmə: 8 Addım
Arduino IDE Dual Core: Uzaqdan İdarəetmə: 8 Addım

Video: Arduino IDE Dual Core: Uzaqdan İdarəetmə: 8 Addım

Video: Arduino IDE Dual Core: Uzaqdan İdarəetmə: 8 Addım
Video: Управляем адресными светодиодами на ESP32, прошивка WLED, применение в Home Assistant 2024, Noyabr
Anonim
Image
Image
Nümayiş
Nümayiş

Bu video hamısı "multi" mövzusundadır. Çox vəzifəli, çox mərkəzli və çoxlu müştəri ilə məşğul oluruq. Bir müddət əvvəl iki ESP ilə uzaqdan idarəetmə qurdum: müştəri və giriş nöqtəsi. Buna əsaslanaraq, bu gün çoxfunksiyalı bir server quracağıq. Bu o deməkdir ki, bir ESP -də birdən çox müştərimiz olacaq.

Beləliklə, bugünkü dərs ESP32 -də bir serverin yaradılması, döngəyə yeni müştərilərin əlavə edilməsi və başqa bir nüvədə olan sorğuların işlənməsini əhatə edir. Müştərilər pinlərinin vəziyyət dəyişikliyi haqqında məlumat göndərəcək və server bu vəziyyət dəyişikliklərini təkrarlayacaq.

Addım 1: nümayiş

Addım 2: Serverin quraşdırılması

Quraşdırma serveri
Quraşdırma serveri

Addım 3: Müştəri Məclisi

Müştəri Məclisi
Müştəri Məclisi

Addım 4: Flow - Server

Axın - Server
Axın - Server

Addım 5: Flow - Müştəri

Axın - Müştəri
Axın - Müştəri

Addım 6: Client.ino

Bəyannamələr və dəyişənlər

#daxil edin // Yenidən qurun // Server qurun #SSID "ESP32Server" təyin edin #ŞİFRE "87654321" #define SERVER_PORT 5000 // WiFiClient müştəri ilə əlaqə qurun; // Strukturu təyin edin və ya yoxlayın (heç bir server yoxdur) typedef struct {int number; int statusu; }Pin; // Vəziyyət #PIN_COUNT 2 -ni təyin edin // Array com os pinos definitos // No 21 casus vabos trabalhar com os 21 e 19 mas poke alterar para pin pines pin pin [PIN_COUNT] = { {.sayı = 21}, {.sayı = 19}};

Qurmaq

void setup () {Serial.begin (115200); // Müvəqqəti müştəri müştəri.setTimeout (5000); // Wi -Fi və ya server qurmaq üçün Wi -Fi bağlantısı (); connectClient (); üçün (int i = 0; i

WiFi qurmaq

boş quraşdırmaWiFi () {Serial.print ("Bağlanır" + String (SSID)); // ESP WiFi.begin (SSID, PASSWORD) ilə işləyən WiFi bağlantısı; // Esperamos conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); gecikmə (500); } // WiFi Serial.println () ilə əlaqə qurun; Serial.println ("Bağlandı!"); }

ConnectClient

void connectClient () {Serial.println ("Müştəri bağlayır"); // Esperamos server serveri ilə əlaqə qurarkən (! Client.connect (WiFi.gatewayIP (), SERVER_PORT)) {Serial.print ("."); gecikmə (500); } // Serial.println () serveri ilə əlaqə qurun; Serial.println ("Müştəri bağlı!"); }

Döngə

void loop () {// Wi -Fi -nı dəyişdirmək, əgər (WiFi.status ()! = WL_CONNECTED) {setupWiFi (); }}

Əlaqə Əlaqəsi

void handleConnection (void* pvParameters) {// ÖNƏMİZ: İstifadəçi məlumatlarını sona çatdırmaq üçün vaxt ayırmaqla (doğru) {// İstifadəçi serverlə əlaqə qurursa, mandamos conectar if (! client.connected ()) {connectClient (); } // Müqəddəs Yazıların müddəaları. (İnt i = 0; i

hasPinStatusChanged

// Verilənlər sıralanır və ya sıralanır. .sayı); // Diferente if (sancaqlar . Statusu! = PinStatus) {// mühafizəsi əsl sancaqlar .status = pinStatus; doğru qayıtmaq; } // Şəxsi məlumatların dəyişdirilməsi // Səhvlərin geri qaytarılması yalan; }

sendPinStatus

// Göndərmə ilə əlaqəli server göndərmək üçün SendPinStatus (int i) {client.write ((uint8_t*) & pinlər , ölçüsü (Pin)); müştəri.flush (); }

Addım 7: Server.ino

Bəyannamələr və dəyişənlər

#include #include // Dados da rede // Heç bir Müştəri yoxla #SSID "ESP32Server" ni təyin et #PAROLU "87654321" #define SERVER_PORT 5000 // 'SERVER_PORT' WiFiServer serveri (SERVER_PORT) üçün heç bir server yoxdur. // Müştərilər bir -biri ilə əlaqə qurduqdan sonra: vektor müştəriləri; // Strukturu müəyyən edin və ya yoxlayın (müştəri yoxdur) typedef struct {int number; int statusu; }Pin;

Qurmaq

void setup () {Serial.begin (115200); // WiFi qurmaq və ya server qurmaq üçün Wi -Fi (); server.begin (); xTaskCreatePinnedToCore (handleClients, // Funcão que será executada "handleClients", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parametro da tarefa (no caso não usamos) 2, // Priorityade da tarefa NULL, // İstifadəçi məlumatlarının təhlili (heç bir dəqiqlik yoxdur) 0); // Başlanğıcda bir tapşırıq yerinə yetirmək lazımdır (əsas 0 -dan çox olmayan dövrdə)

Wi -Fi qurmaq

etibarsız quraşdırmaWiFi () {// Coloca este ESP como Access Point WiFi.mode (WIFI_AP); // SSID və ESP WiFi.softAP (SSID, PASSWORD) ilə əlaqə qurmaq; }

Döngə

void loop () {// WiFi müştəri ilə əlaqə qurmaq üçün WiFiClient müştəri = server.available (); // Heç bir vektor yoxdursa (müştəri) {clients.push_back (müştəri); }}

HandleClients

void handleClients (void* pvParameters) {// ÖNEMLİ: Bir terminalı yoxlamaq, sona çatdırmaq üçün sonsuz vaxt (doğru) {// Para cada müştəri üçün heç bir vektor yoxdur (int i = 0; i

Addım 8: Fayllar

Faylları yükləyin

PDF

MƏN YOX

Tövsiyə: