Cuprins:
- Pasul 1: demonstrație
- Pasul 2: Asamblare
- Pasul 3: Asamblare - Tabel
- Pasul 4: Ubidots
- Pasul 5: Biblioteca SimpleDHT
- Pasul 6: Biblioteca PubSubClient
- Pasul 7: Biblioteca TinyGSM
- Pasul 8: Biblioteca TFT_eSPI
- Pasul 9: Biblioteca TFT_eSPI
- Pasul 10: Ubidots
- Pasul 11: Schimbarea datelor în.ino
- Pasul 12: GPRS_ESP32_DHT.ino - Declarații și variabile
- Pasul 13: Fixare
- Pasul 14: Configurare
- Pasul 15: SetupDisplay
- Pasul 16: SetupGSM
- Pasul 17: ConnectMQTTServer
- Pasul 18: Buclă
- Pasul 19: ReadDHT
- Pasul 20: PublishMQTT
- Pasul 21: CreateJsonString
- Pasul 22: ShowDataOnDisplay
- Pasul 23: Fișiere
Video: IOT cu rețea celulară cu ESP32: 23 de pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Astăzi vom discuta despre modemul GPRS sau, mai degrabă, despre ESP32 și despre utilizarea acestuia cu rețeaua de telefonie mobilă. Acest lucru funcționează foarte bine. Folosind protocolul MQTT, vom trimite apoi date către tabloul de bord Ubidots. Utilizați în acest ansamblu un afișaj pentru feedback-ul circuitului, pe lângă SIM800L și un cip de telefon mobil. Prin urmare, cu acest proiect, vom trimite date de temperatură și umiditate prin GPRS și MQTT și vom vizualiza datele într-o diagramă liniară.
Pasul 1: demonstrație
Pasul 2: Asamblare
Pasul 3: Asamblare - Tabel
Pasul 4: Ubidots
Pasul 5: Biblioteca SimpleDHT
În IDE-ul Arduino, accesați Schiță-> Includeți bibliotecă-> Gestionați bibliotecile …
Instalați SimpleDHT
Pasul 6: Biblioteca PubSubClient
În IDE-ul Arduino, accesați Schiță-> Includeți bibliotecă-> Gestionați bibliotecile …
Instalați PubSubClient
Pasul 7: Biblioteca TinyGSM
În IDE-ul Arduino, accesați Schiță-> Includeți bibliotecă-> Gestionați bibliotecile …
Instalați TinyGSM
Pasul 8: Biblioteca TFT_eSPI
În IDE-ul Arduino, accesați Schiță-> Includeți bibliotecă-> Gestionați bibliotecile …
Instalați TFT_eSPI
Pasul 9: Biblioteca TFT_eSPI
Schimbați pinii afișajului din folderul lib.
Fixarea se află în fișierul User_Setup.h din
C: / Users / \ Documents / Arduino / libraries / TFT_eSPI
Modificați aceste valori implicite la următoarele valori din imagine.
Pasul 10: Ubidots
Conectați-vă la Ubidots cu contul dvs. și faceți clic pe Dispozitive
Faceți clic pe butonul „+” din colțul din dreapta sus
Faceți clic pe Gol
Introduceți numele dispozitivului. Rețineți „eticheta dispozitivului”, deoarece aceasta va fi utilizată în „subiectul” pe care îl vom folosi în.ino
În lista dispozitivelor, va apărea dispozitivul pe care tocmai l-ați creat. Apasa pe el.
Pe ecranul care apare, faceți clic pe „Adăugați variabilă”. Va apărea un popup. Faceți clic pe „Raw”.
Faceți clic pe caseta de text și introduceți numele proprietății.
Trebuie să fie exact ceea ce vom trimite în fișierul.ino. Repetați acest lucru pentru cealaltă proprietate.
Reveniți la tabloul de bord făcând clic pe sigla Ubidots.
În tabloul de bord, faceți clic pe „Adăugați un widget nou”
În lista Widgeturilor, alegeți „Axa dublă”
Pasul 11: Schimbarea datelor în.ino
Pasul 12: GPRS_ESP32_DHT.ino - Declarații și variabile
. (esp32_gprs é o nome do device no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" // id do device that pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // URL do MQTT Server #define MQTT_SERVER " mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino unde está o DHT22 #define DHT_PIN 27
Pasul 13: Fixare
// Pinagem em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI (); // Intervalo între os envios e refresh da tela #define INTERVAL 10000 // Canal serial care vamos use for comunicarmos com o modem. Utilizați semper 1 HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, treceți o adresă URL a serverului, o poartă // e o client GSM PubSubClient client (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio / refresh foi feito uint32_t lastTime = 0; umiditatea plutitoare; // Variável unde iremos armazenar o valor da umidade float temperature; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade și temperatura
Pasul 14: Configurare
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa și configura o afișare setupGSM (); // Inicializarea și configurarea modemului GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }
Pasul 15: 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 text ca 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 text display.println ("Setup Display Complete"); }
Pasul 16: SetupGSM
void setupGSM () {display.println ("Configurare GSM …"); // Inicializamos a serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); întârziere (3000); // Afișați informații despre modem Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("Restarting GSM Modem failed"); întârziere (10000); ESP.restart (); întoarcere; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Nu s-a conectat la rețea"); întârziere (10000); ESP.restart (); întoarcere; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS Connection Failed"); întârziere (10000); ESP.restart (); întoarcere; } display.println ("Configurare succes GSM"); }
Pasul 17: ConnectMQTTServer
void connectMQTTServer () {display.println ("Conectarea la serverul MQTT …"); // Se conecta ao device that definimos if (client.connect (DEVICE_ID, TOKEN, "")) {// Se a conexão foi bem sucedida display.println ("Connected"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); întârziere (10000); ESP.restart (); }}
Pasul 18: Buclă
void loop () {// Faz a leitura da umiditate și temperatura readDHT (); // Se desconectează serverul MQTT if (! Client.connected ()) {// Mandamos conectar connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Se passou o intervalo de invio if (now - lastTime> INTERVAL) {// Publicamos para o server mqtt publishMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}
Pasul 19: ReadDHT
void readDHT () {float 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; umiditate = h; }}
Pasul 20: PublishMQTT
void publishMQTT () {// Cria o json care iremos send for o server MQTT String msg = createJsonString (); Serial.print („Publicare mesaj:”); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Status:" + String (status)); // Status 1 se reușește sau 0 se deu erro}
Pasul 21: CreateJsonString
String createJsonString () {String data = "{"; if (! isnan (umiditate) &&! isnan (temperatura)) {data + = "\" umiditate / ":"; date + = String (umiditate, 2); date + = ","; date + = "\" temperature / ":"; date + = String (temperatura, 2); } date + = "}"; returnează date; }
Pasul 22: ShowDataOnDisplay
void showDataOnDisplay () {// Resetați o poziție a cursorului și arată umiditatea și temperatura lidas display.setCursor (0, 0, 2); display.println ("Umiditate:" + Șir (umiditate, 2)); display.println ("Temperatura:" + Șir (temperatură, 2)); }
Pasul 23: Fișiere
Descărcați fișierele
EU NU
Recomandat:
Cel mai eficient invertor solar fără rețea din lume: 3 pași (cu imagini)
Cel mai eficient invertor solar fără rețea din lume: energia solară este viitorul. Panourile pot dura multe decenii. Să presupunem că aveți un sistem solar în afara rețelei. Aveți un frigider / congelator și o grămadă de alte lucruri pentru a rula în frumoasa dvs. cabină de la distanță. Nu vă puteți permite să aruncați energie
Adăugați un port de rețea WIZ820io / USR-ES1 - Wiznet W5500 la Raspberry Pi .: 10 pași
Adăugați un port de rețea WIZ820io / USR-ES1 - Wiznet W5500 la Raspberry Pi .: Parțial datorită interesului meu de a face așa ceva și parțial din cauza interesului meu pentru Codesys, l-am avut în minte de ceva vreme încercați să conectați un al doilea port de interfață de rețea la un Raspberry Pi. Deci, în timp ce fac alte proiecte, am fost albină
Lampă celulară WiFi RGB utilizând ESP8266: 6 pași
Lampă celulară RGB WiFi Folosind ESP8266: În acest post, construim o lampă celulară RGB frumoasă care poate fi controlată prin WiFi. Pagina de control constă dintr-o roată de culori care vă permite să schimbați rapid culorile și puteți specifica direct valorile RGB direct pentru a crea un total de peste
Sursă de alimentare fără rețea: 5 pași (cu imagini)
Alimentare cu energie electrică: acest proiect este o alternativă liniștită, prietenoasă la interior, la un generator alimentat cu gaz. Dacă încărcați dispozitive, utilizați lămpi sau chiar folosiți un motor electric pentru o perioadă limitată de timp, această sursă de alimentare de pe rețea este un partener excelent pentru camping sau situații de urgență
Controler de rețea IoT. Partea 9: IoT, Home Automation: 10 pași (cu imagini)
Controler de rețea IoT. Partea 9: IoT, Home Automation: Declinare de responsabilitate CITIȚI ACEST PRIM: Acest instructabil detaliază un proiect care folosește rețeaua de alimentare (în acest caz, 240VAC RMS din Marea Britanie), în timp ce s-a acordat o atenție deosebită utilizării practicii sigure și a principiilor bune de proiectare, există întotdeauna un risc de potențial letal. alege