
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59

ESP32 un ESP 8266 ir ļoti pazīstami SoC IoT jomā. Tie ir sava veida svētība IoT projektiem. ESP 32 ir ierīce ar integrētu WiFi un BLE. Vienkārši norādiet savu SSID, paroli un IP konfigurāciju un integrējiet lietas mākonī. Šeit, šajā pamācībā, mēs pārdomāsim dažus IoT pamatnoteikumus, piemēram, IoT platformu, MQTT, nebrīves portālus utt. Tāpēc ļaujiet mums to apskatīt
- IoT arhitektūra ļoti vienkāršos vārdos sastāv no iegultas ierīces un IoT platformas, lai ievietotu ierīci mākonī. Šeit mēs izmantojam UbiDots IoT platformu, lai vizualizētu sensoru datus.
- IP iestatījumu un lietotāja akreditācijas datu pārvaldība lietotājam var sagādāt galvassāpes. Ko darīt, ja lietotājs vēlas mainīt WiFi akreditācijas datus? Ko darīt, ja lietotājs vēlas mainīt DHCP/statiskā IP iestatījumus? ESP32 mirgošana katru reizi nav uzticama un pat nav risinājums šīm problēmām. Tāpēc mēs apmeklēsim nebrīvē pieejamo portālu, lai saglabātu WiFi akreditācijas datus un citas konfigurācijas.
- MQTT tagad kļūst par ļoti izplatītu terminu IoT pasaulē. tā ir pārsniegusi publicēšanas un abonēšanas pieprasījumus un atbildes (HTTP), pateicoties ātrai, stabilai un vienkāršai arhitektūrai.
Šeit, šajā pamācībā, mēs demonstrēsim.
- WiFi un MQTT akreditācijas datu piešķiršana, izmantojot Captive Portal.
- Vairāku sensoru datu publicēšana un abonēšana UbiDots.
- Sensora datu nolasīšana no bezvadu temperatūras un mitruma sensoriem.
- Tīmekļa veidlapas mitināšana no ESP32.
- Lasīšana un rakstīšana no SPIFFS ESP32.
1. darbība. Aparatūras un programmatūras specifikācija

- ESP32 WiFi/BLE
- Bezvadu temperatūras un mitruma sensors
Programmatūras specifikācija
Arduino IDE
2. darbība. Izvērstā portāla izveide



Fiksēts portāls ir tīmekļa lapa, kas tiek parādīta jaunizveidotajiem lietotājiem, pirms viņiem tiek piešķirta plašāka piekļuve tīkla resursiem. Šeit mēs apkalpojam trīs tīmekļa lapas, lai izvēlētos starp DHCP un statiskajiem IP iestatījumiem. mēs varam definēt IP adresi uz ESP divos veidos.
- DHCP IP adrese- tas ir veids, kā dinamiski piešķirt ierīcei IP adresi. ESP noklusējuma IP adrese ir 192.168.4.1
- Statiskā IP adrese- mūsu tīkla ierīcei tiek piešķirta pastāvīga IP adrese. lai ierīcei nodrošinātu statisku IP, mums ir jānosaka IP adrese, vārtejas adrese un apakštīkla maska.
Pirmā tīmekļa lapa tiek mitināta vietnē 192.168.1.77. Šeit lietotājam tiek piedāvātas radio pogas, lai izvēlētos starp DHCP un statiskā IP iestatījumiem. Nākamajā tīmekļa vietnē mums ir jāsniedz ar IP saistīta informācija, lai turpinātu.
HTML kods
Tīmekļa lapu HTML kods ir atrodams šajā Github krātuvē. Lai izveidotu HTML tīmekļa lapas, varat izmantot jebkuru IDE vai teksta redaktoru, piemēram, Sublime vai piezīmju grāmatiņu ++.
- Vispirms izveidojiet HTML tīmekļa lapu, kurā ir divas radio pogas, lai izvēlētos starp DHCP un Static IP Settings.
- Tagad izveidojiet pogu, lai iesniegtu savu atbildi
- Piešķiriet radio pogām kādu nosaukumu.
- ESP Web servera klase ņems šos nosaukumus par argumentiem un saņems radio pogu atbildi, izmantojot šos argumentus
- Tagad ievietojiet pogu "IESNIEGT", lai nosūtītu atbildi uz ierīci. Pārējās tīmekļa lapās mums ir tekstlodziņi.
- Tekstlodziņam piešķiriet nosaukuma vērtību un ievades veidu un pievienojiet pogu Iesniegt, lai iesniegtu atbildi.
- Lai atiestatītu teksta lauka saturu, izveidojiet pogu “RESET”.
3. darbība. WiFi un UbiDots akreditācijas datu nodrošināšana

Galvenā problēma rodas, pārvaldot WiFi akreditācijas datus. Pat ja mums ir WiFiMulti bibliotēka, kur mēs varam ierīcei piešķirt vairākus SSID un paroles, un ierīce izveidos savienojumu ar pieejamo tīklu. Bet ko darīt, ja pieejamais tīkls nav iekļauts WiFiMulti sarakstā. Nepārtraukta ESP32 ierīces mirgošana nav uzticams risinājums.
Lai atrisinātu šo problēmu, mēs mitinām tīmekļa vietni, kurā lietotājs var iesniegt pieejamā tīkla SSID un paroli. Tas darbojas šādi.
- Tīmekļa lapa tiek mitināta statiskajā IP vai DHCP IP, ko lietotājs izvēlējies no piesaistītā portāla
- Šajā tīmekļa vietnē ir teksta lauki SSID, paroles un UBIDOTS marķiera ID ievadīšanai, lai ierīci savienotu ar UbiDots.
- Ievades laukos ievadiet vietējā WiFi SSID un paroli, ievadiet UbiDot marķiera ID un ievadiet IESNIEGT
- Šie akreditācijas dati tiek saglabāti ESP32 EEPROM
- Pēc 60 sekundēm ierīce automātiski atvienosies no AP
- Nākamreiz, ieslēdzot ierīci, lietotājam nav jāveic šī procedūra, ierīce automātiski ielādēs lietotāja akreditācijas datus no EEPROM un turpinās sensoru rādījumu publicēšanu UbiDots.
4. darbība. Sensora rādījumu publicēšana UbiDots
Šeit mēs izmantojam bezvadu temperatūras un mitruma sensorus kopā ar ierīci ESP 32, lai iegūtu temperatūras un mitruma datus. Mēs nosūtām datus uz UbiDots, izmantojot MQTT protokolu. MQTT ievēro publicēšanas un abonēšanas mehānismu, nevis šo pieprasījumu un atbildi. Tas ir ātrāks un uzticamāks par HTTP. Tas darbojas šādi.
- Mēs izmantojam uzdevumu plānotāju, lai ieplānotu uzdevumu, piemēram, datu iegūšana no sensoriem, sensora rādījumu publicēšana, tēma MQTT abonēšana.
- Pirmkārt, iekļaujiet uzdevumu plānotāja galvenes failus, tā instanci un plāno uzdevumus.
- Mēs esam ieplānojuši divus uzdevumus, kas attiecas uz divām dažādām kontroles darbībām.
#define _TASK_TIMEOUT#include
Plānotājs ts;
// --------- Uzdevumi ------------ // Uzdevums tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL un & taskSensorDisable); Uzdevums tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL un & taskWiFiDisable);
1. uzdevums ir sensora vērtības nolasīšanai, šis uzdevums tiek izpildīts 1 sekundi, līdz tiek sasniegts taimauts 10 sekundes
- Kad Task1 sasniedz savu laiku, mēs izveidojam savienojumu ar vietējo Wifi un MQTT brokeri.
-
Tagad 2. uzdevums ir iespējots, un mēs atspējojam 1. uzdevumu
- 2. uzdevums ir sensoru datu publicēšana UbiDots MQTT brokerī, šis uzdevums tiek izpildīts 20 sekundes, līdz tiek sasniegts 20 sekunžu taimauts
- Kad 2. uzdevums ir beidzies, 1. uzdevums ir atkal iespējots un 2. uzdevums ir atspējots. Arī šeit mēs iegūstam atjaunināto vērtību, un process turpinās.
I2C sensora datu nolasīšana
Mēs iegūstam 29 baitu rāmi no bezvadu temperatūras un mitruma sensoriem. Šis rāmis tiek manipulēts, lai iegūtu faktiskos temperatūras un mitruma datus
uint8_t dati [29];
dati [0] = Sērijas1.lasījums (); kavēšanās (k); // chck par sākuma baitu, ja (dati [0] == 0x7E) {while (! Serial1.available ()); par (i = 1; i <29; i ++) {data = Serial1.read (); kavēšanās (1); } ja (dati [15] == 0x7F) /////// lai pārbaudītu, vai recesīvie dati ir pareizi {if (dati [22] == 1) //////// pārliecinieties, vai sensora tips ir pareizs {
mitrums = ((((dati [24]) * 256) + dati [25]) /100,0); mitrums /=10,0; cTempint = (((uint16_t) (dati [26]) << 8) | dati [27]); cTemp = (pludiņš) cTempint /100.0; cTemp /= 10,0; fTemp = cTemp * 1,8 + 32; fTemp /= 10,0; akumulators = nejaušs (100, 327); spriegums = akumulators/100; mezgla ID = dati [16];}
Savienojuma izveide ar UbiDots MQTT API
Iekļaujiet galvenes failu MQTT procesam
#iekļaut
definējiet citus MQTT mainīgos, piemēram, klienta vārdu, brokera adresi, marķiera ID (marķiera ID tiek ielādēts no EEPROM)
#define MQTT_CLIENT_NAME "ClientVBShightime123"
char mqttBroker = "things.ubidots.com";
char lietderīgā slodze [100]; char tēma [150];
// izveidot mainīgo, lai saglabātu marķiera ID
String tokenId;
Izveidojiet mainīgos, lai saglabātu dažādus sensoru datus, un izveidojiet char mainīgo, lai saglabātu tēmu
#define VARIABLE_LABEL_TEMPF "tempF" // Mainīgā etiķetes piešķiršana #define VARIABLE_LABEL_TEMPC "tempC" // Mainīgā etiķetes piešķiršana #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "mitrs mainīgais" // Assing
char tēma1 [100]; char topic2 [100]; char topic3 [100];
publicējiet datus minētajā MQTT tēmā, lietderīgā slodze izskatīsies šādi: "tempc": {value: "tempData"}}
sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (lietderīgā slodze, "%s", ""); // Notīra lietderīgo slodzi sprintf (lietderīgā slodze, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Pievieno vērtību sprintf (lietderīgā slodze, "%s {" vērtība / ":%s}", lietderīgā slodze, str_cTemp); // Pievieno vērtību sprintf (lietderīgā slodze, "%s}", lietderīgā slodze); // Aizver vārdnīcas iekavas Serial.println (lietderīgā slodze); Serial.println (client.publish (topic1, payload)? "Published": "notpublished");
// Dariet to pašu ar citu tēmu
client.publish () publicē datus UbiDots
5. darbība: datu vizualizācija



- Dodieties uz Ubidots un piesakieties savā kontā.
- Virzieties uz informācijas paneli no cilnes Dati augšpusē.
- Tagad noklikšķiniet uz ikonas "+", lai pievienotu jaunos logrīkus.
- Sarakstā atlasiet logrīku un pievienojiet mainīgo un ierīces.
- Sensora datus var vizualizēt informācijas panelī, izmantojot dažādus logrīkus.
6. darbība: vispārējais kods
HTML un ESP32 kods Over ir atrodams šajā GitHub krātuvē.
Kredīti
- ncd ESP32 sadalīšanas panelis.
- ncd Bezvadu temperatūras un mitruma sensori.
- kroga pasūtītājs
- UbiDots
- Uzdevumu plānotājs
Ieteicams:
Kā izveidot mitruma un temperatūras reālā laika datu ierakstītāju, izmantojot Arduino UNO un SD karti - DHT11 datu reģistrētāja simulācija Proteus: 5 soļi

Kā izveidot mitruma un temperatūras reālā laika datu ierakstītāju, izmantojot Arduino UNO un SD karti | DHT11 datu reģistrētāja simulācija Proteus: Ievads: čau, tas ir Liono Maker, šeit ir YouTube saite. Mēs veidojam radošu projektu ar Arduino un strādājam pie iegultām sistēmām. Datu reģistrētājs: Datu reģistrētājs (arī datu reģistrētājs vai datu ierakstītājs) ir elektroniska ierīce, kas laika gaitā reģistrē datus
Vairāku sensoru savienošana ar vienu ARDUINO UNO SERIAL PORT: 4 soļi

Vairāku sensoru savienošana ar vienu ARDUINO UNO SERIAL PORT: Šajā apmācībā mēs paplašināsim vienu Arduino UNO UART (Rx/Tx) sērijas portu, lai varētu savienot vairākus Atlas sensorus. Paplašināšana tiek veikta, izmantojot seriālā porta paplašinātāja plati 8: 1. Arduino osta ir saistīta ar paplašinātāju pēc tam, kad
VAIRĀKU SENSORU SAVIENOŠANA AR RASPBERRY PI: 6 soļi (ar attēliem)

VAIRĀKU SENSORU SAVIENOŠANA AR RASPBERRY PI: Šajā projektā mēs savienosim trīs no Atlas Scientific EZO sensoriem (pH, izšķīdušais skābeklis un temperatūra) ar Raspberry Pi 3B+. Tā vietā, lai pieslēgtu ķēdes Raspberry Pi, mēs izmantosim Whitebox Labs Tentacle T3 vairogu. T
Bezvadu spiediena sensora datu publicēšana, izmantojot MQTT: 7 soļi

Bezvadu spiediena sensora datu publicēšana, izmantojot MQTT: ESP32 un ESP 8266 ir ļoti pazīstami SoC IoT jomā. Tie ir sava veida svētība IoT projektiem. ESP 32 ir ierīce ar integrētu WiFi un BLE. Vienkārši norādiet savu SSID, paroli un IP konfigurāciju un integrējiet lietas
Vairāku pogu savienošana ar vienu tapu Arduino: 4 soļi

Vairāku pogu savienošana ar vienu Arduino tapu: Sveiki, visi, kad jūsu Arduino projektos ir pāraugušas mirgojošas gaismas diodes, jums var būt vajadzīgas dažas papildu tapas. Es jums parādīšu triku, kuru varat izmantot, ja jums var būt vairākas pogas, kas visas ir savienotas ar vienu un to pašu analogo tapu