Talaan ng mga Nilalaman:
- Hakbang 1: Pagtukoy sa Hardware at Software
- Hakbang 2: Wireless Pressure at Temperatura Sensors
- Hakbang 3: Kumokonekta sa WiFi
- Hakbang 4: Pag-set up ng UbiDots sa ESP32
- Hakbang 5: Mga Pagbasa ng Sensor sa Pag-publish sa UbiDots
- Hakbang 6: Paggunita sa Data
- Hakbang 7: Pangkalahatang Code
Video: Pag-publish ng Data ng Sensor ng Pressure ng Wireless Gamit ang MQTT: 7 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Ang ESP32 atESP 8266 ay pamilyar sa SoC sa larangan ng IoT. Ito ang uri ng uri ng isang biyaya para sa mga proyekto ng IoT. Ang ES 32 ay isang aparato na may pinagsamang WiFi at BLE. Ibigay lamang ang iyong mga configure ng SSID, password at IP at isama ang mga bagay sa cloud. Dito sa itinuturo na ito, Isasaalang-alang namin ang ilan sa mga pangunahing mga tuntunin ng IoT tulad ng IoT platform, MQTT, Captive portal atbp. Kaya't dumaan tayo dito
- Ang IoT Architecture sa napaka-simpleng mga salita ay binubuo ng isang naka-embed na aparato at IoT platform upang ilagay ang aparato sa cloud. Narito ginagamit namin ang UbiDots IoT platform upang mailarawan ang data ng sensor.
- Ang pamamahala ng mga setting ng IP at mga kredensyal ng User ay maaaring maging isang sakit ng ulo sa gumagamit. Paano kung nais ng Gumagamit na baguhin ang mga kredensyal ng WiFi? Paano kung nais ng gumagamit na ilipat ang mga setting ng DHCP / Static IP? Ang pag-flashing ng ESP32 sa tuwina ay hindi maaasahan at hindi kahit na ang solusyon para sa mga problemang ito. Sa gayon ay dadaan kami sa bihag na portal upang mai-save ang mga kredensyal ng WiFi at iba pang mga pagsasaayos.
- Ang MQTT ay nagiging isang napaka-karaniwang termino sa mundo ng IoT. nalampasan nito ang kahilingan at mga tugon (HTTP) sa pamamagitan ng I-publish at Mag-subscribe dahil sa mabilis, matatag at payat na arkitektura.
Dito sa itinuturo na ito, magpapakita kami.
- Pagbibigay ng mga kredensyal ng WiFi at MQTT gamit ang Captive Portal.
- Pag-publish at Pag-subscribe ng maraming data ng Sensor sa UbiDots.
- Pagbasa ng data ng Sensor mula sa Wireless Pressure at Temperature Sensor
- Pagho-host ng isang form sa web mula sa ESP32.
- Pagbasa at Pagsulat mula sa SPIFFS ESP32.
Hakbang 1: Pagtukoy sa Hardware at Software
Pagtukoy sa Hardware
- ESP32 WiFi / BLE
- Wireless Pressure at Temperature Sensor
Pagtukoy ng Software
- Arduino IDE
- XCTU
- Utility ng Labview
Hakbang 2: Wireless Pressure at Temperatura Sensors
Mga Tampok
- Pang-industriya na Sensor ng Antas ng Long Range Wireless Sensure ng Temperatura ng Presyon
- Saklaw ng Operating 0 hanggang 14000 mbar -40 ° hanggang + 85 ° C (-40 ° hanggang 185 ° F)
- Na-configure ang Panloob na Pagkalkula ng Resolusyon sa Pagkalkula 0.012 hanggang 0.065 mbar
- Na-configure ang Panloob na Kalutas ng Pagkalkula ng Temperatura 0.002 hanggang 0.012 ° C
- Katumpakan ± 2.5 mbar, ± 2 ° C
- Ganap na Presyon, Kaugnay na Presyon at Kamag-anak na Baguhin ang mga output
- 2 Saklaw ng Mile Line-of-Sight na may On-Board Antenna
- Superior LOS Saklaw ng hanggang sa 28 Milya na may Mga Antas na Mataas ang Gain
- Interface sa Raspberry Pi, Microsoft® Azure®, Arduino at Higit Pa
- Wireless Mesh Networking gamit ang DigiMesh®
Ang pag-configure ng Wireless Pressure at Temperature Sensor Gamit ang Labview Utility at XCTU
Tumatakbo ang Sensor sa dalawang mga mode
- Mode ng Pag-configure: I-configure ang Pan ID, pagkaantala, Bilang ng mga pagsubok muli atbp Higit pa sa ito ay lampas sa saklaw ng pagtuturo na ito at ipapaliwanag sa susunod na maituturo.
- Run Mode: Pinapatakbo namin ang aparato sa Run mode. At upang pag-aralan ang halagang ito ginagamit namin ang Labview Utility
Ipinapakita ng Labview UI na ito ang mga halaga sa magagandang mga graph. Ipinapakita nito ang kasalukuyang pati na rin ang mga nakaraang halaga. Maaari kang pumunta sa link na ito upang i-download ang Labview UI. mag-click sa Run icon mula sa menu ng landing page upang pumunta sa run mode.
Hakbang 3: Kumokonekta sa WiFi
Gumagamit kami ng bihag na portal upang mai-save ang mga kredensyal ng WiFi at upang mag-hover sa pamamagitan ng mga setting ng IP. Para sa detalyadong pagpapakilala sa bihag na portal, maaari kang dumaan sa sumusunod na itinuro.
Binibigyan kami ng portal ng bihag na pagpipilian upang pumili sa pagitan ng mga setting ng Static at DHCP. Ipasok lamang ang mga kredensyal tulad ng Static IP, Subnet Mask, gateway at ang Wireless Sensor Gateway ay mako-configure sa IP na iyon.
Ang isang webpage ay nai-host kung saan ang isang listahan na nagpapakita ng mga magagamit na mga network ng WiFi at doon RSSI. Piliin ang WiFi network at password at ipasok ang isumite. Ang mga kredensyal ay mai-save sa EEPROM at ang setting ng IP ay nai-save sa SPIFFS. Higit pa dito ay matatagpuan sa itinuturo na ito.
Hakbang 4: Pag-set up ng UbiDots sa ESP32
Narito ginagamit namin ang Wireless Pressure at Temperature Sensors gamit ang aparato na 32 ng ESP upang makuha ang data ng temperatura at Humidity. Ipinapadala namin ang data sa UbiDots gamit ang MQTT protocol. Sinusundan ng MQTT ang mekanismo ng pag-publish at pag-subscribe sa halip ang kahilingan at tugon. Ito ay mas mabilis at maaasahan kaysa sa HTTP. Gumagawa ito tulad ng sumusunod.
- Ginagawa naming paggamit ang Task scheduler upang Iskedyul ang gawain tulad ng pagkuha ng data mula sa mga sensor, Pag-publish ng mga pagbabasa ng sensor, Pag-subscribe sa paksa ng MQTT.
- Una, isama ang mga file ng header ng taga-iskedyul ng Task, halimbawa ito at iiskedyul ang mga gawain.
- Nakaiskedyul kami ng dalawang gawain na tumutukoy sa dalawang magkakaibang operasyon ng kontrol.
#define _TASK_TIMEOUT # isama ang scheduler ts; // --------- Tasks ------------ // Task tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Gawain tWiFi (10 * TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
- Ang Gawain 1 ay para sa pagbabasa ng halaga ng sensor na tumatakbo ang gawaing ito nang 1 segundo hanggang sa maabot ang timeout ng 10 sec.
- Kapag naabot ng Task1 ang oras ng pag-out ay kumokonekta kami sa lokal na Wifi at MQTT broker.
- Ngayon ang Task 2 ay pinagana at hindi namin pinagana ang Gawain 1
- Ang gawain 2 ay para sa paglalathala ng data ng sensor sa UbiDots MQTT broker na ang gawain na ito ay tumatakbo sa loob ng 20 segundo hanggang sa maabot ang timeout ng 20 secs
- Kapag naabot ng Task2 ang oras ng pag-out ang Gawain 1 ay muling pinagana at ang Task2 ay hindi pinagana. Narito muli, nakakakuha kami ng na-update na halaga at nagpapatuloy ang proseso.
Pagbasa ng I2C Sensor Data
Nakakakuha kami ng isang 29-byte na frame mula sa Wireless Temperature at Humidity Sensors. Ang frame na ito ay manipulahin upang makuha ang aktwal na data ng temperatura at Humidity
kung (Serial1.available ())
{data [0] = Serial1.read (); antala (k); kung (data [0] == 0x7E) {habang (! Serial1.available ()); para sa (i = 1; i <36; i ++) {data = Serial1.read (); antala (1); } kung (data [15] == 0x7F) /////// upang suriin kung ang recive data ay tama {kung (data [22] == 0x06) //////// tiyakin na ang uri ng sensor wasto {int cTemp = (((((data [24]) * 256) + data [25])); int16_t abs_pressure = (((((uint16_t) (data [26]) << 8) | data [27]) * 0.001); int rlt_pressure = (((((data [28]) * 256) + data [29]) * 0.001); int16_t delta_alt = (((((uint16_t) (data [30]) << 8) | data [31]) * 0.01); float baterya = ((data [18] * 256) + data [19]); float boltahe = 0.00322 * baterya; Serial.print ("Sensor Number"); Serial.println (data [16]); Serial.print ("Sensor Type"); Serial.println (data [22]); Serial.print ("Bersyon ng Firmware"); Serial.println (data [17]); Serial.print ("Temperatura sa Celsius:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Ganap na Presyon:"); Serial.println (abs_pressure); Serial.print ("mbar"); Serial.print ("Kaugnay na Presyon:"); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("Delta Altitude:"); Serial.println (delta_alt); Serial.print ("meter"); Serial.print ("Halaga ng ADC:"); Serial.println (baterya); Serial.print ("Boltahe ng Baterya:"); Serial.print (boltahe); Serial.println ("\ n"); kung (boltahe <1) {Serial.println ("Oras upang Palitan Ang Baterya"); }}} iba pa {para sa (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); antala (1); }}}}
Kumokonekta sa UbiDots MQTT API
Isama ang header file para sa proseso ng MQTT
# isama
tukuyin ang iba pang mga variable para sa MQTT tulad ng pangalan ng kliyente, address ng broker, ang token ID
#define TOKEN "BBFF - *********************************" // Ang iyong Ubidots TOKEN # tukuyin MQTT_CLIENT_NAME "****************************"
char mqttBroker = "bagay.ubidots.com";
char payload [100]; paksa ng char [150]; // lumikha ng variable upang maiimbak ang token ng token ID
Hakbang 5: Mga Pagbasa ng Sensor sa Pag-publish sa UbiDots
Lumikha ng mga variable upang mag-imbak ng iba't ibang data ng sensor at lumikha ng isang variable ng char upang mag-imbak ng paksa
#define VARIABLE_LABEL_TEMPF "tempF" // Assing the variable label # define VARIABLE_LABEL_TEMPC "tempC" // Assing the variable label #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Assing the variable label
paksa ng char1 [100];
paksa ng char2 [100]; paksa ng char3 [100];
i-publish ang data sa nabanggit na paksa ng MQTT na ang bayad ay magiging katulad ng "" tempc ": {value:" tempData "}}
sprintf (paksa1, "% s", ""); sprintf (paksa1, "% s% s", "/v1.6/devices/", DEVICE_LABEL); sprintf (payload, "% s", ""); // Nililinis ang sprintf ng bayad (payload, "{"% s / ":", VARIABLE_LABEL_TEMPC); // Nagdaragdag ng halaga ng sprintf (payload, "% s {" halaga / ":% s}", payload, str_cTemp); // Nagdaragdag ng halaga ng sprintf (payload, "% s}", payload); // Isinasara ang mga bracket ng diksyunaryo Serial.println (payload); Serial.println (client.publish (topic1, payload)? "Nai-publish": "notpublished"); // Gawin din ito para sa iba pang paksa
nai-publish ng client.publish () ang data sa UbiDots
Hakbang 6: Paggunita sa Data
- Pumunta sa Ubidots at Mag-login sa iyong account.
- Mag-navigate sa Dashboard mula sa tab na Data na nakalista sa itaas.
- Ngayon i-click ang icon na "+" upang idagdag ang mga bagong widget.
- Pumili ng isang widget mula sa listahan at magdagdag ng isang variable at mga aparato.
- Ang data ng sensor ay maaaring makita sa dashboard gamit ang iba't ibang mga widget.
Hakbang 7: Pangkalahatang Code
Ang Over code para sa HTML at ESP32 ay matatagpuan sa GitHub repository na ito.
Mga Kredito
- ncd breakout board ng ESP32.
- ncd Wireless Pressure at Temperatura Sensors
- pubsubclient
- UbiDots
- Tagapag-iskedyul ng Gawain
Inirerekumendang:
Ang Wireless Vibration at Temperatura Sensor Data sa MySQL Gamit ang Node-RED: 40 Hakbang
Ang Data ng Wireless Vibration at Temperature Sensor sa MySQL Gamit ang Node-RED: Ipinakikilala ang Long Range IoT Industrial wireless na panginginig at sensor ng temperatura ng NCD, ipinagmamalaki hanggang sa isang 2-milyang saklaw ang paggamit ng isang istraktura ng wireless mesh networking. Isinasama ang isang eksaktong 16-bit na panginginig at sensor ng temperatura, ang aparato na ito ay
Wireless Remote Gamit ang 2.4Ghz NRF24L01 Module Sa Arduino - Nrf24l01 4 Channel / 6 Channel Transmitter Receiver para sa Quadcopter - Rc Helicopter - Rc Plane Gamit ang Arduino: 5 Hakbang (na may Mga Larawan)
Wireless Remote Gamit ang 2.4Ghz NRF24L01 Module Sa Arduino | Nrf24l01 4 Channel / 6 Channel Transmitter Receiver para sa Quadcopter | Rc Helicopter | Rc Plane Gamit ang Arduino: Upang mapatakbo ang isang Rc car | Quadcopter | Drone | RC eroplano | RC boat, palagi kaming nangangailangan ng isang reciever at transmitter, kumbaga para sa RC QUADCOPTER kailangan namin ng isang 6 channel transmitter at receiver at ang uri ng TX at RX ay masyadong magastos, kaya gagawa kami ng isa sa aming
Ipinapakita ang Data ng Wireless Sensor Gamit ang Mga Tsart ng Google: 6 Mga Hakbang
Ang Pag-visualize ng Data ng Wireless Sensor Gamit ang Mga Tsart ng Google: Ang mahuhulaan na pagtatasa ng mga machine ay kinakailangan upang ma-minimize ang downtime ng makina. Ang regular na pag-check up ay nakakatulong sa pagpapahusay ng oras ng tungkulin ng makina at pinahuhusay nito ang pagpapaubaya sa kasalanan. Wireless Vibration at Temperature sen
Temperatura, Kamag-anak na Humidity, Atmospheric Pressure Logger Gamit ang Raspberry Pi at TE Connectivity MS8607-02BA01: 22 Mga Hakbang (na may Mga Larawan)
Temperatura, Kamag-anak na Humidity, Atmospheric Pressure Logger Gamit ang Raspberry Pi at TE Connectivity MS8607-02BA01: Panimula: Sa proyektong ito ipapakita ko sa iyo kung paano bumuo ng pag-set up sa pamamagitan ng hakbang ng isang sistema ng pag-log para sa temperatura ng halumigmig at presyon ng atmospera. Ang proyektong ito ay batay sa Raspberry Pi 3 Model B at TE Connectivity environment sensor chip MS8607-02BA
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c