Përmbajtje:

IOT Me Rrjet Cellular Me ESP32: 23 Hapa
IOT Me Rrjet Cellular Me ESP32: 23 Hapa

Video: IOT Me Rrjet Cellular Me ESP32: 23 Hapa

Video: IOT Me Rrjet Cellular Me ESP32: 23 Hapa
Video: ESP32 Tutorial 8 -Walking Light 74HC595 Shift register -SunFounder's ESP32 IoT Learnig kit 2024, Nëntor
Anonim
Image
Image
Demonstrim
Demonstrim

Sot do të diskutojmë për modemin GPRS, ose më mirë, ESP32 dhe përdorimin e tij me rrjetin e telefonisë celulare. Kjo është diçka që funksionon shumë mirë. Duke përdorur protokollin MQTT, ne do t'i dërgojmë të dhënat në pultin e Ubidots. Përdorni në këtë asamble një ekran për reagime të qarkut, përveç SIM800L dhe një çip celular. Prandaj, me këtë projekt, ne do të dërgojmë të dhëna për temperaturën dhe lagështinë përmes GPRS dhe MQTT dhe do t'i vizualizojmë të dhënat në një tabelë të linjës.

Hapi 1: Demonstrim

Hapi 2: Montimi

Kuvendi
Kuvendi

Hapi 3: Kuvendi - Tabela

Kuvendi - Tabela
Kuvendi - Tabela

Hapi 4: Ubidots

Ubidots
Ubidots

Hapi 5: Biblioteka SimpleDHT

Biblioteka SimpleDHT
Biblioteka SimpleDHT

Në Arduino IDE, shkoni te Sketch-> Include Library-> Manage Bibliotekat …

Instaloni SimpleDHT

Hapi 6: Biblioteka PubSubClient

Biblioteka PubSubClient
Biblioteka PubSubClient

Në Arduino IDE, shkoni te Sketch-> Include Library-> Manage Bibliotekat …

Instaloni PubSubClient

Hapi 7: Biblioteka TinyGSM

Biblioteka TinyGSM
Biblioteka TinyGSM

Në Arduino IDE, shkoni te Sketch-> Include Library-> Manage Bibliotekat …

Instaloni TinyGSM

Hapi 8: Biblioteka TFT_eSPI

Biblioteka TFT_eSPI
Biblioteka TFT_eSPI

Në Arduino IDE, shkoni te Sketch-> Include Library-> Manage Bibliotekat …

Instaloni TFT_eSPI

Hapi 9: Biblioteka TFT_eSPI

Biblioteka TFT_eSPI
Biblioteka TFT_eSPI

Ndryshoni kunjat e ekranit në dosjen lib.

Mbërthimi është në skedarin User_Setup.h në

C: / Përdoruesit / \ Dokumentet / Arduino / bibliotekat / TFT_eSPI

Ndryshoni këto parazgjedhje në vlerat e mëposhtme në figurë.

Hapi 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Hyni në Ubidots me llogarinë tuaj dhe klikoni në Pajisjet

Klikoni butonin "+" në këndin e sipërm të djathtë

Kliko Blank

Futni emrin e pajisjes. Vini re "etiketën e pajisjes", pasi kjo do të përdoret në "temën" që ne do të përdorim në.ino

Në listën e pajisjeve, pajisja që sapo keni krijuar do të shfaqet. Klikoni mbi të.

Në ekranin që shfaqet, klikoni në "Shto variabël". Do të shfaqet një dritare kërcyese. Klikoni në "I papërpunuar".

Klikoni në kutinë e tekstit dhe futni emrin e pronës.

Duhet të jetë pikërisht ajo që ne do të dërgojmë në json të.ino. Përsëriteni këtë për pronën tjetër.

Kthehuni përsëri në pult duke klikuar në logon e Ubidots.

Në pult, klikoni në "Shto widget të ri"

Në listën e Widgets, zgjidhni "Boshti i dyfishtë"

Hapi 11: Ndryshimi i të dhënave në.ino

Ndryshimi i të dhënave në.ino
Ndryshimi i të dhënave në.ino
Ndryshimi i të dhënave në.ino
Ndryshimi i të dhënave në.ino

Hapi 12: GPRS_ESP32_DHT.ino - Deklarata dhe Ndryshore

GPRS_ESP32_DHT.ino - Deklarata dhe Ndryshore
GPRS_ESP32_DHT.ino - Deklarata dhe Ndryshore

#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-abcdefghijklmmopoprd12 (esp32_gprs é oome do dispositivo no Ubidots) #define TOMIC "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel në Ubidots #define DEVICE_ID "5c01234567890abc12345678" // URL mqtt: //things.ubidots.com "// Porta për të bërë MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

Hapi 13: Mbërthimi

Fiksim
Fiksim

// Pinagem em User_Setup.h dhe makarona për bibliotecaTFT_eSPI display = TFT_eSPI (); // Intervalo entre os envios e refresh da tela #define INTERVAL 10000 // Seriali i kanalit që përdoret për komunikim me modemin. Përdorni semper 1 HardwareSerial SerialGSM (1); ModemGSM TinyGsm (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, kalon një url do server, një porta // e o klientë GSM PubSubClient klient (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; lagështia e notit; // Variável onde iremos armazenar o valor da umidade temperatura e notimit; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperatura

Hapi 14: Konfigurimi

void setup () {Serial.begin (115200); setupDisplay (); // Inicializa dhe konfigurimi i shfaqjes setupGSM (); // Inicializa dhe konfigurimi i modemit GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos dhe limpamos ose vonesa e shfaqjes (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

Hapi 15: SetupDisplay

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpa ose shfaqje com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como branco com fundo azul display.setTextWrap (e vërtetë, e vërtetë); // 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"); }

Hapi 16: SetupGSM

void setupGSM () {display.println ("Konfiguro GSM …"); // Inicializamos a serial onde está o modem SerialGSM.fill (9600, SERIAL_8N1, 4, 2, false); vonesë (3000); // Mostra informação sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa ose modemi nëse (! ModemGSM.restart ()) {display.println ("Rinisja e modemit GSM dështoi"); vonesë (10000); ESP.restart (); kthim; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Nuk u lidh në rrjet"); vonesë (10000); ESP.restart (); kthim; } // Conecta de rede gprs (APN, përdorues, senha) nëse (! ModemGSM.gprsConnect ("", "", "")) {display.println ("Lidhja GPRS dështoi"); vonesë (10000); ESP.restart (); kthim; } display.println ("Konfiguro suksesin GSM"); }

Hapi 17: ConnectMQTTServer

void connectMQTTServer () {display.println ("Lidhja me serverin MQTT …"); // Shihni një pajisje që përcakton nëse (client.connect (DEVICE_ID, TOKEN, "")) {// Shihni një lidhje të afërt me ekran.println ("I lidhur"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); vonesë (10000); ESP.restart (); }}

Hapi 18: Lak

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Se desconectou do server MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos të panënshkruar prej kohësh = millis (); // Shihni intervalo de envio nëse (tani - lastTime> INTERVAL) {// Publicamos para serverit të publikojëMQTT (); // Mostramos os dados pa shfaqje showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = tani; }}

Hapi 19: LexoDHT

void readDHT () {noton t, h; // Faz a leitura da umidade e temperatura e apenas atualiza as variáveis se foi bem sucedido if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {temperature = t; lagështia = h; }}

Hapi 20: Publikoni MQTT

void publikoMQTT () {// Cria ose json që duhet të përdoret për serverin MQTT String msg = createJsonString (); Serial.print ("Publiko mesazhin:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TEMA, msg.c_str ()); Serial.println ("Statusi:" + Vargu (statusi)); // Statusi 1 se sucesso ou 0 se deu erro}

Hapi 21: Krijoni stringJsonString

Krijoni JsonString
Krijoni JsonString

String createJsonString () {Të dhënat e vargut = "{"; nëse (! isnan (lagështia) &&! isnan (temperatura)) {të dhëna+= "\" lagështia / ":"; të dhëna+= Vargu (lagështia, 2); të dhëna+= ","; të dhëna+= "\" temperatura / ":"; të dhëna+= Vargu (temperatura, 2); } të dhëna+= "}"; ktheni të dhënat; }

Hapi 22: ShowDataOnDisplay

void showDataOnDisplay () {// Reseta a posição do cursor e mostra umidade e temperatura lidas display.setCursor (0, 0, 2); display.println ("Lagështia:" + Vargu (lagështia, 2)); display.println ("Temperatura:" + Vargu (temperatura, 2)); }

Hapi 23: Skedarët

Shkarkoni skedarët

INO

PDF

Recommended: