Talaan ng mga Nilalaman:
- Hakbang 1: Pagpapakita
- Hakbang 2: Mounting Server
- Hakbang 3: Assembly ng Client
- Hakbang 4: Daloy - Server
- Hakbang 5: Daloy - Client
- Hakbang 6: Client.ino
- Hakbang 7: Server.ino
- Hakbang 8: Mga File
Video: Arduino IDE With Dual Core: Remote Control: 8 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Ang video na ito ay tungkol sa “multi.” Nakikipag-usap kami sa multitasking, multicores, at multiclients. Kanina lang, gumawa ako ng isang remote control gamit ang dalawang mga ESP: isang kliyente at isang access point. Batay dito, magse-set up kami ngayon ng isang maraming server. Nangangahulugan ito na magkakaroon kami ng maraming kliyente na nakakonekta sa isang solong ESP.
Samakatuwid, ang aralin ngayon ay nagsasangkot ng paglikha ng isang server sa ESP32, ang pagdaragdag ng mga bagong kliyente sa loop, at ang paghawak ng mga kahilingan sa isa pang core. Ang mga kliyente ay magpapadala ng impormasyon tungkol sa pagbabago ng estado ng kanilang mga pin, at gagawa ng server ang mga pagbabagong ito ng estado.
Hakbang 1: Pagpapakita
Hakbang 2: Mounting Server
Hakbang 3: Assembly ng Client
Hakbang 4: Daloy - Server
Hakbang 5: Daloy - Client
Hakbang 6: Client.ino
Mga deklarasyon at variable
#include // Dados da rede // Deve ser giual no Server #define SSID "ESP32Server" #define PASSWORD "87654321" #define SERVER_PORT 5000 // Mag-email sa isang client ng WiFiClient client; // Struct que define os dados que vamos enviar (deve ser igual no server) typedef struct {int number; int status; } I-pin; // Quantidade de pinos que iremos ler e enviar o status #define 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 pins [PIN_COUNT] = { {.number = 21}, {.number = 19}};
Pag-set up
void setup () {Serial.begin (115200); // Tempo para isaalang-alang ang isang conexão como perdida client.setTimeout (5000); // Conectamos à rede WiFi at conectamos ao server setupWiFi (); connectClient (); para sa (int i = 0; i
Pag-setup ng WiFi
void setupWiFi () {Serial.print ("Kumokonekta sa" + String (SSID)); // Conectamos à rede WiFi criado pelo outro ESP WiFi.begin (SSID, PASSWORD); // Esperamos conectar habang (WiFi.status ()! = WL_CONNected) {Serial.print ("."); pagkaantala (500); } // Se chegou aqui está conectado à rede WiFi Serial.println (); Serial.println ("Nakakonekta!"); }
ConnectClient
void connectClient () {Serial.println ("Pagkonekta sa kliyente"); // Esperamos conectar com o server habang (! Client.connect (WiFi.gatewayIP (), SERVER_PORT)) {Serial.print ("."); pagkaantala (500); } // Se chegou aqui está conectado com o server Serial.println (); Serial.println ("Nakakonekta ang kliyente!"); }
Loop
void loop () {// Se não estiver conectado à rede WiFi, mandamos conectar if (WiFi.status ()! = WL_CONNected) {setupWiFi (); }}
Koneksyon sa HandleConnection
void handleConnection (void * pvParameter) {// IMPORTANTE: Isang tarefa não pode terminar, deve ficar presa em um loop infinito habang (totoo) {// Se não estiver conectado com o server, mandamos conectar if (! client.connected ()) {connectClient (); } // Para cada pino, verificamos se mudou o estado. Tingnan ang server para sa server o novo estado para sa (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 (pins .bilang); // Se o estado do pino for diferente if (pins .status! = PinStatus) {// Guardamos o novo estado e retornamos true pins .status = pinStatus; bumalik totoo; } // Só chegará aqui se o estado não foi alterado // Então retornamos falso return false; }
sendPinStatus
// Envia para o server os magiging do pino na posição 'i' do arrayvoid sendPinStatus (int i) {client.write ((uint8_t *) & pins , sizeof (Pin)); client.flush (); }
Hakbang 7: Server.ino
Mga deklarasyon at variable
#include #include // Dados da rede // Deve ser igual no Client #define SSID "ESP32Server" #define PASSWORD "87654321" #define SERVER_PORT 5000 // Criamos um server na porta definida por 'SERVER_PORT' WiFiServer server (SERVER_PORT); // Vector onde vamos adicionar os client conforme eles forem conectando std:: vector kliyente; // Struct que define os dados que vamos enviar (deve ser igual no client) typedef struct {int number; int status; } I-pin;
Pag-set up
void setup () {Serial.begin (115200); // Criamos a rede WiFi and iniciamos o server setupWiFi (); server.begin (); xTaskCreatePinnedToCore (handleClients, // Função que será executiveada "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 sa loop ficar livre com o core 1)}
SetupWiFi
void setupWiFi () {// Coloca este ESP como Access Point WiFi.mode (WIFI_AP); // SSID e Senha para sa isang koneksyon ng ESP WiFi.softAP (SSID, PASSWORD); }
Loop
void loop () {// Verifica se um novo client está tentando se conectar WiFiClient client = server.available (); // Se sim colocamos ele no vector if (client) {kliyente.push_back (client); }}
Mga kliyente sa Handle
void handleClients (void * pvParameter) {// IMPORTANTE: Isang tarefa não pode terminar, deve ficar presa em um loop infinito habang (totoo) {// Para sa mga client ay walang mga vector para sa (int i = 0; i
Hakbang 8: Mga File
I-download ang mga file
INO
Inirerekumendang:
Murang Dual Dual 30V / 2A Project Power Supply: 7 Hakbang (na may Mga Larawan)
Murang Dobleng 30V / 2A Project Power Supply: Kapag naghahanap ng mga module ng supply ng kuryente at mga LCD screen, natagpuan ko ang isang pares ng mga murang LCD 35W power supply module na na-rate sa 0.5-30V @ 3A (50W na may heatsink at 4A surge kasalukuyang). Mayroon itong pagsasaayos ng Boltahe at kasalukuyang limiter. Mayroon ding
IRduino: Arduino Remote Control - Gayahin ang isang Nawala na Remote: 6 na Hakbang
IRduino: Arduino Remote Control - Gayahin ang isang Nawala na Remote: Kung nawala sa iyo ang remote control para sa iyong TV o DVD player, alam mo kung gaano nakakainis na maglakad ka, hanapin, at gamitin ang mga pindutan sa mismong aparato. Minsan, ang mga pindutan na ito ay hindi nag-aalok ng parehong pag-andar tulad ng remote. Tanggapin
ESP8266 RGB LED STRIP WIFI Control - NODEMCU Bilang isang IR Remote para sa Led Strip Controlled Over Wifi - RGB LED STRIP Smartphone Control: 4 Mga Hakbang
ESP8266 RGB LED STRIP WIFI Control | NODEMCU Bilang isang IR Remote para sa Led Strip Controlled Over Wifi | RGB LED STRIP Smartphone Control: Kumusta mga tao sa tutorial na ito matututunan natin kung paano gamitin ang nodemcu o esp8266 bilang isang IR remote upang makontrol ang isang RGB LED strip at ang Nodemcu ay makokontrol ng smartphone sa paglipas ng wifi. Kaya karaniwang maaari mong makontrol ang RGB LED STRIP sa iyong smartphone
Ordinaryong Remote Control Kit na Binago Sa Apat na-channel na RC Laruang Remote Control: 4 na Hakbang
Ordinaryong Remote Control Kit na Binago Sa Apat na-channel na RC Laruang Remote Control:改造 方法 非常 简单。 只需 准备 一些 瓦楞纸 板 , 然后 按照 视频 教程 完成 这个 电子 项目 并 为 您 服务。 玩具 车船 提供 远程 无线 控制。
Remote Remote Control: 11 Mga Hakbang (na may Mga Larawan)
Remote Remote Control: Mayroon akong isang bagong panganak na sanggol at hindi niya iniisip na dapat siyang matulog hangga't ang aking Asawa at maaari ko rin siyang hilingin. Ang isang bagay na pinapanatili siyang masaya sa kanyang kuna ay ang mobile na nakabitin sa kanya. Kaya't kapag nagising siya kung kailangan namin ng isa pang 25mins o higit pa sa sl