Kazalo:

IOT s mobilnim omrežjem z ESP32: 23 koraki
IOT s mobilnim omrežjem z ESP32: 23 koraki

Video: IOT s mobilnim omrežjem z ESP32: 23 koraki

Video: IOT s mobilnim omrežjem z ESP32: 23 koraki
Video: Домашняя автоматизация: лампа переменного тока с использованием реле с NodeMCU D1 Mini через WiFi 2024, November
Anonim
Image
Image
Demonstracija
Demonstracija

Danes bomo razpravljali o modemu GPRS ali bolje rečeno o ESP32 in njegovi uporabi z mobilnim telefonskim omrežjem. To je nekaj, kar zelo dobro deluje. S protokolom MQTT bomo podatke poslali na nadzorno ploščo Ubidots. V tem sklopu uporabite zaslon za povratne informacije o vezju, poleg kartice SIM800L in čipa mobilnega telefona. S tem projektom bomo zato pošiljali podatke o temperaturi in vlažnosti prek GPRS in MQTT ter podatke vizualizirali v linijskem grafikonu.

1. korak: demonstracija

2. korak: Montaža

Montaža
Montaža

3. korak: Montaža - miza

Montaža - miza
Montaža - miza

4. korak: Ubidots

Ubidots
Ubidots

5. korak: Knjižnica SimpleDHT

Knjižnica SimpleDHT
Knjižnica SimpleDHT

V Arduino IDE pojdite na Sketch-> Include Library-> Manage Libraries …

Namestite SimpleDHT

6. korak: Knjižnica PubSubClient

Knjižnica PubSubClient
Knjižnica PubSubClient

V Arduino IDE pojdite na Sketch-> Include Library-> Manage Libraries …

Namestite PubSubClient

7. korak: Knjižnica TinyGSM

Knjižnica TinyGSM
Knjižnica TinyGSM

V Arduino IDE pojdite na Sketch-> Include Library-> Manage Libraries …

Namestite TinyGSM

8. korak: Knjižnica TFT_eSPI

Knjižnica TFT_eSPI
Knjižnica TFT_eSPI

V Arduino IDE pojdite na Sketch-> Include Library-> Manage Libraries …

Namestite TFT_eSPI

9. korak: Knjižnica TFT_eSPI

Knjižnica TFT_eSPI
Knjižnica TFT_eSPI

Spremenite prikazovalne zatiče v mapi lib.

Pripenjanje je v datoteki User_Setup.h v

C: / Uporabniki / \ Dokumenti / Arduino / knjižnice / TFT_eSPI

Te privzete vrednosti spremenite v naslednje vrednosti na sliki.

10. korak: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Prijavite se v Ubidots s svojim računom in kliknite Naprave

V zgornjem desnem kotu kliknite gumb "+"

Kliknite Prazno

Vnesite ime naprave. Upoštevajte "oznako naprave", saj bo ta uporabljena v "temi", ki jo bomo uporabili v.ino

Na seznamu naprav se prikaže naprava, ki ste jo pravkar ustvarili. Kliknite nanjo.

Na zaslonu, ki se prikaže, kliknite »Dodaj spremenljivko«. Pojavil se bo pojavno okno. Kliknite na "Raw".

Kliknite besedilno polje in vnesite ime lastnosti.

To mora biti točno tisto, kar bomo poslali v json datoteke.ino. Ponovite to za drugo lastnino.

Vrnite se na nadzorno ploščo s klikom na logotip Ubidots.

Na nadzorni plošči kliknite »Dodaj nov pripomoček«

Na seznamu pripomočkov izberite "Dvojna os"

11. korak: Spreminjanje podatkov v.ino

Spreminjanje podatkov v.ino
Spreminjanje podatkov v.ino
Spreminjanje podatkov v.ino
Spreminjanje podatkov v.ino

12. korak: GPRS_ESP32_DHT.ino - Izjave in spremenljivke

GPRS_ESP32_DHT.ino - Izjave in spremenljivke
GPRS_ESP32_DHT.ino - Izjave in spremenljivke

#define TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos usando #include #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz012 temperatura" (esp32_gprs é o imenu do dispozitiva brez Ubidotov) #define TOPIC "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678TT Mreža" URL MD mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

13. korak: Pripenjanje

Pripenjanje
Pripenjanje

// Pinagem em User_Setup.h na teste za bibliotecaTFT_eSPI display = TFT_eSPI (); // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // Canal serial que vamos usar para comunicarmos com o modem. Uporabite semper 1 HardwareSerial SerialGSM (1); Modem TinyGsmGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Odjemalec MQTT, prehod na strežnik url do, porta // e ali klient GSM PubSubClient odjemalec (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; plavajoča vlažnost; // Variável onde iremos armazenar o valor da umidade plavajoča temperatura; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperature

14. korak: Nastavitev

void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Inicializa e konfiguracija modema GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

15. korak: SetupDisplay

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpa o display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como branco com fundo azul display.setTextWrap (true, true); // Ativa quebra de linha display.setTextSize (1); display.setCursor (0, 0, 2); // Posicção x, y e fonte do texto display.println ("Setup Display Complete"); }

Korak: Namestite GSM

void setupGSM () {display.println ("Nastavitev GSM …"); // Inicializamos a serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); zamuda (3000); // Več informacij o modemu Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("Ponovni zagon modema GSM ni uspel"); zamuda (10000); ESP.restart (); vrnitev; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Povezava z omrežjem ni uspela"); zamuda (10000); ESP.restart (); vrnitev; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS Connection Failed"); zamuda (10000); ESP.restart (); vrnitev; } display.println ("Nastavitev uspeha GSM"); }

17. korak: Povežite strežnik MQTTServer

void connectMQTTServer () {display.println ("Povezovanje s strežnikom MQTT …"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, ""))) {// Se conexão foi bem sucedida display.println ("Connected"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); zamuda (10000); ESP.restart (); }}

18. korak: Zanka

void loop () {// Faz a leitura da umidade e temperature readDHT (); // Se desconectou do server MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Se passou o intervalo de envio if (now - lastTime> INTERVAL) {// Publicamos para o server mqtt publishedMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = zdaj; }}

19. korak: PreberiteDHT

void readDHT () {float t, h; // Faz a leitura da umidade e temperature e apenas atualiza as variaáveis se foi bem sucedido if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {temperature = t; vlažnost = h; }}

20. korak: PublishMQTT

void publishedMQTT () {// Cria o json que iremos se prikaže za strežnik MQTT String msg = createJsonString (); Serial.print ("Objavi sporočilo:"); Serial.println (sporočilo); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Status:" + String (status)); // Stanje 1 je uspešno ali pa 0 napake}

21. korak: UstvariteJsonString

UstvariJsonString
UstvariJsonString

Niz createJsonString () {String data = "{"; if (! isnan (vlažnost) &&! isnan (temperatura)) {data+= "\" vlažnost / ":"; podatki+= niz (vlažnost, 2); podatki+= ","; podatki+= "\" temperatura / ":"; podatki+= niz (temperatura, 2); } podatki+= "}"; vrniti podatke; }

Korak: ShowDataOnDisplay

void showDataOnDisplay () {// Ponovno nastavite kazalec na večino umidade in temperaturo na zaslonu. setCursor (0, 0, 2); display.println ("Vlažnost:" + niz (vlažnost, 2)); display.println ("Temperatura:" + niz (temperatura, 2)); }

23. korak: Datoteke

Prenesite datoteke

JAZ NE

PDF

Priporočena: