Video: Povežite svoj Magicbit sa pločom sa stvarima: 3 koraka
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
U ovom ćemo projektu poslati podatke sa senzora spojenih na magicbit koje možemo vizualno prikazati na ploči sa stvarima.
Pribor:
- Magicbit
- DHT11 Senzor temperature i vlage (4 pina)
Korak 1: Priča
Uvod
ThingsBoard je platforma sa poslužitelja otvorenog koda koja vam omogućuje nadzor i kontrolu IoT uređaja. Besplatan je za osobnu i komercijalnu uporabu i možete ga postaviti bilo gdje. Ako vam je ovo prvo iskustvo s platformom, preporučujemo vam da pregledate stranicu što je-to-ploča i vodič za početak rada.
Ovaj uzorak aplikacije omogućit će vam da prikažete podatke o vlažnosti/temperaturi sa senzora DHT11 pomoću vašeg čarobnog uređaja i web -sučelja ThingsBoard.
Aplikacija koja se izvodi na Magicbit uređaju napisana je pomoću ThingsBoard Arduino SDK -a koji je prilično jednostavan i lako razumljiv.
Nakon što dovršite ovaj uzorak/vodič, vidjet ćete svoje podatke senzora na sljedećoj nadzornoj ploči.
Posjetite službenu stranicu Thingsboard Demo i prijavite se.
Nakon prijave Na lijevoj bočnoj traci vidjet ćete Uređaji. Kliknite uređaji i dodajte novi uređaj.
Na kartici vjerodajnice označite karticu Dodaj vjerodajnice i odaberite pristupni token iz padajućeg okvira. Ili možete dodati vlastiti pristupni token ili ostaviti prazno za automatsko generiranje tokena.
Postavite uređaj na magicbit u aliasu. Idite na karticu nadzorne ploče i uvezite nadzornu ploču.
Slijedite ove korake na slikama za uvoz nadzorne ploče. U privitcima pronađite demo JSON datoteku pod nazivom "magicbit_temperature_humidity_demo_dashboard.json".
Spojite svoj čarobni bit s DHT11 modulom na sljedeći način na pin 33.
U Arduino IDE -u preuzmite gore navedene knjižnice.
Slijedi Arduino kôd koji ćete koristiti.
Napomena Na skici morate urediti sljedeće konstante i varijable:
- WIFI_AP - naziv vaše pristupne točke
- WIFI_PASSWORD - lozinka pristupne točke
- TOKEN - $ ACCESS_TOKEN iz koraka konfiguracije ThingsBoarda.
- THINGSBOARD_SERVER - HOST/IP adresa ThingsBoarda koja je dostupna unutar vaše WiFi mreže. Navedite demo.thingsboard.io ako koristite demo poslužitelj uživo.
Korak 2: Arduino kod
#include // DHT za knjižnicu Library#include // WiFi kontrola za ESP32#include // ThingsBoard SDK#definirajte DHTPIN 33 // na koji smo digitalni pin povezani#definirajte DHTTYPE DHT11 // DHT 11DHT dht (DHTPIN, DHTTYPE); // Pomoćni makro za izračunavanje veličine niza#define COUNT_OF (x) ((sizeof (x)/ sizeof (0 [x]))/ ((size_t) (! (Sizeof (x) % sizeof (0 [x]))))) // WiFi pristupna točka#definiraj WIFI_AP_NAME "4G" // "WIFI_AP" // WiFi lozinka#definiraj WIFI_PASSWORD "nevergiveup" // "WIFI_PASSWORD" // Vidi https://thingsboard.io/docs/getting- started-guides/helloworld /// da biste razumjeli kako dobiti pristupni token#define TOKEN "XZjQ26r9XJcsNkWGuASY" // "TOKEN" // ThingsBoard poslužitelj instanca.#define THINGSBOARD_SERVER "demo.thingsboard.io" // Brzina prijenosa za otklanjanje pogrešaka serijski #define SERIAL_DEBUG_BAUD 115200 // Inicijalizacija ThingsBoard clientWiFiClient espClient; // Inicijalizacija ThingsBoard instanceThingsBoard tb (espClient); // statusin status Wifi radija = WL_IDLE_STATUS; // Razdoblje slanja podataka o temperaturi/vlažnosti = 2000 send_delay; unsigned long millis_counter; void InitWiFi () {Serial.println ("Spajanje na AP …"); // pokušaj povezivanja na WiFi mrežu WiFi.begin (WIFI_AP_NAME, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {odgoda (500); Serial.print ("."); } Serial.println ("Povezano s pristupnom tačkom");} void reconnect () {// Petlja dok se ponovno ne povežemo status = WiFi.status (); if (status! = WL_CONNECTED) {WiFi.begin (WIFI_AP_NAME, WIFI_PASSWORD); while (WiFi.status ()! = WL_CONNECTED) {odgoda (500); Serial.print ("."); } Serial.println ("Povezano s pristupnom tačkom"); }} // Postavljanje applicationvoid setup () {// Pokretanje serijskog programa za ispravljanje pogrešaka Serial.begin (SERIAL_DEBUG_BAUD); WiFi.započni (WIFI_AP_NAME, WIFI_PASSWORD); InitWiFi (); // Inicijalizacija osjetnika temperature dht.begin ();} // Glavna aplikacija loopvoid loop () {// Ponovno se povežite na WiFi, ako je potrebno if (WiFi.status ()! = WL_CONNECTED) {reconnect (); povratak; } // Ponovo se povežite na ThingsBoard, ako je potrebno if (! Tb.connected ()) {// Povežite se sa ThingsBoard Serial.print ("Spajanje na:"); Serial.print (THINGSBOARD_SERVER); Serial.print ("sa žetonom"); Serial.println (TOKEN); if (! tb.connect (THINGSBOARD_SERVER, TOKEN)) {Serial.println ("Neuspješno povezivanje"); povratak; }} // Provjeri je li vrijeme za slanje temperature i vlažnosti DHT11 if (millis ()-millis_counter> send_delay) {Serial.println ("Slanje podataka …"); // Prenosi novu telemetriju na ThingsBoard pomoću MQTT -a. // Pogledajte https://thingsboard.io/docs/reference/mqtt-api/#telemetry-upload-api // za više detalja float h = dht.readHumidity (); // Očitavanje temperature kao Celsius (zadano) float t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("Nije uspjelo čitanje s DHT senzora!"); } else {Serial.print ("Temperatura:"); Serijski.tisak (t); Serial.print ("Vlažnost"); Serijski.println (h); tb.sendTelemetryFloat ("temperatura", t); tb.sendTelemetryFloat ("vlažnost", h); } millis_counter = millis (); // resetiranje brojača milis}} // Obradi poruke tb.loop ();}
Korak 3: Vizualizacija podataka
U poslužitelju za demonstraciju uživo:
- prijava: vaše korisničko ime za demo (email)
- lozinka: vaša lozinka za demonstraciju uživo
Za detaljnije informacije o tome kako doći do svog računa pogledajte demo stranicu uživo.
Idite na odjeljak "Uređaji" i pronađite "Magicbit", otvorite detalje o uređaju i prijeđite na karticu "Najnovija telemetrija". Ako je sve ispravno konfigurirano, trebali biste moći vidjeti najnovije vrijednosti "temperature" i "vlažnosti".
Nakon toga otvorite odjeljak "Nadzorne ploče", a zatim pronađite i otvorite "magicbit_temperature_humidity_demo_dashboard". Kao rezultat toga, vidjet ćete grafikon vremenskih serija koji prikazuje temperaturu i razinu vlage (slično slici nadzorne ploče u uvodu).