Satura rādītājs:
- 1. darbība. AWS konta iestatīšana
- 2. darbība. Aparatūras un programmatūras specifikācijas
- 3. solis: bezvadu vibrācijas un temperatūras sensori
- 4. darbība: programmaparatūra ESP32 AWS
- 5. darbība. Sensora datu iegūšana no bezvadu vibrācijas un temperatūras sensora
- 6. darbība. Savienojuma izveide ar AWS
- 7. darbība: datu vizualizēšana AWS
- 8. solis: vispārējais kods
Video: Darba sākšana ar AWS IoT ar bezvadu temperatūras sensoru, izmantojot MQTT: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Iepriekšējā Instructables mēs esam izgājuši dažādas mākoņu platformas, piemēram, Azure, Ubidots, ThingSpeak, Losant uc Lai iegūtu papildinformāciju par MQTT, tā priekšrocībām un priekšrocībām salīdzinājumā ar HTTP protokolu, skatiet šo pamācību.
Šajā pamācībā mēs tuvināsimies vēl vienai un vispazīstamākajai mākoņu platformai Amazon Web Services. Daudzi no jums varētu būt pazīstami ar AWS jeb Amazon Web Services un AWS nodrošināto mākoņa funkcionalitāti. Tas ir bijis tīmekļa izstrādes kodols daudzus gadus. Pieaugot IoT lietojumprogrammu apjomam, AWS ir radījis AWSIoT risinājumu. AWSIoT ir uzticams risinājums mūsu IoT lietojumprogrammu mitināšanai.
Ievērojot šo pamācību:
- Jūs varēsit iestatīt AWS kontu savai IoT lietojumprogrammai
- Jūs varēsit savienot ESP32 ar AWS IoT kodolu
- Sūtīt un saņemt ziņas, izmantojot MQTT un HTTP protokolu
- Vizualizējiet nosūtītos datus AWS
1. darbība. AWS konta iestatīšana
AWS konta iestatīšana ir diezgan vienkārša. Jums vienkārši jāaugšupielādē pāris sertifikāti, jāpievieno tai politika, jāreģistrē ierīce un jāsāk saņemt sensoru datu ziņojumi AWS.
Lai iestatītu AWS kontu, izpildiet šo apmācību.
2. darbība. Aparatūras un programmatūras specifikācijas
Programmatūras specifikācija
AWS konts
Aparatūras specifikācija
- ESP32
- Bezvadu temperatūras un vibrācijas sensors
- Zigmo Gateway uztvērējs
3. solis: bezvadu vibrācijas un temperatūras sensori
Šis ir liela attāluma industriālais IoT bezvadu vibrācijas un temperatūras sensors, kas var izmantot līdz 2 jūdžu diapazonu, izmantojot bezvadu tīkla tīkla arhitektūru. Ietverot 16 bitu vibrācijas un temperatūras sensoru, šis sensors pārraida ļoti precīzus vibrācijas datus lietotāja noteiktos intervālos. Tam ir šādas funkcijas:
- Rūpnieciskās klases 3 asu vibrācijas sensors ar diapazonu ± 32 g
- Aprēķina RMS, MAX un MIN g vibrācijas
- Trokšņa noņemšana, izmantojot zemas caurlaidības filtru
- Frekvenču diapazons (joslas platums) līdz 12 800 Hz
- Parauga frekvence līdz 25, 600 Hz
- Šifrēta komunikācija ar 2 jūdžu bezvadu diapazonu
- Darba temperatūras diapazons -40 līdz +85 ° C
- Pie sienas vai ar magnētu piestiprināts IP65 korpuss. Piemēra programmatūra Visual Studio un LabVIEW
- Vibrācijas sensors ar ārējās zondes opciju
- Līdz 500 000 transmisiju no 4 AA baterijām. Ir pieejamas daudzas vārtejas un modema iespējas
4. darbība: programmaparatūra ESP32 AWS
Lai izveidotu savienojumu ar AWS un sāktu datu sūtīšanu, veiciet tālāk norādītās darbības
- Lejupielādējiet AWS bibliotēku no šīs Github krātuves
- klonējiet repo un ievietojiet AWS_IOT failu Arduino direktorijas bibliotēkas mapē
git klons
Tagad apskatīsim kodu:
- Šajā lietojumprogrammā mēs esam izmantojuši saistošu portālu, lai saglabātu WiFi akreditācijas datus un virzītu kursoru, izmantojot IP iestatījumus. Lai iegūtu detalizētu ievadu sagūstītajā portālā, varat izlasīt tālāk sniegtos norādījumus.
- Fiksētais portāls dod mums iespēju izvēlēties starp statiskajiem un DHCP iestatījumiem. Vienkārši ievadiet akreditācijas datus, piemēram, statisko IP, apakštīkla masku, vārteju un bezvadu sensora vārteju, kas tiks konfigurēta šajā IP.
- Tiek mitināta tīmekļa lapa, kurā ir saraksts ar pieejamajiem WiFi tīkliem un RSSI. Atlasiet WiFi tīklu un paroli un ievadiet Iesniegt. Akreditācijas dati tiks saglabāti EEPROM, un IP iestatījums tiks saglabāts SPIFFS. Vairāk par to var atrast šajā pamācībā.
5. darbība. Sensora datu iegūšana no bezvadu vibrācijas un temperatūras sensora
Mēs iegūstam 54 baitu rāmi no bezvadu temperatūras un vibrācijas sensoriem. Šis rāmis tiek manipulēts, lai iegūtu faktiskos temperatūras un vibrācijas datus.
ESP32 ir trīs seriālai lietošanai pieejamie UART
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO 10
- RX2 GPIO 16, TX2 GPIO 17
un 3 aparatūras sērijas porti
- Seriāls
- Sērija1
- Sērija2
Vispirms inicializējiet aparatūras sērijas galvenes failu. Šeit mēs izmantosim RX2 un TX2 aka. GPIO 16 un GPIO 17 tapas no ESP32 plates, lai iegūtu sērijas datus.
#iekļaut
# define RXD2 16 # define TXD2 17
Serial2.begin (115200, SERIAL_8N1, RXD2, TXD2); // tapas 16 rx2, 17 tx2, 19200 bps, 8 biti bez paritātes 1 pieturas bits
Veicot tālāk norādītās darbības, jūs varēsit iegūt sensora reālās vērtības
- Izveidojiet mainīgos, lai saglabātu temperatūru, mitrumu, akumulatoru un citas sensora vērtības
- Iestatiet aparatūras sērijas Rx, tx tapu, pārraides ātrumu un paritātes bitus
- Vispirms pārbaudiet, vai ir kaut kas lasāms, izmantojot Serial1.available ()
- Mēs iegūsim 54 baitu rāmi.
- Pārbaudiet, vai nav 0x7E, kas ir sākuma baits.
- Vibrācijas datus veido RMS vērtība 3 asīm, min vērtības 3 asīm, maksimālās vērtības 3 asīm.
- temperatūras un akumulatora vērtības saturēs 2 baitus datu
- iegūt sensora nosaukumu, veidu, sensora versijā būs 1 baits datu, un to var iegūt no attiecīgās adreses
if (Serial2.available ()) {Serial.println ("Lasīt sēriju"); dati [0] = Serial2.read (); kavēšanās (k); ja (dati [0] == 0x7E) {Serial.println ("Got Packet"); while (! Serial2.available ()); par (i = 1; i <55; i ++) {data = Serial2.read (); kavēšanās (1); } ja (dati [15] == 0x7F) /////// lai pārbaudītu, vai recesīvie dati ir pareizi {if (dati [22] == 0x08) //////// pārliecinieties, vai sensora tips ir pareizs {rms_x = ((uint16_t) (((dati [24]) << 16) + ((dati [25]) << 8) + (dati [26]))/100); rms_y = ((uint16_t) (((dati [27]) << 16) + ((dati [28]) << 8) + (dati [29]))/100); rms_z = ((uint16_t) (((dati [30]) << 16) + ((dati [31]) << 8) + (dati [32]))/100); int16_t max_x = ((uint16_t) (((dati [33]) << 16) + ((dati [34]) << 8) + (dati [35]))/100); int16_t max_y = ((uint16_t) (((dati [36]) << 16) + ((dati [37]) << 8) + (dati [38])))/100); int16_t max_z = ((uint16_t) (((dati [39]) << 16) + ((dati [40]) << 8) + (dati [41]))/100);
int16_t min_x = ((uint16_t) (((dati [42]) << 16) + ((dati [43]) << 8) + (dati [44]))/100); int16_t min_y = ((uint16_t) (((dati [45]) << 16) + ((dati [46]) << 8) + (dati [47]))/100); int16_t min_z = ((uint16_t) (((dati [48]) << 16) + ((dati [49]) << 8) + (dati [50]))/100);
cTemp = ((((dati [51]) * 256) + dati [52])); pludiņa akumulators = ((dati [18] * 256) + dati [19]); spriegums = 0,00322 * akumulators; Serial.print ("Sensora numurs"); Serial.println (dati [16]); senseNumber = dati [16]; Serial.print ("Sensora tips"); Serial.println (dati [22]); Serial.print ("Programmaparatūras versija"); Serial.println (dati [17]); Serial.print ("Temperatūra pēc Celsija:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS vibrācija X-asī:"); Sērijas nospiedums (rms_x); Serial.println ("mg"); Serial.print ("RMS vibrācija Y asī:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("RMS vibrācija Z asī:"); Serial.print (rms_z); Serial.println ("mg");
Serial.print ("Minimālā vibrācija X-asī:");
Sērijas nospiedums (min_x); Serial.println ("mg"); Serial.print ("Minimālā vibrācija Y asī:"); Sērijas nospiedums (min_y); Serial.println ("mg"); Serial.print ("Minimālā vibrācija Z asī:"); Sērijas nospiedums (min_z); Serial.println ("mg");
Serial.print ("ADC vērtība:");
Serial.println (akumulators); Serial.print ("Akumulatora spriegums:"); Sērijas nospiedums (spriegums); Serial.println ("\ n"); ja (spriegums <1) {Serial.println ("Laiks nomainīt akumulatoru"); }}} cits {par (i = 0; i <54; i ++) {Serial.print (dati ); Serial.print (","); kavēšanās (1); }}}}
6. darbība. Savienojuma izveide ar AWS
- Iekļaujiet galvenes failus AWS_IOT.h, WiFi.h, lai izveidotu savienojumu ar AWSIoT centrmezglu
- Ievadiet savu saimniekdatora adresi, klienta ID, kas būs politikas nosaukums, un tēmas nosaukumu, kas būs lietas nosaukums
// ********* AWS akreditācijas dati ************* // char HOST_ADDRESS = "a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; char CLIENT_ID = "ncdGatewayPolicy"; char TOPIC_NAME = "ncdGatewayThing";
Izveidojiet char mainīgo, lai saglabātu savu JSON, šajā gadījumā mēs esam izveidojuši JSON saglabāšanas formātu
const char *format = "{" SensorId / ": \"%d / ", \" messageId / ":%d, \" rmsX / ":%d, \" rmsY / ":%d, \" rmsZ / ":%d, \" cTemp / ":%d, \" spriegums / ":%. 2f}";
Izveidojiet klases AWS_IOT instanci
AWS_IOT esp; // AWS_IOT klases gadījums
Tagad izveidojiet savienojumu ar AWSIoT centrmezglu, izmantojot šādu metodi
void reconnectMQTT () {if (hornbill.connect (HOST_ADDRESS, CLIENT_ID) == 0) {Serial.println ("Savienots ar AWS"); kavēšanās (1000);
ja (0 == hornbill.subscribe (TOPIC_NAME, mySubCallBackHandler))
{Serial.println ("Abonēt veiksmīgu"); } else {Serial.println ("Abonēšana neizdevās, pārbaudiet lietas nosaukumu un sertifikātus"); kamēr (1); }} else {Serial.println ("AWS savienojums neizdevās, pārbaudiet HOST adresi"); kamēr (1); }
kavēšanās (2000);
}
publicējiet sensora datus ik pēc 1 minūtes
if (tick> = 60) // publicēt tēmā ik pēc 5 sekundēm {tick = 0; ogļu lietderīgā krava [PAYLOAD_MAX_LEN]; snprintf (lietderīgā slodze, PAYLOAD_MAX_LEN, formāts, senseNumber, msgCount ++, rms_x, rms_y, rms_z, cTemp, spriegums); Serial.println (lietderīgā slodze); if (hornbill.publish (TOPIC_NAME, lietderīgā slodze) == 0) {Serial.print ("Publicēt ziņojumu:"); Serial.println (lietderīgā slodze); } else {Serial.println ("Publicēšana neizdevās"); }} vTaskDelay (1000 / portsTICK_RATE_MS); atzīmējiet ++;
7. darbība: datu vizualizēšana AWS
- Piesakieties savā AWS kontā.
- rīkjoslas kreisajā stūrī atradīsit cilni Pakalpojumi
- Noklikšķiniet uz šīs cilnes un zem virsraksta Lietu internets izvēlieties IoT Core.
- Atlasiet QoS un nē. ziņu abonentiem. Ievadiet tēmas nosaukumu.
8. solis: vispārējais kods
Kopējo kodu varat atrast šajā Github krātuvē.
Kredīti
- Arduino Json
- Bezvadu temperatūras un mitruma sensori
- ESP32
- PubSubClient
Ieteicams:
Darba sākšana ar liela attāluma bezvadu temperatūras un vibrācijas sensoriem: 7 soļi
Darba sākšana ar liela attāluma bezvadu temperatūras un vibrācijas sensoriem: Dažreiz vibrācija ir nopietnu problēmu cēlonis daudzās lietojumprogrammās. No mašīnas vārpstām un gultņiem līdz cietā diska veiktspējai vibrācija izraisa mašīnas bojājumus, agrīnu nomaiņu, zemu veiktspēju un būtiski ietekmē precizitāti. Uzraudzība
Temperatūras nolasīšana, izmantojot LM35 temperatūras sensoru ar Arduino Uno: 4 soļi
Temperatūras lasīšana, izmantojot LM35 temperatūras sensoru ar Arduino Uno: Sveiki, puiši, šajā pamācībā mēs iemācīsimies izmantot LM35 kopā ar Arduino. Lm35 ir temperatūras sensors, kas var nolasīt temperatūras vērtības no -55 ° C līdz 150 ° C. Tā ir 3 termināļu ierīce, kas nodrošina analogo spriegumu, kas ir proporcionāls temperatūrai. Augstākā
Darba sākšana ar Amazon AWS IoT un ESP8266: 21 darbība
Darba sākšana ar Amazon AWS IoT un ESP8266: Šis projekts parāda, kā ņemt ESP8266 moduli un savienot to tieši ar AWS IOT, izmantojot Mongoose OS. Mongoose OS ir atvērtā koda operētājsistēma mikrokontrolleriem, kas uzsver mākoņa savienojumu. To izstrādāja Dublinas Cesanta
Darba sākšana ar ESP32 CAM - Video straumēšana, izmantojot ESP CAM, izmantojot Wifi - ESP32 drošības kameru projekts: 8 soļi
Darba sākšana ar ESP32 CAM | Video straumēšana, izmantojot ESP CAM, izmantojot Wifi | ESP32 drošības kameru projekts: Šodien mēs uzzināsim, kā izmantot šo jauno ESP32 CAM plati un kā mēs varam to kodēt un izmantot kā drošības kameru un iegūt straumēšanas video, izmantojot WiFi
E-pasta brīdinājumu izveide par NCD bezvadu temperatūras un mitruma sensoru, izmantojot sarkano mezglu: 22 soļi
E-pasta brīdinājumu izveide par NCD bezvadu temperatūras un mitruma sensoru, izmantojot mezglu-sarkanu: mēs šeit izmantojam NCD temperatūras un mitruma sensoru, taču soļi paliek vienādi jebkuram ncd produktam, tādēļ, ja jums ir citi bezvadu sensori, bez maksas novērot līdzās. Apturot šo tekstu, jums ir