Sisällysluettelo:
- Vaihe 1: AWS -tilin määrittäminen
- Vaihe 2: Laitteisto- ja ohjelmistomääritykset
- Vaihe 3: Langattomat tärinä- ja lämpötila -anturit
- Vaihe 4: ESP32 AWS -laiteohjelmisto
- Vaihe 5: Anturitietojen saaminen langattomasta tärinä- ja lämpötila -anturista
- Vaihe 6: Yhdistäminen AWS: ään
- Vaihe 7: Tietojen visualisointi AWS: ssä
- Vaihe 8: Yleinen koodi
Video: AWS IoT: n käytön aloittaminen langattomalla lämpötila -anturilla MQTT: n avulla: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Aikaisemmissa Instructables -ohjelmissa olemme käyneet läpi erilaisia pilvialustoja, kuten Azure, Ubidots, ThingSpeak, Losant jne. Olemme käyttäneet MQTT -protokollaa anturitietojen lähettämiseen pilveen lähes kaikilla pilvialustoilla. Lisätietoja MQTT: stä, sen eduista ja eduista verrattuna HTTP -protokollaan voit lukea tästä ohjeesta.
Tässä ohjeessa lähentämme vielä toiseen ja tuttuun pilvialustaan Amazon Web Services. Monet teistä saattavat tuntea AWS: n eli Amazon Web Servicesin ja AWS: n tarjoaman pilvitoiminnon. Se on ollut web -kehityksen ydin monien vuosien ajan. IoT -sovellusten laajentuessa AWS on keksinyt AWSIoT -ratkaisun. AWSIoT on luotettava ratkaisu IoT -sovellusten isännöintiin.
Seuraamalla tätä ohjeistusta:
- Voit määrittää AWS -tilin IoT -sovelluksellesi
- Voit liittää ESP32: n AWS IoT -ytimeen
- Lähetä ja vastaanota viestejä MQTT- ja HTTP -protokollaa käyttäen
- Visualisoi lähetetyt tiedot AWS: ssä
Vaihe 1: AWS -tilin määrittäminen
AWS -tilin luominen on melko helppoa. Sinun tarvitsee vain ladata pari varmennetta, liittää siihen käytännöt, rekisteröidä laite ja alkaa vastaanottaa anturitietoviestejä AWS: ssä.
Määritä AWS -tili noudattamalla tätä opetusohjelmaa.
Vaihe 2: Laitteisto- ja ohjelmistomääritykset
Ohjelmiston tiedot
AWS -tili
Laitteiston tekniset tiedot
- ESP32
- Langaton lämpötila- ja tärinäanturi
- Zigmo Gateway -vastaanotin
Vaihe 3: Langattomat tärinä- ja lämpötila -anturit
Tämä on pitkän kantaman teollinen IoT -langaton värähtely- ja lämpötila -anturi, joka tarjoaa jopa 2 mailin kantaman käyttämällä langattoman verkon verkkoarkkitehtuuria. Sisältää 16-bittisen tärinä- ja lämpötila-anturin, tämä anturi lähettää erittäin tarkkoja tärinätietoja käyttäjän määrittämin väliajoin. Siinä on seuraavat ominaisuudet:
- Teollisuusluokan 3-akselinen tärinäanturi ± 32 g: n alueella
- Laskee RMS-, MAX- ja MIN g -värähtelyn
- Kohinanpoisto alipäästösuodattimella
- Taajuusalue (kaistanleveys) jopa 12 800 Hz
- Näytteenottotaajuus jopa 25 600 Hz
- Salattu tiedonsiirto 2 mailin langattomalla kantamalla
- Käyttölämpötila -alue -40 … +85 ° C
- Seinä- tai magneetti-IP65-luokiteltu kotelo Esimerkki Visual Studiota ja LabVIEW-ohjelmistoa varten
- Tärinätunnistin ja ulkoinen anturi
- Jopa 500 000 vaihteistoa 4 AA -paristosta Saatavilla monia yhdyskäytävän ja modeemin vaihtoehtoja
Vaihe 4: ESP32 AWS -laiteohjelmisto
Voit muodostaa yhteyden AWS: ään ja aloittaa tietojen lähettämisen seuraavasti
- Lataa AWS -kirjasto seuraavasta Github -arkistosta
- kloonaa repo ja aseta AWS_IOT -tiedosto Arduino -hakemiston kirjastokansioon
git-klooni
Käydään nyt koodi läpi:
- Tässä sovelluksessa olemme käyttäneet 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 5: Anturitietojen saaminen langattomasta tärinä- ja lämpötila -anturista
Saamme 54 tavun kehyksen langattomilta lämpötila- ja tärinäantureilta. Tätä kehystä käsitellään todellisen lämpötilan ja tärinätietojen saamiseksi.
ESP32: ssa on kolme UART -laitetta sarjakäyttöön
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO 10
- RX2 GPIO 16, TX2 GPIO 17
ja 3 laitteiston sarjaporttia
- Sarja
- Sarja 1
- Sarja2
Alusta ensin laitteistosarjan otsikkotiedosto. Täällä käytämme RX2 ja TX2 alias. ESP32 -kortin GPIO 16- ja GPIO 17 -nastat sarjatietojen saamiseksi.
#sisältää
# define RXD2 16 # define TXD2 17
Serial2.begin (115200, SERIAL_8N1, RXD2, TXD2); // nastat 16 rx2, 17 tx2, 19200 bps, 8 bittiä ei pariteettia 1 stopbit
Seuraavat vaiheet auttavat sinua saamaan todelliset anturin arvot
- Luo muuttujia lämpötilan, kosteuden, akun ja muiden anturien arvojen tallentamiseen
- Aseta laitteistosarjan Rx-, tx -nasta-, baudinopeus- ja pariteettibitit
- Tarkista ensin, että on jotain luettavaa Serial1.available ()
- Saamme kehyksen 54 tavua.
- Tarkista 0x7E, joka on tavu.
- Tärinätiedot koostuvat RMS -arvosta 3 -akselille, miniarvosta 3 -akselista ja max -arvosta 3 -akselista.
- lämpötila- ja akkuarvot sisältävät 2 tavua dataa
- Hae anturin nimi, tyyppi, anturiversio sisältää 1 tavun dataa ja sen voi hakea sieltä vastaavasta osoitteesta
if (Serial2.available ()) {Serial.println ("Lue sarja"); data [0] = Sarja2.luku (); viive (k); if (data [0] == 0x7E) {Serial.println ("Got Packet"); while (! Serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); viive (1); } if (data [15] == 0x7F) /////// tarkistaaksesi, että recive -tiedot ovat oikein {if (data [22] == 0x08) //////// varmista, että anturin tyyppi on oikein {rms_x = ((uint16_t) (((data [24]) << 16) + ((data [25]) << 8) + (data [26]))/100); rms_y = ((uint16_t) (((data [27]) << 16) + ((data [28]) << 8) + (data [29]))/100); rms_z = ((uint16_t) (((data [30]) << 16) + ((data [31]) << 8) + (data [32]))/100); int16_t max_x = ((uint16_t) (((data [33]) << 16) + ((data [34]) << 8) + (data [35]))/100); int16_t max_y = ((uint16_t) (((data [36]) << 16) + ((data [37]) << 8) + (data [38]))/100); int16_t max_z = ((uint16_t) (((data [39]) << 16) + ((data [40]) << 8) + (data [41]))/100);
int16_t min_x = ((uint16_t) (((data [42]) << 16) + ((data [43]) << 8) + (data [44]))/100); int16_t min_y = ((uint16_t) (((data [45]) << 16) + ((data [46]) << 8) + (data [47]))/100); int16_t min_z = ((uint16_t) (((data [48]) << 16) + ((data [49]) << 8) + (data [50]))/100);
cTemp = ((((data [51]) * 256) + data [52])); kelluva akku = ((data [18] * 256) + data [19]); jännite = 0,00322 * akku; Serial.print ("Anturin numero"); Serial.println (tiedot [16]); senseNumber = data [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 ("RMS-tärinä X-akselilla:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("RMS-tärinä Y-akselilla:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("RMS-tärinä Z-akselilla:"); Serial.print (rms_z); Serial.println ("mg");
Serial.print ("Min. Tärinä X-akselilla:");
Sarjanjälki (min_x); Serial.println ("mg"); Serial.print ("Min. Tärinä Y-akselilla:"); Sarjanjälki (min_y); Serial.println ("mg"); Serial.print ("Min. Tärinä Z-akselilla:"); Sarjanjälki (min_z); Serial.println ("mg");
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 <54; i ++) {Serial.print (data ); Serial.print (","); viive (1); }}}}
Vaihe 6: Yhdistäminen AWS: ään
- Sisällytä AWS_IOT.h-, WiFi.h -otsikkotiedostot muodostaaksesi yhteyden AWSIoT -keskittimeen
- Anna isäntäosoitteesi, asiakastunnuksesi, joka on käytännön nimi, ja aiheen nimi, josta tulee tavaran nimi
// ********* AWS-tunnistetiedot ************* // char HOST_ADDRESS = "a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; char CLIENT_ID = "ncdGatewayPolicy"; char TOPIC_NAME = "ncdGatewayThing";
Luo char -muuttuja JSONin tallentamiseen, tässä tapauksessa olemme luoneet muodon JSON: n tallentamiseksi
const char *format = "{" SensorId / ": \"%d / ", \" messageId / ":%d, \" rmsX / ":%d, \" rmsY / ":%d, \" rmsZ / ":%d, \" cTemp / ":%d, \" jännite / ":%. 2f}";
Luo AWS_IOT -luokan ilmentymä
AWS_IOT esp; // AWS_IOT -luokan esiintymä
Muodosta nyt yhteys AWSIoT -keskittimeen seuraavalla tavalla
void reconnectMQTT () {if (hornbill.connect (HOST_ADDRESS, CLIENT_ID) == 0) {Serial.println ("Connected to AWS"); viive (1000);
if (0 == hornbill.subscribe (TOPIC_NAME, mySubCallBackHandler))
{Serial.println ("Tilaus onnistui"); } else {Serial.println ("Tilaus epäonnistui, tarkista asian nimi ja varmenteet"); kun taas (1); }} else {Serial.println ("AWS -yhteys epäonnistui, tarkista HOST -osoite"); kun taas (1); }
viive (2000);
}
julkaise anturitiedot 1 minuutin välein
if (rasti> = 60) // julkaise aiheeseen viiden sekunnin välein {rasti = 0; hiilen hyötykuorma [PAYLOAD_MAX_LEN]; snprintf (hyötykuorma, PAYLOAD_MAX_LEN, muoto, senseNumber, msgCount ++, rms_x, rms_y, rms_z, cTemp, jännite); Serial.println (hyötykuorma); if (hornbill.publish (TOPIC_NAME, hyötykuorma) == 0) {Serial.print ("Julkaise viesti:"); Serial.println (hyötykuorma); } else {Serial.println ("Julkaisu epäonnistui"); }} vTaskDelay (1000 / portTICK_RATE_MS); rasti ++;
Vaihe 7: Tietojen visualisointi AWS: ssä
- Kirjaudu AWS -tiliisi.
- työkalupalkin vasemmasta kulmasta löydät Palvelut -välilehden
- Napsauta tätä välilehteä ja valitse esineiden internet -otsikon alta IoT Core.
- Valitse QoS ja ei. viesteistä tilaajille. Kirjoita aiheen nimi.
Vaihe 8: Yleinen koodi
Löydät yleisen koodin tästä Github -arkistosta.
Laajuus
- Arduino Json
- Langattomat lämpötila- ja kosteusanturit
- ESP32
- PubSubClient
Suositeltava:
Digispark Attiny85: n käytön aloittaminen Arduino IDE: n avulla: 4 vaihetta
Digispark Attiny85: n käytön aloittaminen Arduino IDE: n käyttäminen: Digispark on Attiny85 -pohjainen mikrokontrollerin kehityskortti, joka on samanlainen kuin Arduino -linja, vain halvempi, pienempi ja hieman vähemmän tehokas. Koko joukko kilpiä laajentaa sen toiminnallisuutta ja kykyä käyttää tuttua Arduino ID: tä
Amazon AWS IoT: n ja ESP8266: n käytön aloittaminen: 21 vaihetta
Aloittaminen Amazon AWS IoT: n ja ESP8266: n kanssa: Tämä projekti näyttää, kuinka voit ottaa ESP8266 -moduulin ja liittää sen suoraan AWS IOT -järjestelmään Mongoose OS -käyttöjärjestelmää käyttäen. Mongoose OS on avoimen lähdekoodin käyttöjärjestelmä mikro -ohjaimille, joka korostaa pilviyhteyttä. Sen on kehittänyt Dublinin Cesanta
ESP32 CAM -laitteen käytön aloittaminen - Videon suoratoisto ESP CAM: n avulla Wifi -yhteyden kautta - ESP32 -turvakameraprojekti: 8 vaihetta
ESP32 CAM -laitteen käytön aloittaminen | Videon suoratoisto ESP CAM: n avulla Wifi -yhteyden kautta | ESP32 -turvakameraprojekti: Tänään opimme käyttämään tätä uutta ESP32 CAM -korttia ja miten voimme koodata sen ja käyttää sitä turvakamerana ja saada suoratoistovideon wifi -yhteyden kautta
Stm32: n käytön aloittaminen Arduino IDE: n avulla: 3 vaihetta
Stm32: n käytön aloittaminen Arduino IDE: n avulla: STM32 on melko tehokas ja suosittu levy, jota tukee Arduino IDE. ohjelmoimaan sitä
IoT -analogitulo - IoT: n käytön aloittaminen: 8 vaihetta
IoT -analogitulo - IoT: n käytön aloittaminen: Analogisten tulojen ymmärtäminen on tärkeä osa ymmärrystä siitä, miten asiat ympärillämme toimivat, useimmat elleivät kaikki anturit ole analogisia antureita (joskus nämä anturit muunnetaan digitaalisiksi). Toisin kuin digitaalitulot, jotka voidaan kytkeä päälle tai pois päältä, analogitulo