Sisällysluettelo:
- Vaihe 1: Laitteisto- ja ohjelmistomääritykset
- Vaihe 2: Langattomat paine- ja lämpötila -anturit
- Vaihe 3: Yhdistäminen WiFi -verkkoon
- Vaihe 4: UbiDots -asetusten määrittäminen ESP32 -laitteeseen
- Vaihe 5: Anturilukujen julkaiseminen UbiDotsiin
- Vaihe 6: Tietojen visualisointi
- Vaihe 7: Yleinen koodi
Video: Langattoman paineanturin tietojen julkaiseminen MQTT: n avulla: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
ESP32 ja ESP 8266 ovat hyvin tuttuja SoC IoT -alalla. Nämä ovat eräänlainen siunaus IoT -projekteille. ESP 32 on laite, jossa on integroitu WiFi ja BLE. Anna vain SSID, salasana ja IP -määritykset ja integroi asiat pilveen. Tässä tässä ohjeessa pohdimme joitain IoT: n perusehtoja, kuten IoT -alusta, MQTT, vankeusportaalit jne. Joten käydään se läpi
- IoT -arkkitehtuuri koostuu hyvin yksinkertaisesti sanottuna sulautetusta laitteesta ja IoT -alustasta laitteen asettamiseksi pilveen. Täällä käytämme UbiDots IoT -alustaa visualisoimaan anturitietoja.
- IP -asetusten ja käyttäjätietojen hallinta voi olla päänsärky käyttäjälle. Mitä jos käyttäjä haluaa muuttaa WiFi -tunnistetietoja? Entä jos käyttäjä haluaa vaihtaa DHCP/Staattinen IP -asetuksia? ESP32: n vilkkuminen joka kerta ei ole luotettava eikä edes ratkaisu näihin ongelmiin. Joten käymme läpi vankeusportaalin tallentaaksemme WiFi -tunnistetiedot ja muut kokoonpanot.
- MQTT: stä on tulossa hyvin yleinen termi IoT -maailmassa. se on ohittanut julkaisun ja tilauksen pyynnöt ja vastaukset (HTTP) nopean, vankan ja kevyen arkkitehtuurin vuoksi.
Tässä tässä ohjeessa aiomme osoittaa.
- WiFi- ja MQTT -tunnistetietojen antaminen Captive Portal -palvelun avulla.
- Useiden anturitietojen julkaiseminen ja tilaaminen UbiDotsiin.
- Anturitietojen lukeminen langattomasta paine- ja lämpötila -anturista
- Verkkolomakkeen ylläpito ESP32: sta.
- Lukeminen ja kirjoittaminen SPIFFS ESP32: sta.
Vaihe 1: Laitteisto- ja ohjelmistomääritykset
Laitteiston tekniset tiedot
- ESP32 WiFi/BLE
- Langaton paine- ja lämpötila -anturi
Ohjelmiston tiedot
- Arduino IDE
- XCTU
- Labview -apuohjelma
Vaihe 2: Langattomat paine- ja lämpötila -anturit
ominaisuudet
- Teollisuusluokan anturi pitkän kantaman langaton paineen lämpötila -anturi
- Käyttöalue 0--14000 mbar -40 ° - +85 ° C (-40 ° -185 ° F)
- Konfiguroitava sisäinen laskentapaineen tarkkuus 0,012 - 0,065 mbar
- Konfiguroitava sisäinen laskenta Lämpötilan resoluutio 0,002 - 0,012 ° C
- Tarkkuus ± 2,5 mbar, ± 2 ° C
- Absoluuttisen paineen, suhteellisen paineen ja suhteellisen korkeuden muutoksen lähdöt
- 2 Mile Line-of-Sight Range ja sisäinen antenni
- Erinomainen jopa 28 mailin LOS-alue korkean vahvistuksen antenneilla
- Liitäntä Raspberry Pi, Microsoft® Azure®, Arduino ja muihin
- Langaton Mesh -verkko DigiMesh® -tekniikan avulla
Langattoman paine- ja lämpötila -anturin määrittäminen Labview Utilityn ja XCTU: n avulla
Anturi toimii kahdessa tilassa
- Konfigurointitila: Konfiguroi pan -tunnus, viive, uudelleenyritysten määrä jne. Lisätietoja tästä ei kuulu tämän ohjeen soveltamisalaan, ja se selitetään seuraavassa ohjeessa.
- Käyntitila: Käytämme laitetta Käynnissä -tilassa. Analysoidaksemme näitä arvoja käytämme Labview -apuohjelmaa
Tämä Labview -käyttöliittymä näyttää arvot kauniina kaavioina. Se näyttää nykyiset ja menneet arvot. Voit ladata Labview -käyttöliittymän tästä linkistä. napsauta Suorita -kuvaketta aloitussivuvalikosta siirtyäksesi ajotilaan.
Vaihe 3: Yhdistäminen WiFi -verkkoon
Käytämme kaappaajaportaalia WiFi -kirjautumistietojen tallentamiseen ja osoittimen siirtämiseen IP -asetusten kautta. Jos haluat yksityiskohtaisen johdannon vankeusportaalissa, voit käydä läpi seuraavan ohjeen.
Vankeusportaali antaa meille mahdollisuuden valita staattisten ja DHCP -asetusten välillä. Kirjoita vain tunnistetiedot, kuten staattinen IP, aliverkon peite, yhdyskäytävä ja langaton anturiväylä määritetään kyseiselle IP -osoitteelle.
Verkkosivua isännöidään, jossa on luettelo käytettävissä olevista WiFi -verkoista ja RSSI. Valitse WiFi -verkko ja salasana ja kirjoita Lähetä. Kirjautumistiedot tallennetaan EEPROMiin ja IP -asetus SPIFFS -tiedostoon. Lisätietoja tästä oppaasta.
Vaihe 4: UbiDots -asetusten määrittäminen ESP32 -laitteeseen
Tässä käytämme langattomia paine- ja lämpötila -antureita ESP 32 -laitteen kanssa lämpötila- ja kosteustietojen saamiseksi. Lähetämme tiedot UbiDotsille käyttäen MQTT -protokollaa. MQTT noudattaa julkaisu- ja tilausmekanismia pikemminkin kuin pyyntöä ja vastausta. Se on nopeampi ja luotettavampi kuin HTTP. Tämä toimii seuraavasti.
- Käytämme Tehtävien ajoitus -toimintoa tehtävän ajoittamiseen, kuten tietojen noutamiseen antureista, anturilukemien julkaisemiseen, MQTT -tilaukseen.
- Sisällytä ensin Task Scheduler -otsikkotiedostot, sen ilmentymä ja aikatauluta tehtävät.
- Olemme suunnitelleet kaksi tehtävää, jotka viittaavat kahteen eri ohjaustoimintoon.
#define _TASK_TIMEOUT#include Scheduler ts; // --------- Tehtävät ------------ // Tehtävä tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL ja & taskSensorDisable); Tehtävä tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL ja & taskWiFiDisable);
- Tehtävä 1 on anturin arvon lukemiseen, tämä tehtävä kestää 1 sekunnin, kunnes se saavuttaa 10 sekunnin aikakatkaisun.
- Kun Task1 saavuttaa aikansa, muodostamme yhteyden paikalliseen Wifi- ja MQTT -välittäjään.
- Nyt tehtävä 2 on käytössä ja poistamme tehtävän 1 käytöstä
- Tehtävä 2 on anturitietojen julkaiseminen UbiDots MQTT -välittäjälle, tämä tehtävä kestää 20 sekuntia, kunnes se saavuttaa 20 sekunnin aikakatkaisun
- Kun tehtävä2 saavuttaa aikakatkaisunsa, tehtävä 1 on jälleen käytössä ja tehtävä 2 on poistettu käytöstä. Täällä taas saamme päivitetyn arvon ja prosessi jatkuu.
I2C -anturitietojen lukeminen
Saamme 29 tavun kehyksen langattomista lämpötila- ja kosteusantureista. Tätä kehystä käsitellään todellisen lämpötila- ja kosteustiedon saamiseksi
jos (sarja1. saatavilla ())
{data [0] = Sarja1.luku (); viive (k); if (data [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <36; i ++) {data = Serial1.read (); viive (1); } if (data [15] == 0x7F) /////// tarkistaaksesi, että recive -tiedot ovat oikein {if (data [22] == 0x06) //////// varmista, että anturin tyyppi on oikein {int cTemp = ((((data [24]) * 256) + data [25])); int16_t abs_pressure = (((((uint16_t) (data [26]) << 8) | data [27])*0,001); int rlt_paine = ((((tiedot [28]) * 256) + tiedot [29]) * 0,001); int16_t delta_alt = (((((uint16_t) (data [30]) << 8) | data [31])*0,01); kelluva akku = ((data [18] * 256) + data [19]); kelluva jännite = 0,00322 * akku; Serial.print ("Anturin numero"); Serial.println (tiedot [16]); Serial.print ("Anturityyppi"); Serial.println (tiedot [22]); Serial.print ("Laiteohjelmistoversio"); Serial.println (tiedot [17]); Serial.print ("Lämpötila celsiusasteina:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Absoluuttinen paine:"); Sarja.println (abs_paine); Serial.print ("mbar"); Serial.print ("Suhteellinen paine:"); Sarja.println (rlt_paine); Serial.print ("mbar"); Serial.print ("Delta Altitude:"); Sarja.println (delta_altti); Serial.print ("mittari"); Serial.print ("ADC -arvo:"); Serial.println (akku); Serial.print ("Akun jännite:"); Sarjajälki (jännite); Serial.println ("\ n"); if (jännite <1) {Serial.println ("Aika vaihtaa akku"); }}} else {for (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); viive (1); }}}}
Yhdistetään UbiDots MQTT -sovellusliittymään
Sisällytä otsikkotiedosto MQTT -prosessia varten
#sisältää
määritä muut muuttujat MQTT: lle, kuten asiakkaan nimi, välittäjän osoite, tunnuksen tunnus
#define TOKEN "BBFF-***********************************" // Ubidotit TOKEN#define MQTT_CLIENT_NAME "***************************"
char mqttBroker = "things.ubidots.com";
hiilen hyötykuorma [100]; char -aihe [150]; // luo muuttuja tallentaaksesi token ID toke
Vaihe 5: Anturilukujen julkaiseminen UbiDotsiin
Luo muuttujia eri anturitietojen tallentamiseen ja luo char -muuttuja aiheen tallentamiseen
#define VARIABLE_LABEL_TEMPF "tempF" // Muuttujan tunnisteen määrittäminen #define VARIABLE_LABEL_TEMPC "tempC" // Muuttujan tunnisteen määrittäminen #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid label" // Assing
char topic1 [100];
char topic2 [100]; char topic3 [100];
julkaise tiedot mainitussa MQTT -aiheessa, hyötykuorma näyttää tältä: {"tempc": {value: "tempData"}}
sprintf (aihe1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (hyötykuorma, "%s", ""); // Puhdistaa hyötykuorman sprintf (hyötykuorma, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Lisää arvon sprintf (hyötykuorma, "%s {" arvo / ":%s}", hyötykuorma, str_cTemp); // Lisää arvon sprintf (hyötykuorma, "%s}", hyötykuorma); // Sulkee sanaston hakasulkeet Serial.println (hyötykuorma); Serial.println (client.publish (aihe1, hyötykuorma)? "Published": "notpublished"); // Tee sama myös muille aiheille
client.publish () julkaisee tiedot UbiDotsissa
Vaihe 6: Tietojen visualisointi
- Siirry Ubidotsiin ja kirjaudu tiliisi.
- Siirry hallintapaneeliin ylhäällä olevasta Tiedot -välilehdestä.
- Napsauta nyt "+" -kuvaketta lisätäksesi uudet widgetit.
- Valitse widget luettelosta ja lisää muuttuja ja laitteet.
- Anturitiedot voidaan visualisoida kojelaudalla eri widgetien avulla.
Vaihe 7: Yleinen koodi
HTML- ja ESP32 -tiedostojen ylikoodi löytyy tästä GitHub -arkistosta.
Laajuus
- ncd ESP32 katkaisulauta.
- ncd Langattomat paine- ja lämpötila -anturit
- pubiasiakas
- UbiDots
- Tehtävien ajoitus
Suositeltava:
Langattoman lämpötila- ja kosteusanturin tietojen lähettäminen Exceliin: 34 vaihetta
Langattoman lämpötila- ja kosteusanturin tietojen lähettäminen Exceliin: Käytämme tässä NCD: n lämpötila- ja kosteusanturia, mutta vaiheet pysyvät samana kaikissa ncd -tuotteissa, joten jos sinulla on muita langattomia ncd -antureita, kokeile vapaasti vieressä. Tämän tekstin lopettamisen avulla sinun on
Langattoman tärinän ja lämpötila-anturin tietojen lähettäminen Exceliin solmun PUNAISEN avulla: 25 vaihetta
Langattoman tärinän ja lämpötila-anturin tietojen lähettäminen Exceliin Node-RED: n avulla: Esittelyssä NCD: n pitkän kantaman IoT Industrial -langaton tärinä- ja lämpötila-anturi, joka tarjoaa jopa 2 mailin etäisyyden langattoman verkon verkkorakenteen käytöstä. Tämä laite sisältää tarkan 16-bittisen tärinä- ja lämpötila-anturin
Langattoman tärinän ja lämpötilan tietojen lähettäminen Google-taulukoille solmun PUNAISEN avulla: 37 vaihetta
Langattoman tärinän ja lämpötilan tietojen lähettäminen Google-arkeille Node-RED: n avulla: Esittelemme NCD: n pitkän kantaman IoT Industrial -langattoman tärinä- ja lämpötila-anturin, joka tarjoaa jopa 2 mailin etäisyyden langattoman verkon verkkorakenteen käytöstä. Tämä laite sisältää tarkan 16-bittisen tärinä- ja lämpötila-anturin
Vesimäärien mittaaminen paineanturin avulla: 5 vaihetta
Vesimäärien mittaaminen paineanturin avulla: Paineanturia käytettiin vesimäärän mittaamiseen säiliössä
IOT-langattoman lämpötila- ja kosteusanturin tietojen lähettäminen MySQL: lle: 41 vaihetta
IOT-langattoman lämpötila- ja kosteusanturin tietojen lähettäminen MySQL: lle: Esittelyssä NCD: n pitkän kantaman IoT-lämpötila- ja kosteusanturi. Tämä anturi tarjoaa jopa 28 mailin kantaman ja langattoman verkon verkkoarkkitehtuurin, ja se lähettää kosteus- (± 1,7%) ja lämpötilatietoja (± 0,3 ° C) käyttäjän määrittämin väliajoin