Obsah:
- Krok 1: Nastavenie účtu AWS
- Krok 2: Špecifikácia hardvéru a softvéru
- Krok 3: Bezdrôtové snímače vibrácií a teploty
- Krok 4: Firmvér ESP32 AWS
- Krok 5: Získanie údajov zo senzora z bezdrôtového senzora vibrácií a teploty
- Krok 6: Pripojenie k AWS
- Krok 7: Vizualizácia údajov v AWS
- Krok 8: Celkový kód
Video: Začíname s AWS IoT s bezdrôtovým snímačom teploty pomocou MQTT: 8 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
V predchádzajúcich pokynoch sme prešli rôznymi cloudovými platformami, ako sú Azure, Ubidots, ThingSpeak, Losant atď. Na odosielanie údajov senzorov do cloudu používame takmer na všetkých cloudových platformách protokol MQTT. Viac informácií o MQTT, jeho výhodách a výhodách oproti protokolu HTTP nájdete v tomto návode.
V tomto návode sa zameriame na ďalšiu a najznámejšiu cloudovú platformu Amazon Web Services. Mnoho z vás možno pozná AWS alias Amazon Web Services a cloudové funkcie poskytované AWS. Je to jadro vývoja webu už mnoho rokov. S rastúcim rozsahom aplikácií IoT prichádza AWS s riešením AWSIoT. AWSIoT je spoľahlivé riešenie na hosťovanie našich aplikácií internetu vecí.
Podľa týchto pokynov:
- Budete si môcť nastaviť účet AWS pre svoju aplikáciu IoT
- Budete môcť pripojiť jadro ESP32 k AWS IoT
- Odosielajte a prijímajte správy pomocou protokolu MQTT a
- Vizualizujte odoslané údaje v AWS
Krok 1: Nastavenie účtu AWS
Nastavenie účtu AWS je pomerne jednoduché. Stačí nahrať niekoľko certifikátov, pripojiť k nim zásady, zaregistrovať zariadenie a začať prijímať správy o dátach senzora v AWS.
Ak si chcete vytvoriť účet AWS, postupujte podľa tohto návodu.
Krok 2: Špecifikácia hardvéru a softvéru
Špecifikácia softvéru
Účet AWS
Špecifikácia hardvéru
- ESP32
- Bezdrôtový snímač teploty a vibrácií
- Prijímač brány Zigmo
Krok 3: Bezdrôtové snímače vibrácií a teploty
Jedná sa o bezdrôtový snímač vibrácií a teploty IoT s dlhým dosahom, ktorý sa môže pochváliť dosahom až 2 míle pomocou bezdrôtovej sieťovej architektúry. Tento 16-bitový snímač vibrácií a teploty prenáša veľmi presné údaje o vibráciách v intervaloch definovaných užívateľom. Má nasledujúce vlastnosti:
- Priemyselný 3-osý snímač vibrácií s rozsahom ± 32 g
- Vypočítava RMS, MAX a MIN g vibrácií
- Odstránenie šumu pomocou dolnopriepustného filtra
- Frekvenčný rozsah (šírka pásma) až 12 800 Hz
- Vzorkovacia frekvencia až 25 600 Hz
- Šifrovaná komunikácia s bezdrôtovým dosahom 2 míle
- Rozsah prevádzkových teplôt -40 až +85 ° C
- Nástenná alebo magnetická skrinka s krytím IP65. Príklad softvéru pre Visual Studio a LabVIEW
- Senzor vibrácií s možnosťou externej sondy
- Až 500 000 prenosov zo 4 batérií AA K dispozícii je veľa možností brány a modemu
Krok 4: Firmvér ESP32 AWS
Ak sa chcete pripojiť k AWS a začať odosielať údaje, vykonajte nasledujúce kroky
- Stiahnite si knižnicu AWS z nasledujúceho úložiska Github
- naklonujte repo a umiestnite súbor AWS_IOT do priečinka knižnice v adresári Arduino
git klon
Teraz si prejdeme kód:
- V tejto aplikácii sme využili portál na prihlásenie do siete na uloženie poverení WiFi a na prechod cez nastavenia IP. Podrobný úvod do portálu na zajatie nájdete v nasledujúcom návode.
- Portál pre vlastnú potrebu nám dáva možnosť vybrať si medzi statickým a DHCP nastavením. Stačí zadať prihlasovacie údaje, ako sú statická adresa IP, maska podsiete, brána a bezdrôtová senzorová brána sa na tejto adrese IP nakonfigurujú.
- Je hostiteľom webovej stránky so zoznamom dostupných sietí WiFi a RSSI. Vyberte sieť WiFi a heslo a zadajte príkaz na odoslanie. Poverenia sa uložia do EEPROM a nastavenie IP sa uloží do SPIFFS. Viac o tom nájdete v tomto návode.
Krok 5: Získanie údajov zo senzora z bezdrôtového senzora vibrácií a teploty
Z bezdrôtových snímačov teploty a vibrácií získavame 54-bajtový rámec. S týmto rámcom sa manipuluje, aby sa získali údaje o skutočnej teplote a vibráciách.
ESP32 má na sériové použitie k dispozícii tri UART
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO 10
- RX2 GPIO 16, TX2 GPIO 17
a 3 hardvérové sériové porty
- Sériové
- Sériové1
- Sériové 2
Najprv inicializujte hlavičkový súbor hardvéru. Tu budeme používať RX2 a TX2 aka. Piny GPIO 16 a GPIO 17 dosky ESP32 na získanie sériových údajov.
#zahrnúť
# definujte RXD2 16 # definujte TXD2 17
Serial2.begin (115200, SERIAL_8N1, RXD2, TXD2); // piny 16 rx2, 17 tx2, 19200 bps, 8 bitov bez parity 1 stop bit
Nasledujúce kroky vás zavedú ďalej k získaniu skutočných hodnôt senzorov
- Vytvorte premenné na ukladanie hodnôt teploty, vlhkosti, batérie a ďalších senzorov
- Pre hardvérový seriál nastavte bity Rx, tx, prenosovú rýchlosť a paritu
- Najprv skontrolujte, či je možné niečo prečítať pomocou Serial1.available ()
- Získame rámec 54 bajtov.
- Skontrolujte 0x7E, čo je počiatočný bajt.
- Údaje o vibráciách pozostávajú z hodnoty RMS pre 3 osi, minimálnych hodnôt pre 3 osi, maximálnych hodnôt pre 3 osi.
- hodnoty teploty a batérie budú obsahovať 2 bajty údajov
- Získajte názov senzora, typ, verzia senzora bude obsahovať 1 bajt údajov a je možné ho získať z príslušnej adresy
if (Serial2.available ()) {Serial.println ("Read Serial"); údaje [0] = Serial2.read (); oneskorenie (k); if (data [0] == 0x7E) {Serial.println ("Got Packet"); while (! Serial2.available ()); pre (i = 1; i <55; i ++) {údaje = Serial2.read (); oneskorenie (1); } if (data [15] == 0x7F) /////// a skontroluje správnosť prijatých údajov {if (data [22] == 0x08) //////// uistite sa, že je typ snímača je správne {rms_x = ((uint16_t) (((údaje [24]) << 16) + ((údaje [25]) << 8) + (údaje [26]))/100); rms_y = ((uint16_t) ((((údaje [27]) << 16) + ((údaje [28]) << 8) + (údaje [29]))/100); rms_z = ((uint16_t) (((údaje [30]) << 16) + ((údaje [31]) << 8) + (údaje [32]))/100); int16_t max_x = ((uint16_t) (((údaje [33]) << 16) + ((údaje [34]) << 8) + (údaje [35]))/100); int16_t max_y = ((uint16_t) (((údaje [36]) << 16) + ((údaje [37]) << 8) + (údaje [38]))/100); int16_t max_z = ((uint16_t) (((údaje [39]) << 16) + ((údaje [40]) << 8) + (údaje [41]))/100);
int16_t min_x = ((uint16_t) (((údaje [42]) << 16) + ((údaje [43]) << 8) + (údaje [44]))/100); int16_t min_y = ((uint16_t) (((údaje [45]) << 16) + ((údaje [46]) << 8) + (údaje [47]))/100); int16_t min_z = ((uint16_t) (((údaje [48]) << 16) + ((údaje [49]) << 8) + (údaje [50]))/100);
cTemp = ((((údaje [51]) * 256) + údaje [52])); plávajúca batéria = ((údaje [18] * 256) + údaje [19]); napätie = 0,00322 * batéria; Serial.print („číslo senzora“); Serial.println (údaje [16]); senseNumber = údaje [16]; Serial.print ("Typ snímača"); Serial.println (údaje [22]); Serial.print („Verzia firmvéru“); Serial.println (údaje [17]); Serial.print ("Teplota v stupňoch Celzia:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS vibrácie v osi X:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("RMS vibrácie v osi Y:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("RMS vibrácie v osi Z:"); Serial.print (rms_z); Serial.println ("mg");
Serial.print ("Minimálne vibrácie v osi X:");
Serial.print (min_x); Serial.println ("mg"); Serial.print ("Minimálne vibrácie v osi Y:"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("Minimálne vibrácie v osi Z:"); Serial.print (min_z); Serial.println ("mg");
Serial.print ("hodnota ADC:");
Serial.println (batéria); Serial.print ("Napätie batérie:"); Serial.print (napätie); Serial.println ("\ n"); if (napätie <1) {Serial.println ("Čas na výmenu batérie"); }}} else {for (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); oneskorenie (1); }}}}
Krok 6: Pripojenie k AWS
- Zahrňte hlavičkové súbory AWS_IOT.h, WiFi.h na nastavenie pripojenia k rozbočovaču AWSIoT
- Zadajte svoju hostiteľskú adresu, ID klienta, ktorý bude predstavovať názov politiky, a názov témy, ktorý bude zodpovedať názvu veci
// ********* poverenia AWS ************* // char HOST_ADDRESS = "a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; char CLIENT_ID = "ncdGatewayPolicy"; char TOPIC_NAME = "ncdGatewayThing";
Vytvorte premennú char na uloženie svojho JSONU, v tomto prípade sme vytvorili formát na ukladanie JSON
const char *format = "{" SensorId / ": \"%d / ", \" messageId / ":%d, \" rmsX / ":%d, \" rmsY / ":%d, \" rmsZ / ":%d, \" cTemp / ":%d, \" napätie / ":%. 2f}";
Vytvorte inštanciu triedy AWS_IOT
AWS_IOT esp; // Inštancia triedy AWS_IOT
Teraz sa pripojte k rozbočovaču AWSIoT pomocou nasledujúcej metódy
void reconnectMQTT () {if (hornbill.connect (HOST_ADDRESS, CLIENT_ID) == 0) {Serial.println ("Connected to AWS"); oneskorenie (1000);
ak (0 == hornbill.subscribe (TOPIC_NAME, mySubCallBackHandler))
{Serial.println ("Úspešné prihlásenie na odber"); } else {Serial.println („Predplatné zlyhalo, skontrolujte vecný názov a certifikáty“); pričom (1); }} else {Serial.println ("Pripojenie AWS zlyhalo, skontrolujte adresu HOST"); pričom (1); }
oneskorenie (2000);
}
zverejnite údaje senzora po 1 minúte
if (tick> = 60) // publikovať k téme každých 5 sekúnd {tick = 0; užitočné zaťaženie znakov [PAYLOAD_MAX_LEN]; snprintf (užitočné zaťaženie, PAYLOAD_MAX_LEN, formát, senseNumber, msgCount ++, rms_x, rms_y, rms_z, cTemp, napätie); Serial.println (užitočné zaťaženie); if (hornbill.publish (TOPIC_NAME, užitočné zaťaženie) == 0) {Serial.print ("Publikovať správu:"); Serial.println (užitočné zaťaženie); } else {Serial.println ("Publikovanie zlyhalo"); }} vTaskDelay (1000 / portTICK_RATE_MS); zaškrtnúť ++;
Krok 7: Vizualizácia údajov v AWS
- Prihláste sa do svojho účtu AWS.
- v ľavom rohu panela s nástrojmi nájdete kartu Služby
- Kliknite na túto kartu a v časti Internet vecí vyberte IoT Core.
- Vyberte QoS a č. správ pre predplatiteľov. Zadajte názov témy.
Krok 8: Celkový kód
Celkový kód nájdete v tomto úložisku Github.
Kredity
- Arduino Json
- Bezdrôtové snímače teploty a vlhkosti
- ESP32
- PubSubClient
Odporúča:
Automatický chladiaci ventilátor so snímačom teploty a vlhkosti Servo a DHT11 s Arduino: 8 krokov
Automatický chladiaci ventilátor so snímačom teploty a vlhkosti Servo a DHT11 s Arduino: V tomto návode sa naučíme, ako začať & otočte ventilátor, keď teplota stúpne nad určitú úroveň
Domáca automatizácia s dotykovým snímačom NodeMCU LDR Relé na reguláciu teploty: 16 krokov
Domáca automatizácia s dotykovým senzorom NodeMCU LDR relé na reguláciu teploty: V mojich minulých projektoch NodeMCU som ovládal dva domáce spotrebiče z aplikácie Blynk. Dostal som veľa pripomienok a správ na aktualizáciu projektu pomocou manuálneho ovládania a pridania ďalších funkcií. Preto som navrhol tento box pre rozšírenie inteligentnej domácnosti. V tomto IoT
Budík Arduino so snímačom teploty: 5 krokov
Budík Arduino so snímačom teploty: Arduino je veľmi jednoduchý a lacný mikroovladač. a ľahko sa ovládajú. Čo teda v tomto projekte očakávate … použijeme RTC s tak presným nastavením času, ktoré je dostatočne hlasné na to, aby sa prebudila teplota miestnosti, ak chcete sledovať videoklipy
Monitor kvality vzduchu s MQ135 a externým snímačom teploty a vlhkosti nad MQTT: 4 kroky
Monitor kvality vzduchu s MQ135 a externým snímačom teploty a vlhkosti nad MQTT: Toto je na testovacie účely
Node-RED so snímačom vibrácií a teploty IoT s dlhým dosahom: 34 krokov
Node-RED so snímačom vibrácií a teploty IoT s dlhým dosahom: Predstavujeme bezdrôtový snímač teploty NCD s dlhým dosahom od NCD, ktorý sa môže pochváliť dosahom až 28 míľ pomocou bezdrôtovej sieťovej architektúry. Integrovaný snímač teploty vlhkosti Honeywell HIH9130 prenáša veľmi presnú teplotu a