Sisukord:
- 1. samm: demonstratsioon
- 2. samm: kokkupanek
- 3. samm: kokkupanek - tabel
- 4. samm: Ubidots
- Samm: SimpleDHT kogu
- 6. toiming: PubSubClient Library
- Samm: TinyGSM -i kogu
- 8. toiming: TFT_eSPI raamatukogu
- 9. toiming: TFT_eSPI kogu
- 10. samm: Ubidots
- Samm 11: andmete muutmine.ino
- 12. samm: GPRS_ESP32_DHT.ino - deklaratsioonid ja muutujad
- 13. samm: kinnitamine
- 14. samm: seadistamine
- 15. samm: seadistuse kuvamine
- 16. samm: seadistage GSM
- Samm 17: ConnectMQTTServer
- 18. samm: silmus
- 19. samm: lugege
- 20. samm: avaldage MQTT
- Samm 21: CreateJsonString
- 22. samm: ShowDataOnDisplay
- 23. samm: failid
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Täna arutleme GPRS -modemi või õigemini ESP32 ja selle kasutamise üle mobiiltelefonivõrguga. See on midagi, mis töötab väga hästi. MQTT protokolli kasutades saadame andmed Ubidotsi armatuurlauale. Kasutage selles komplektis lisaks SIM800L -ile ja mobiiltelefoni kiibile ka vooluahela tagasiside kuvamiseks kuvarit. Selle projektiga saadame seetõttu temperatuuri ja niiskuse andmed GPRS -i ja MQTT kaudu ning visualiseerime andmed joondiagrammina.
1. samm: demonstratsioon
2. samm: kokkupanek
3. samm: kokkupanek - tabel
4. samm: Ubidots
Samm: SimpleDHT kogu
Avage Arduino IDE-s visand-> Kaasa raamatukogu-> Halda raamatukogusid…
Installige SimpleDHT
6. toiming: PubSubClient Library
Avage Arduino IDE-s visand-> Kaasa raamatukogu-> Halda raamatukogusid…
Installige PubSubClient
Samm: TinyGSM -i kogu
Avage Arduino IDE-s visand-> Kaasa raamatukogu-> Halda raamatukogusid…
Installige TinyGSM
8. toiming: TFT_eSPI raamatukogu
Avage Arduino IDE-s visand-> Kaasa raamatukogu-> Halda raamatukogusid…
Installige TFT_eSPI
9. toiming: TFT_eSPI kogu
Muutke lib -kaustas kuvatavaid nööpnõelu.
Kinnitus on failis User_Setup.h
C: / Kasutajad / Dokumendid / Arduino / teegid / TFT_eSPI
Muutke need vaikeseaded pildil järgmisteks väärtusteks.
10. samm: Ubidots
Logige oma kontoga sisse Ubidotsi ja klõpsake nuppu Seadmed
Klõpsake paremas ülanurgas nuppu "+"
Klõpsake nuppu Tühi
Sisestage seadme nimi. Pange tähele "seadme silti", kuna seda kasutatakse "teemas", mida kasutame.ino -s
Seadmete loendis kuvatakse äsja loodud seade. Klõpsake seda.
Klõpsake kuvataval ekraanil nuppu "Lisa muutuja". Ilmub hüpikaken. Klõpsake "Toores".
Klõpsake tekstiväljal ja sisestage atribuudi nimi.
See peab olema täpselt see, mille me.ino json -is saadame. Korrake seda teise vara puhul.
Minge tagasi juhtpaneelile, klõpsates Ubidotsi logol.
Klõpsake juhtpaneelil nuppu "Lisa uus vidin"
Valige vidinate loendist "Kahe teljega"
Samm 11: andmete muutmine.ino
12. samm: GPRS_ESP32_DHT.ino - deklaratsioonid ja muutujad
#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-abcdefghijklmnopqrstuvwxyz pärast e-posti aadressi 12332" (esp32_gprs é o nome do dispositivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // URL do MQER Server # mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino on está o DHT22 #define DHT_PIN 27
13. samm: kinnitamine
// Pinagem em User_Setup.h ja pasta da 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. Kasutage semper 1 HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Client MQTT, passamos url do server, port // e või klient GSM PubSubClient klient (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; ujuki niiskus; // Variável onde 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 e temperatura
14. samm: seadistamine
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Ühenduse konfigureerimine või modemi GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }
15. samm: seadistuse kuvamine
void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpa või kuvamine koos selle ekraaniga.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca või 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"); }
16. samm: seadistage GSM
void setupGSM () {display.println ("Seadista GSM …"); // Inicializamos a serial on modable SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); viivitus (3000); // Enamik teavet teabe või modemi kohta Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("GSM -modemi taaskäivitamine ebaõnnestus"); viivitus (10000); ESP.restart (); tagasipöördumine; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Võrguga ühenduse loomine ebaõnnestus"); viivitus (10000); ESP.restart (); tagasipöördumine; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS -ühenduse nurjumine"); viivitus (10000); ESP.restart (); tagasipöördumine; } display.println ("Seadista GSM -i edu"); }
Samm 17: ConnectMQTTServer
void connectMQTTServer () {display.println ("Ühendamine MQTT -serveriga …"); // Seconecto ao device que definimos if (client.connect (DEVICE_ID, TOKEN, ""))) {// Se a conexão foi bem sucedida display.println ("Connected"); } else {// Vaata ocorreu algum erro display.print ("error ="); display.println (client.state ()); viivitus (10000); ESP.restart (); }}
18. samm: silmus
void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Desconectou do 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 publicMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}
19. samm: lugege
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) {temperatuur = t; niiskus = h; }}
20. samm: avaldage MQTT
void publicMQTT () {// Cria o json que iremos enviar para või server MQTT String msg = createJsonString (); Serial.print ("Avalda sõnum:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TEEMA, msg.c_str ()); Serial.println ("Olek:" + string (olek)); // Olek 1 pärast õnnestumist või 0 sekundit}
Samm 21: CreateJsonString
String createJsonString () {String andmed = "{"; if (! isnan (niiskus) &&! isnan (temperatuur)) {andmed+= "\" niiskus / ":"; andmed+= string (niiskus, 2); andmed+= ","; andmed+= "\" temperatuur / ":"; andmed+= string (temperatuur, 2); } andmed+= "}"; tagastada andmed; }
22. samm: ShowDataOnDisplay
void showDataOnDisplay () {// Lähtestage kursor ja paigutage see temperatuur ja laske ekraanil.setCursor (0, 0, 2); display.println ("Niiskus:" + string (niiskus, 2)); display.println ("Temperatuur:" + string (temperatuur, 2)); }
23. samm: failid
Laadige failid alla
INO