Orodha ya maudhui:
- Hatua ya 1: Maonyesho
- Hatua ya 2: Kuweka Seva
- Hatua ya 3: Bunge la Wateja
- Hatua ya 4: Mtiririko - Seva
- Hatua ya 5: Mtiririko - Mteja
- Hatua ya 6: Mteja.ino
- Hatua ya 7: Server.ino
- Hatua ya 8: Faili
Video: Arduino IDE Pamoja na Dual Core: Remote Control: 8 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:53
Video hii inahusu "anuwai." Tunashughulika na kazi nyingi, maduka mengi, na vifaa vingi. Wakati uliopita, nilifanya udhibiti wa kijijini na ESP mbili: mteja na mahali pa kufikia. Kulingana na hii, leo tutaanzisha seva yenye vifaa vingi. Hii inamaanisha tutakuwa na wateja wengi waliounganishwa kwenye ESP moja.
Kwa hivyo, somo leo linajumuisha uundaji wa seva katika ESP32, kuongezewa kwa wateja wapya kwenye kitanzi, na utunzaji wa maombi katika msingi mwingine. Wateja watatuma habari juu ya mabadiliko ya hali ya pini zao, na seva itazaa mabadiliko haya ya serikali.
Hatua ya 1: Maonyesho
Hatua ya 2: Kuweka Seva
Hatua ya 3: Bunge la Wateja
Hatua ya 4: Mtiririko - Seva
Hatua ya 5: Mtiririko - Mteja
Hatua ya 6: Mteja.ino
Azimio na vigeugeu
# pamoja na // Dados da rede // Deve ser giual no Server #fasili SSID "ESP32Server" #fasili PASSWORD "87654321" #fafanua SERVER_PORT 5000 // Wasiwasi wanaoshawishi mteja wa mteja wa Wateja wa WiFi; // Muundo wa kufafanua ni nini kinahusu mamos ya wivu (fanya kazi ya kawaida hakuna seva) typedef struct {int number; hali ya int; } Pini; // Quantidade de pinos que iremos ler e enviar o status #fasili PIN_COUNT 2 // Array com os pinos definidos // Hakuna caso vamos trabalhar com os 21 e 19 mas você pode alterar para os pinos que desejar Pin pin [PIN_COUNT] = { {.nambari = 21}, {.nambari = 19}};
Sanidi
kuanzisha batili () {Serial.begin (115200); // Tempo kwa kuzingatia mteja wa conexão como perdida.setTimeout (5000); // Conectamos ni rede WiFi na conectamos ao kuanzisha sevaWiFi (); unganisha Mteja (); kwa (int i = 0; i
Sanidi WiFi
batili setupWiFi () {Serial.print ("Kuunganisha kwa" + Kamba (SSID)); // Conectamos red rede WiFi croado pelo outro ESP WiFi.anza (SSID, PASSWORD); // Esperamos conectar wakati (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); kuchelewesha (500); } // Seggue aqui está conectado to rede WiFi Serial.println (); Serial.println ("Imeunganishwa!"); }
Unganisha Mteja
batili ConnectClient () {Serial.println ("Kuunganisha mteja"); // Esperamos conectar com o server wakati (! Mteja.connect (WiFi.gatewayIP (), SERVER_PORT)) {Serial.print ("."); kuchelewesha (500); } // Seg chegou aqui is conectado com o server Serial.println (); Serial.println ("Mteja ameunganishwa!"); }
Kitanzi
kitanzi batili () {// Tazama kitovu cha redio ya redio ya WiFi, mandamos conectar ikiwa (WiFi.status ()! = WL_CONNECTED) {setupWiFi (); }}
KushughulikiaKuunganisha
Muunganiko wa kushughulikia batili (batili * pvParamita) {// IMPORTANTE: Kituo cha tarefa não pode, onyesha ficar presa em um loop infinito wakati (ni kweli) {/ {mteja wa connect (); } // Para cada pino, verificamos se mudou o estado. Tazama matakwa ya huduma ya seva yako kwa (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 (pini .nambari); // Se o estado do pino for diferente if (pini .status! = PinStatus) {// Guardamos o novo estado e retornamos pini za kweli .status = pinStatus; kurudi kweli; } // Só chegará aqui se o estado não foi alterado // Então retornamos falso kurudi uongo; }
tumaPinStatus
// Envia para o server os dados do pino na posição 'i' do arrayvoid sendPinStatus (int i) {client.write ((uint8_t *) & pini , sizeof (Pin)); mteja.flush (); }
Hatua ya 7: Server.ino
Azimio na vigeugeu
# pamoja # ikiwa ni pamoja // Dados da rede // Deve ser igual no Client #fefine SSID "ESP32Server" #fasili PASSWORD "87654321" #fafanua SERVER_PORT 5000 // Criamos um server na porta definida por 'SERVER_PORT' WiFiServer server (SERVER_PORT); // Vector onde vamos adicionar os wateja hutegemea eles forem conectando std:: wateja wa vector; // Muundo wa kufafanua ni nini kinahusu mamos ya wivu (fanya kawaida hakuna mteja) typedef struct {int number; hali ya int; } Pini;
Sanidi
kuanzisha batili () {Serial.begin (115200); // Criamos rede WiFi na vifaa vya kuanzisha sevaWiFi (); anza (); 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 (hakuna caso não precisamos) 0); // Nero hufanya msingi wa kufanya kazi (usamos msingi 0 kwa kitanzi cha picha ya msingi 1)}
UsanidiWiFi
batili setupWiFi () {// Coloca este ESP como Access Point WiFi.mode (WIFI_AP); // SSID na Senha kwa mfano wa ESP WiFi.softAP (SSID, PASSWORD); }
Kitanzi
kitanzi batili () {/ // Se sim colocamos ele no vector ikiwa (mteja) {clients.push_back (mteja); }}
Wateja Handle
Wateja wa kushughulikia batili (batili * pvParameter) {// IMPORTANTE: Terefa não pode terminar, deve ficar presa em um loop infinito wakati (kweli) {// Para cada client que temos no vector for (int i = 0; i
Hatua ya 8: Faili
Pakua faili
INO
Ilipendekeza:
Jinsi ya Kuweka OSMC Pamoja na Hyperion kwenye Raspberry Pi Pamoja na Ukanda wa WS2812b: Hatua 8
Jinsi ya Kuanzisha OSMC Pamoja na Hyperion kwenye Raspberry Pi Na WS2812b Led Strip: Wakati mwingine mimi ni kingereza vizuri sana, wakati mwingine hakuna … Vitu vya kwanza kwanza. Hii ni lugha yangu ya kwanza kufundishwa na Kiingereza sio lugha yangu ya asili, kwa hivyo tafadhali, usiwe mgumu sana kwangu. Hii haitakuwa juu ya jinsi ya kujenga fremu, hiyo ni rahisi. Inahusu usakinishaji
PWM Pamoja na ESP32 - Dimming LED na PWM kwenye ESP 32 Na Arduino IDE: 6 Hatua
PWM Pamoja na ESP32 | Dimming LED na PWM kwenye ESP 32 Na Arduino IDE: Katika maagizo haya tutaona jinsi ya kutengeneza ishara za PWM na ESP32 kwa kutumia Arduino IDE & PWM kimsingi hutumiwa kutoa pato la analog kutoka kwa MCU yoyote na kwamba pato la analog linaweza kuwa chochote kati ya 0V hadi 3.3V (ikiwa ni esp32) & kutoka
Kudhibiti Redio ya RF 433MHZ Kutumia HT12D HT12E - Kufanya Rf Remote Control Kutumia HT12E & HT12D Pamoja na 433mhz: Hatua 5
Kudhibiti Redio ya RF 433MHZ Kutumia HT12D HT12E | Kufanya Udhibiti wa Kijijini wa Rf Kutumia HT12E & HT12D Ukiwa na 433mhz: Katika hii nitafundishwa nitakuonyesha jinsi ya kutengeneza RADIO kijijini kudhibiti ukitumia moduli ya mpokeaji wa mpitishaji wa 433mhz na encode ya HT12E & Kiambatisho cha HT12D IC.Kwa kufundisha hii utatuma na kupokea data ukitumia VITENGO vya bei rahisi sana kama: HT
Taa ya Onyo la Taa ya Mzunguko wa Dual Mini Dual: Hatua 6
Nuru ya Densi ya Alama ya Mzunguko wa Dual Mini: Katika hii inayoweza kufundishwa, tutatengeneza taa ndogo ya taa Unajua, moja ya taa za zamani za kuzunguka ambazo walikuwa wakiweka kwenye vifaa vya ujenzi kabla ya LED kuwa kubwa? Ndio. Moja ya hizo. Hii itakuwa rahisi, na yenye busara
H Bridge (293D) Pamoja na Motors 2 za Hobby na Remote: Hatua 11
H Bridge (293D) Pamoja na Motors 2 za Hobby na Remote: Maagizo haya yataonyesha jinsi unaweza kutumia udhibiti wa kijijini kudhibiti daraja H (293) na motors mbili za kupendeza. Mzunguko huu unaweza kutumika na robot ya msingi ya gurudumu 2 na kudhibiti kijijini. Sehemu zinazotumiwa ni; Popo 1.5