Sisukord:

IOT mobiilsidevõrguga koos ESP32 -ga: 23 sammu
IOT mobiilsidevõrguga koos ESP32 -ga: 23 sammu

Video: IOT mobiilsidevõrguga koos ESP32 -ga: 23 sammu

Video: IOT mobiilsidevõrguga koos ESP32 -ga: 23 sammu
Video: ЮЛЯ ФИНЕСС: Как я вышла с 8 этажа! Групповое изнасилование под мефедроном, психиатрическая больница 2024, November
Anonim
Image
Image
Demonstratsioon
Demonstratsioon

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

Kokkupanek
Kokkupanek

3. samm: kokkupanek - tabel

Kokkupanek - laud
Kokkupanek - laud

4. samm: Ubidots

Ubidotid
Ubidotid

Samm: SimpleDHT kogu

SimpleDHT raamatukogu
SimpleDHT raamatukogu

Avage Arduino IDE-s visand-> Kaasa raamatukogu-> Halda raamatukogusid…

Installige SimpleDHT

6. toiming: PubSubClient Library

PubSubClient Library
PubSubClient Library

Avage Arduino IDE-s visand-> Kaasa raamatukogu-> Halda raamatukogusid…

Installige PubSubClient

Samm: TinyGSM -i kogu

TinyGSM raamatukogu
TinyGSM raamatukogu

Avage Arduino IDE-s visand-> Kaasa raamatukogu-> Halda raamatukogusid…

Installige TinyGSM

8. toiming: TFT_eSPI raamatukogu

TFT_eSPI raamatukogu
TFT_eSPI raamatukogu

Avage Arduino IDE-s visand-> Kaasa raamatukogu-> Halda raamatukogusid…

Installige TFT_eSPI

9. toiming: TFT_eSPI kogu

TFT_eSPI raamatukogu
TFT_eSPI raamatukogu

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

Ubidotid
Ubidotid
Ubidotid
Ubidotid
Ubidotid
Ubidotid

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

Andmete muutmine.ino
Andmete muutmine.ino
Andmete muutmine.ino
Andmete muutmine.ino

12. samm: GPRS_ESP32_DHT.ino - deklaratsioonid ja muutujad

GPRS_ESP32_DHT.ino - deklaratsioonid ja muutujad
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

Kinnitamine
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

CreateJsonString
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

PDF

Soovitan: