Sisällysluettelo:

Langattoman paineanturin tietojen julkaiseminen MQTT: n avulla: 7 vaihetta
Langattoman paineanturin tietojen julkaiseminen MQTT: n avulla: 7 vaihetta

Video: Langattoman paineanturin tietojen julkaiseminen MQTT: n avulla: 7 vaihetta

Video: Langattoman paineanturin tietojen julkaiseminen MQTT: n avulla: 7 vaihetta
Video: Virtuaalivoimalaitokset julkisissa kiinteistöissä -webinaari 2024, Joulukuu
Anonim
Langattomien paineanturitietojen julkaiseminen MQTT: n avulla
Langattomien paineanturitietojen julkaiseminen MQTT: n avulla

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

Langattomat paine- ja lämpötila -anturit
Langattomat paine- ja lämpötila -anturit
Langattomat paine- ja lämpötila -anturit
Langattomat paine- ja lämpötila -anturit
Langattomat paine- ja lämpötila -anturit
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

Yhdistetään WiFi -verkkoon
Yhdistetään WiFi -verkkoon
Yhdistetään WiFi -verkkoon
Yhdistetään 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

UbiDots -asetusten määrittäminen ESP32: ssa
UbiDots -asetusten määrittäminen ESP32: ssa

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

Anturilukujen julkaiseminen UbiDotsille
Anturilukujen julkaiseminen UbiDotsille

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

Tietojen visualisointi
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: