فهرست مطالب:
- مرحله 1: تظاهرات
- مرحله 2: نصب سرور
- مرحله 3: مونتاژ مشتری
- مرحله 4: جریان - سرور
- مرحله 5: جریان - مشتری
- مرحله 6: Client.ino
- مرحله 7: Server.ino
- مرحله 8: فایل ها
![Arduino IDE با دو هسته: کنترل از راه دور: 8 مرحله Arduino IDE با دو هسته: کنترل از راه دور: 8 مرحله](https://i.howwhatproduce.com/images/006/image-17056-26-j.webp)
تصویری: Arduino IDE با دو هسته: کنترل از راه دور: 8 مرحله
![تصویری: Arduino IDE با دو هسته: کنترل از راه دور: 8 مرحله تصویری: Arduino IDE با دو هسته: کنترل از راه دور: 8 مرحله](https://i.ytimg.com/vi/AI-zzmSZVfw/hqdefault.jpg)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
![Image Image](https://i.howwhatproduce.com/images/006/image-17056-28-j.webp)
![](https://i.ytimg.com/vi/hkkktLZJR4E/hqdefault.jpg)
![تظاهرات تظاهرات](https://i.howwhatproduce.com/images/006/image-17056-29-j.webp)
این ویدئو همه در مورد "چند" است. ما با چند وظیفه ای ، چند هسته ای و چند کاره سروکار داریم. چندی پیش ، من یک کنترل از راه دور با دو ESP ایجاد کردم: مشتری و نقطه دسترسی. بر این اساس ، امروز ما سرور چند مشتری را راه اندازی می کنیم. این بدان معناست که ما چندین مشتری در یک ESP واحد متصل داریم.
بنابراین ، درس امروز شامل ایجاد یک سرور در ESP32 ، افزودن کلاینت های جدید در حلقه و رسیدگی به درخواست ها در هسته دیگر است. مشتریان اطلاعات مربوط به تغییر وضعیت پین های خود را ارسال می کنند و سرور نیز این تغییرات حالت را بازسازی می کند.
مرحله 1: تظاهرات
مرحله 2: نصب سرور
![نصب سرور نصب سرور](https://i.howwhatproduce.com/images/006/image-17056-30-j.webp)
مرحله 3: مونتاژ مشتری
![مجمع مشتریان مجمع مشتریان](https://i.howwhatproduce.com/images/006/image-17056-31-j.webp)
مرحله 4: جریان - سرور
![جریان - سرور جریان - سرور](https://i.howwhatproduce.com/images/006/image-17056-32-j.webp)
مرحله 5: جریان - مشتری
![جریان - مشتری جریان - مشتری](https://i.howwhatproduce.com/images/006/image-17056-33-j.webp)
مرحله 6: Client.ino
بیانیه ها و متغیرها
#شامل // Dados da rede // Deve ser giual no Server #تعریف SSID "ESP32Server" #definine PASSWORD "87654321" #deverine SERVER_PORT 5000 // Objeto que vai fazer a conexão com or server WiFiClient client؛ // Struct que define os dados que vamos enviar (deve ser igual no server) typedef struct {int number؛ وضعیت int ؛ } پین ؛ // Quantidade de pinos que iremos ler e enviar o status #deinine PIN_COUNT 2 // Array com os pinos definidos // No caso vamos trabalhar com os 21 e 19 mas você pode alterar para os pinos que desejar پین پین ها [PIN_COUNT] = { {.number = 21}، {.number = 19}}؛
برپایی
void setup () {Serial.begin (115200)؛ // Tempo paracommrar a conexão como perdida client.setTimeout (5000)؛ // Conectamos de rede WiFi e conectamos ao server setupWiFi ()؛ connectClient ()؛ برای (int i = 0 ؛ i
WiFi را راه اندازی کنید
void setupWiFi () {Serial.print ("اتصال به" + رشته (SSID)) ؛ // Conectamos à rede WiFi criado pelo outro ESP WiFi.begin (SSID ، PASSWORD) ؛ // Esperamos conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print (".")؛ تأخیر (500) ؛ } // Se chegou aqui está conectado de rede WiFi Serial.println ()؛ Serial.println ("متصل است!") ؛ }
ConnectClient
void connectClient () {Serial.println ("اتصال مشتری")؛ // Esperamos conectar com o server while (! client.connect (WiFi.gatewayIP ()، SERVER_PORT)) {Serial.print (".")؛ تأخیر (500) ؛ } // Se chegou aqui está conectado com o server Serial.println ()؛ Serial.println ("مشتری متصل است!") ؛ }
حلقه
void loop () {// Se não estiver conectado à rede WiFi، mandamos conectar if (WiFi.status ()! = WL_CONNECTED) {setupWiFi ()؛ }}
HandleConnection
void handleConnection (void* pvParameters) {// IMPORTANTE: a tarefa não pode termin، deve ficar presa em um loop infinito while (true) {// Se não estiver conectado com o server، mandamos conectar if (! client.connected ()) {connectClient ()؛ } // Para cada pino، verificamos se mudou o estado. Se mudou enviamos para o server o novo estado for (int i = 0؛ i
hasPinStatusChanged
// Verifica se o estado do pino na posição 'i' do array mudou // Retorna 'true' se mudou ou 'false' caso contrário boolean hasPinStatusChanged (int i) {// Faz a leitura do pino int pinStatus = digitalRead (پین [من].شماره) ؛ // Se o estado do pino for diferente if (pins .status! = pinStatus) {// Guardamos o novo estado e retornamos pin واقعی .status = pinStatus؛ بازگشت واقعی ؛ } // Só chegará aqui se o estado não foi alterado // Então retornamos falso return false؛ }
sendPinStatus
// Envia para o server os dados do pino na posição 'i' do arrayvoid sendPinStatus (int i) {client.write ((uint8_t*) & pin ، sizeof (Pin))؛ client.flush ()؛ }
مرحله 7: Server.ino
بیانیه ها و متغیرها
#include #include // Dados da rede // Deve ser igual no Client #definine SSID "ESP32Server" #define PASSWORD "87654321" #deverine SERVER_PORT 5000 // Criamos um server و porta definida por 'SERVER_PORT' سرور WiFiServer (SERVER_PORT) ؛ // وکتور onde vamos adicionar os client conforme eles forem conectando std:: vector client؛ // Struct que define os dados que vamos enviar (deve ser igual no client) typedef struct {int number؛ وضعیت int ؛ } پین ؛
برپایی
void setup () {Serial.begin (115200)؛ // Criamos a rede WiFi e iniciamos o server setupWiFi ()؛ server.begin ()؛ xTaskCreatePinnedToCore (handleClients، // Função que será exeada "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á exeada a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
SetupWiFi
void setupWiFi () {// Coloca este ESP como Access Point WiFi.mode (WIFI_AP) ؛ // SSID e Senha para se conectarem a este ESP WiFi.softAP (SSID، PASSWORD)؛ }
حلقه
void loop () {// Verifica se um novo client está tentando se conectar WiFiClient client = server.available ()؛ // Se sim colocamos ele no vector if (client) {client.push_back (client)؛ }}
HandleClients
void handleClients (void* pvParameters) {// IMPORTANTE: A tarefa não pode terminal، deve ficar presa em um loop infinito while (true) {// Para cada client que temos no vector for (int i = 0؛ i
مرحله 8: فایل ها
فایلها را بارگیری کنید
من نه
توصیه شده:
ESP8266 - سوکت کنترل از راه دور و از راه دور (امنیت سالمندان): 6 مرحله
![ESP8266 - سوکت کنترل از راه دور و از راه دور (امنیت سالمندان): 6 مرحله ESP8266 - سوکت کنترل از راه دور و از راه دور (امنیت سالمندان): 6 مرحله](https://i.howwhatproduce.com/images/008/image-23290-j.webp)
ESP8266 - سوکت کنترل از راه دور و از راه دور (امنیت سالمندان): اطلاعات: این مونتاژ در صورت فراموشی وسایل وصل شده (عمدتا توسط افراد مسن مبتلا به آلزایمر) به منظور جلوگیری از گرم شدن بیش از حد ، آتش سوزی و حوادث است. پس از فعال شدن دکمه ، سوکت 110/220 VAC را به مدت 5 دقیقه دریافت می کند (دیگری
کنترل از راه دور جهانی از راه دور با Node-MCU: 12 مرحله
![کنترل از راه دور جهانی از راه دور با Node-MCU: 12 مرحله کنترل از راه دور جهانی از راه دور با Node-MCU: 12 مرحله](https://i.howwhatproduce.com/images/009/image-25372-j.webp)
کنترل از راه دور جهانی با Node-MCU: سلام به همه و به این پروژه خوش آمدید! من یک شخص تنبل هستم و کابوس یک تنبل این است که وقتی متوجه می شوید که راه دور خیلی دور است ، تلویزیون تماشا کنید! متوجه شدم که اگر ریموتم را در دست داشته باشم هرگز خیلی دور نخواهد بود
IRduino: کنترل از راه دور Arduino - تقلید از راه دور از دست رفته: 6 مرحله
![IRduino: کنترل از راه دور Arduino - تقلید از راه دور از دست رفته: 6 مرحله IRduino: کنترل از راه دور Arduino - تقلید از راه دور از دست رفته: 6 مرحله](https://i.howwhatproduce.com/images/012/image-33548-j.webp)
IRduino: کنترل از راه دور Arduino - تقلید از راه دور گمشده: اگر تا به حال کنترل از راه دور تلویزیون یا دستگاه پخش DVD خود را گم کرده اید ، می دانید که مجبور هستید به دکمه های خود دستگاه بروید ، از آن استفاده کنید و از آن استفاده کنید. گاهی اوقات ، این دکمه ها عملکرد مشابهی با ریموت ندارند. دریافت
ESP8266 RGB LED STRIP WIFI کنترل - NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi - کنترل تلفن هوشمند RGB LED STRIP: 4 مرحله
![ESP8266 RGB LED STRIP WIFI کنترل - NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi - کنترل تلفن هوشمند RGB LED STRIP: 4 مرحله ESP8266 RGB LED STRIP WIFI کنترل - NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi - کنترل تلفن هوشمند RGB LED STRIP: 4 مرحله](https://i.howwhatproduce.com/images/001/image-2218-28-j.webp)
ESP8266 RGB LED STRIP WIFI کنترل | NODEMCU به عنوان یک کنترل از راه دور IR برای نوار LED کنترل شده بر روی Wifi | RGB LED STRIP Smartphone Control: سلام بچه ها در این آموزش می آموزیم که چگونه از nodemcu یا esp8266 به عنوان ریموت IR برای کنترل نوار LED RGB استفاده کنید و Nodemcu توسط تلفن هوشمند از طریق وای فای کنترل می شود. بنابراین اساساً می توانید RGB LED STRIP را با تلفن هوشمند خود کنترل کنید
کنترل از راه دور سایه/کنترل از راه دور: 5 مرحله
![کنترل از راه دور سایه/کنترل از راه دور: 5 مرحله کنترل از راه دور سایه/کنترل از راه دور: 5 مرحله](https://i.howwhatproduce.com/images/002/image-4537-105-j.webp)
Shadow/Remote Control Activated Leds: آیا تا به حال خواسته اید یک نور فعال شده در شب یا سایه ایجاد کنید؟ خوب .. در اینجا یک دستورالعمل وجود دارد ، اما یک مورد اضافی وجود دارد: می توانید آن را با کنترل RF از راه دور فعال کنید. این بسیار قدرتمند است ، من می توانم اتاق سوراخ خود را روشن کنم