Sisukord:
- Samm: seadistage AWS -i konto
- Samm: riistvara ja tarkvara spetsifikatsioonid
- Samm: traadita vibratsiooni- ja temperatuuriandurid
- Samm: ESP32 AWS püsivara
- Samm: anduri andmete hankimine traadita vibratsiooni- ja temperatuuriandurilt
- 6. toiming: ühenduse loomine AWS -iga
- Samm: andmete visualiseerimine AWS -is
- 8. samm: üldine kood
Video: AWS IoT alustamine traadita temperatuurianduriga MQTT abil: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Varasemates juhistes oleme läbinud erinevaid pilveplatvorme, nagu Azure, Ubidots, ThingSpeak, Losant jne. Oleme kasutanud MQTT -protokolli andurite andmete saatmiseks pilve peaaegu kogu pilveplatvormil. MQTT, selle eeliste ja eeliste kohta HTTP -protokolli kohta lisateabe saamiseks lugege seda juhendit.
Selles juhendis suurendame veel ühte ja kõige tuttavamat pilveplatvormi Amazon Web Services. Paljud teist võivad olla tuttavad AWS -i ehk Amazoni veebiteenustega ja AWS -i pakutava pilvefunktsiooniga. See on olnud veebiarenduse tuum juba aastaid. IoT -rakenduste kasvava ulatusega on AWS välja pakkunud AWSIoT -lahenduse. AWSIoT on usaldusväärne lahendus meie IoT -rakenduste majutamiseks.
Järgides seda juhendit:
- Saate oma IoT -rakenduse jaoks seadistada AWS -i konto
- Saate ESP32 ühendada AWS IoT tuumaga
- Sõnumite saatmine ja vastuvõtmine MQTT ja HTTP protokolli abil
- Visualiseerige saadetud andmeid AWS -is
Samm: seadistage AWS -i konto
AWS -i konto seadistamine on üsna lihtne. Peate lihtsalt üles laadima paar sertifikaati, lisama sellele poliitika, registreerima seadme ja alustama AWS -is andurite andmesõnumite vastuvõtmist.
AWS -i konto seadistamiseks järgige seda õpetust.
Samm: riistvara ja tarkvara spetsifikatsioonid
Tarkvara spetsifikatsioon
AWS -i konto
Riistvara spetsifikatsioon
- ESP32
- Juhtmeta temperatuuri- ja vibratsiooniandur
- Zigmo Gateway vastuvõtja
Samm: traadita vibratsiooni- ja temperatuuriandurid
See on kaugjuhtimispuldi tööstusliku IoT juhtmevaba vibratsiooni- ja temperatuuriandur, mis ulatub kuni 2 miili kauguseni, kasutades traadita võrgusilma arhitektuuri. See andur sisaldab 16-bitist vibratsiooni- ja temperatuuriandurit ning edastab ülitäpseid vibratsiooniandmeid kasutaja määratud ajavahemike järel. Sellel on järgmised omadused:
- Tööstuslik 3-teljeline vibratsiooniandur vahemikuga ± 32 g
- Arvutab RMS, MAX ja MIN g vibratsiooni
- Müra eemaldamine madalpääsfiltri abil
- Sagedusvahemik (ribalaius) kuni 12 800 Hz
- Proovi sagedus kuni 25, 600 Hz
- Krüpteeritud side 2 miili traadita levialaga
- Töötemperatuuri vahemik -40 kuni +85 ° C
- Seinale või magnetile kinnitatud IP65 hinnatud korpus Näidistarkvara Visual Studio ja LabVIEW jaoks
- Vibratsiooniandur koos välise sondiga
- Kuni 500 000 ülekannet 4 AA patareist. Saadaval on palju lüüsi ja modemi valikuid
Samm: ESP32 AWS püsivara
AWS -iga ühenduse loomiseks ja andmete saatmise alustamiseks tehke järgmist
- Laadige AWS -i teek alla järgmisest Githubi hoidlast
- kloonige repot ja asetage AWS_IOT -fail Arduino kataloogi raamatukogu kausta
git kloon
Nüüd vaatame koodi läbi:
- Selles rakenduses kasutasime WiFi volikirjade salvestamiseks ja IP -seadete hõljumiseks suletud portaali. Suletud portaali üksikasjaliku tutvustuse jaoks saate läbi vaadata järgmise juhendi.
- Suletud portaal annab meile võimaluse valida staatiliste ja DHCP -seadete vahel. Sisestage lihtsalt sellised volikirjad nagu staatiline IP, alamvõrgumask, lüüs ja traadita anduri lüüs konfigureeritakse sellel IP -l.
- Hostitakse veebilehte, kus on loetelu saadaolevatest WiFi -võrkudest ja seal RSSI. Valige WiFi -võrk ja parool ning sisestage Esita. Volitused salvestatakse EEPROM -i ja IP -sätted salvestatakse SPIFFS -i. Lisateavet selle kohta leiate sellest juhendist.
Samm: anduri andmete hankimine traadita vibratsiooni- ja temperatuuriandurilt
Me saame traadita temperatuuri- ja vibratsioonianduritelt 54-baidise raami. Seda kaadrit manipuleeritakse, et saada tegelikke temperatuuri ja vibratsiooni andmeid.
ESP32 -l on seeriakasutuseks saadaval kolm UART -i
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO 10
- RX2 GPIO 16, TX2 GPIO 17
ja 3 riistvara jadapordi
- Seriaal
- Seeria1
- Sarja2
Esmalt lähtestage riistvara jada päisefail. Siin kasutame RX2 ja TX2 aka. Seeriaandmete saamiseks kasutage ESP32 plaadi GPIO 16 ja GPIO 17 kontakte.
#kaasake
# define RXD2 16 # define TXD2 17
Serial2.begin (115200, SERIAL_8N1, RXD2, TXD2); // tihvtid 16 rx2, 17 tx2, 19200 bps, 8 bitti ilma pariteedita 1 stopbit
Järgmised sammud aitavad teil andurite tegelikke väärtusi saada
- Looge muutujaid temperatuuri, niiskuse, aku ja muude andurite väärtuste salvestamiseks
- Määrake riistvara jada jaoks Rx, tx pin, edastuskiirus ja pariteedibitid
- Kõigepealt kontrollige, kas Serial1.available () abil on midagi lugeda
- Saame raami 54 baiti.
- Kontrollige 0x7E, mis on algusbait.
- Vibratsiooniandmed koosnevad 3 telje RMS -väärtusest, 3 telje minväärtustest, 3 telje maksimumväärtustest.
- temperatuuri ja aku väärtused sisaldavad 2 baiti andmeid
- saada anduri nimi, tüüp, anduri versioon sisaldab 1 baiti andmeid ja sealt saab vastava aadressi
if (Serial2.available ()) {Serial.println ("Read Serial"); andmed [0] = Serial2.read (); viivitus (k); if (andmed [0] == 0x7E) {Serial.println ("Got Packet"); while (! Serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); viivitus (1); } if (andmed [15] == 0x7F) ///////, et kontrollida, kas tagasivõtmisandmed on õiged {if (andmed [22] == 0x08) //////// veenduge, et anduri tüüp on õige {rms_x = ((uint16_t) (((andmed [24]) << 16) + ((andmed [25]) << 8) + (andmed [26]))/100); rms_y = ((uint16_t) (((andmed [27]) << 16) + ((andmed [28]) << 8) + (andmed [29]))/100); rms_z = ((uint16_t) (((andmed [30]) << 16) + ((andmed [31]) << 8) + (andmed [32]))/100); int16_t max_x = ((uint16_t) (((andmed [33]) << 16) + ((andmed [34]) << 8) + (andmed [35]))/100); int16_t max_y = ((uint16_t) (((andmed [36]) << 16) + ((andmed [37]) << 8) + (andmed [38]))/100); int16_t max_z = ((uint16_t) (((andmed [39]) << 16) + ((andmed [40]) << 8) + (andmed [41]))/100);
int16_t min_x = ((uint16_t) (((andmed [42]) << 16) + ((andmed [43]) << 8) + (andmed [44]))/100); int16_t min_y = ((uint16_t) (((andmed [45]) << 16) + ((andmed [46]) << 8) + (andmed [47]))/100); int16_t min_z = ((uint16_t) (((andmed [48]) << 16) + ((andmed [49]) << 8) + (andmed [50]))/100);
cTemp = ((((andmed [51]) * 256) + andmed [52])); ujukpatarei = ((andmed [18] * 256) + andmed [19]); pinge = 0,00322 * aku; Serial.print ("Anduri number"); Serial.println (andmed [16]); senseNumber = andmed [16]; Serial.print ("Anduri tüüp"); Serial.println (andmed [22]); Serial.print ("Püsivara versioon"); Serial.println (andmed [17]); Serial.print ("Temperatuur Celsiuse järgi:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS vibratsioon X-teljel:"); Seeria.print (rms_x); Serial.println ("mg"); Serial.print ("RMS vibratsioon Y-teljel:"); Seeria.print (rms_y); Serial.println ("mg"); Serial.print ("RMS vibratsioon Z-teljel:"); Serial.print (rms_z); Serial.println ("mg");
Serial.print ("Minimaalne vibratsioon X-teljel:");
Seeriatrükk (min_x); Serial.println ("mg"); Serial.print ("Min vibratsioon Y-teljel:"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("Minimaalne vibratsioon Z-teljel:"); Serial.print (min_z); Serial.println ("mg");
Serial.print ("ADC väärtus:");
Serial.println (aku); Serial.print ("Aku pinge:"); Jadajälg (pinge); Serial.println ("\ n"); if (pinge <1) {Serial.println ("Aku vahetamise aeg"); }}} muu {jaoks (i = 0; i <54; i ++) {Serial.print (andmed ); Serial.print (","); viivitus (1); }}}}
6. toiming: ühenduse loomine AWS -iga
- Kaasa AWS_IOT.h, WiFi.h päisefailid, et luua ühendus AWSIoT -jaoturiga
- Sisestage oma hostiaadress, kliendi ID, mis on poliitika nimi, ja teema nimi, millest saab asja nimi
// ********* AWS-i volikirjad ************* // char HOST_ADDRESS = "a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; char CLIENT_ID = "ncdGatewayPolicy"; char TOPIC_NAME = "ncdGatewayThing";
Looge oma JSON -i salvestamiseks muutuja char, sel juhul oleme loonud vormingu JSON -i salvestamiseks
const char *format = "{" SensorId / ": \"%d / ", \" messageId / ":%d, \" rmsX / ":%d, \" rmsY / ":%d, \" rmsZ / ":%d, \" cTemp / ":%d, \" pinge / ":%. 2f}";
Looge klassi AWS_IOT eksemplar
AWS_IOT esp; // AWS_IOT klassi eksemplar
Nüüd looge ühendus AWSIoT -jaoturiga, kasutades järgmist meetodit
void reconnectMQTT () {if (hornbill.connect (HOST_ADDRESS, CLIENT_ID) == 0) {Serial.println ("Ühendatud AWS -iga"); viivitus (1000);
if (0 == hornbill.subscribe (TOPIC_NAME, mySubCallBackHandler))
{Serial.println ("Subscribe Successfull"); } else {Serial.println ("Tellimine ebaõnnestus, kontrollige asja nime ja sertifikaate"); samas (1); }} else {Serial.println ("AWS -ühendus ebaõnnestus, kontrollige HOST -i aadressi"); samas (1); }
viivitus (2000);
}
avaldage anduri andmed iga 1 minuti järel
if (linnuke> = 60) // avaldada teemasse iga 5 sekundi tagant {tick = 0; söe kasulik koormus [PAYLOAD_MAX_LEN]; snprintf (kasulik koormus, PAYLOAD_MAX_LEN, vorming, senseNumber, msgCount ++, rms_x, rms_y, rms_z, cTemp, pinge); Serial.println (kasulik koormus); if (hornbill.publish (TOPIC_NAME, kasulik koormus) == 0) {Serial.print ("Avalda sõnum:"); Serial.println (kasulik koormus); } else {Serial.println ("Avaldamine ebaõnnestus"); }} vTaskDelay (1000 / portTICK_RATE_MS); linnuke ++;
Samm: andmete visualiseerimine AWS -is
- Logige sisse oma AWS -i kontole.
- tööriistariba vasakus nurgas leiate vahekaardi Teenused
- Klõpsake seda vahekaarti ja valige asjade Interneti pealkirja all IoT Core.
- Valige QoS ja nr. tellijatele saadetud sõnumitest. Sisestage teema nimi.
8. samm: üldine kood
Selle Githubi hoidla üldise koodi leiate.
Autorid
- Arduino Json
- Juhtmevabad temperatuuri ja niiskuse andurid
- ESP32
- PubSubClient
Soovitan:
Traadita temperatuuri- ja vibratsioonisensorite kasutamise alustamine: 7 sammu
Traadita temperatuuri- ja vibratsioonisensorite kasutamisega alustamine: Mõnikord põhjustab vibratsioon paljudes rakendustes tõsiseid probleeme. Alates masina võllidest ja laagritest kuni kõvaketta jõudluseni põhjustab vibratsioon masina kahjustusi, varajast väljavahetamist, madalat jõudlust ja mõjutab oluliselt täpsust. Jälgimine
Sõlm-punane IoT pikamaa vibratsiooni ja temperatuurianduriga: 34 sammu
Sõlm-punane koos IoT pikamaa vibratsiooni- ja temperatuurianduriga: tutvustame NCD kaugjuhtimispuldi traadita temperatuuriniiskuse andurit, mis ulatub kuni 28 miili kauguseni, kasutades traadita võrgusilma arhitektuuri. Honeywell HIH9130 temperatuuriniiskusanduri kasutamine edastab ülitäpse temperatuuri ja
Traadita Arduino robot, kasutades HC12 traadita moodulit: 7 sammu
Traadita Arduino robot, kasutades HC12 traadita moodulit: Hei poisid, tere tulemast tagasi. Oma eelmises postituses selgitasin, mis on H -sildahel, L293D mootorijuhi IC, sihikindel L293D mootorijuhi IC suure vooluga mootorijuhtide juhtimiseks ja kuidas saate oma L293D mootori juhtplaati kujundada ja teha
Alustamine Amazon AWS IoT ja ESP8266 abil: 21 sammu
Alustamine Amazon AWS IoT ja ESP8266 -ga: See projekt näitab teile, kuidas võtta ESP8266 moodul ja ühendada see otse AWS IOT -iga, kasutades Mongoose OS -i. Mongoose OS on avatud lähtekoodiga operatsioonisüsteem mikrokontrolleritele, mis rõhutab pilveühendust. Selle töötas välja Dublini Cesanta
E-posti märguannete loomine traadita temperatuuri ja niiskuse anduri NCD abil punase sõlme abil: 22 sammu
E-posti märguannete loomine NCD traadita temperatuuri ja niiskuse anduri kohta sõlme-punase abil: kasutame siin NCD temperatuuri ja niiskuse andurit, kuid sammud jäävad kõigi ncd-toodete jaoks samaks, nii et kui teil on muid ncd traadita andureid, proovige seda tasuta kõrvalt kõrvalt jälgida. Selle teksti peatamise abil peate