Turinys:

IOT su koriniu tinklu su ESP32: 23 žingsniai
IOT su koriniu tinklu su ESP32: 23 žingsniai

Video: IOT su koriniu tinklu su ESP32: 23 žingsniai

Video: IOT su koriniu tinklu su ESP32: 23 žingsniai
Video: PTZ vaizdo kamerų galimybės ir konfigūracija ///Webinarai / BK Grupė 2024, Liepa
Anonim
Image
Image
Demonstracija
Demonstracija

Šiandien aptarsime apie GPRS modemą, tiksliau, ESP32 ir jo naudojimą korinio telefono tinkle. Tai labai gerai veikiantis dalykas. Naudodami MQTT protokolą, mes išsiųsime duomenis į „Ubidots“prietaisų skydelį. Šiame rinkinyje, be SIM800L ir mobiliojo telefono mikroschemos, naudokite ekraną, skirtą grandinės atsiliepimams. Todėl įgyvendindami šį projektą, mes siųsime temperatūros ir drėgmės duomenis per GPRS ir MQTT ir vizualizuosime duomenis linijinėje diagramoje.

1 žingsnis: demonstracija

2 žingsnis: Surinkimas

Surinkimas
Surinkimas

3 žingsnis: Surinkimas - stalas

Surinkimas - stalas
Surinkimas - stalas

4 žingsnis: „Ubidots“

Ubidotai
Ubidotai

5 žingsnis: „SimpleDHT“biblioteka

„SimpleDHT“biblioteka
„SimpleDHT“biblioteka

„Arduino IDE“eikite į Eskizas-> Įtraukti biblioteką-> Tvarkyti bibliotekas …

Įdiekite „SimpleDHT“

6 veiksmas: „PubSubClient“biblioteka

PubSubClient biblioteka
PubSubClient biblioteka

„Arduino IDE“eikite į Eskizas-> Įtraukti biblioteką-> Tvarkyti bibliotekas …

Įdiekite „PubSubClient“

7 žingsnis: „TinyGSM“biblioteka

„TinyGSM“biblioteka
„TinyGSM“biblioteka

„Arduino IDE“eikite į Eskizas-> Įtraukti biblioteką-> Tvarkyti bibliotekas …

Įdiekite „TinyGSM“

8 veiksmas: TFT_eSPI biblioteka

TFT_eSPI biblioteka
TFT_eSPI biblioteka

„Arduino IDE“eikite į Eskizas-> Įtraukti biblioteką-> Tvarkyti bibliotekas …

Įdiekite TFT_eSPI

9 veiksmas: TFT_eSPI biblioteka

TFT_eSPI biblioteka
TFT_eSPI biblioteka

Pakeiskite ekrano kaiščius lib aplanke.

Prisegimas yra faile User_Setup.h

C: / Vartotojai / Dokumentai / Arduino / bibliotekos / TFT_eSPI

Pakeiskite šiuos numatytuosius nustatymus į šias vaizdo reikšmes.

10 veiksmas: „Ubidots“

Ubidotai
Ubidotai
Ubidotai
Ubidotai
Ubidotai
Ubidotai

Prisijunkite prie „Ubidots“naudodami savo paskyrą ir spustelėkite Įrenginiai

Spustelėkite mygtuką „+“viršutiniame dešiniajame kampe

Spustelėkite tuščią

Įveskite įrenginio pavadinimą. Atkreipkite dėmesį į „įrenginio etiketę“, nes tai bus naudojama „temoje“, kurią naudosime.ino

Įrenginių sąraše bus rodomas ką tik sukurtas įrenginys. Spustelėkite jį.

Rodomame ekrane spustelėkite „Pridėti kintamąjį“. Pasirodys iššokantis langas. Spustelėkite „Žalias“.

Spustelėkite teksto laukelį ir įveskite nuosavybės pavadinimą.

Tai turi būti būtent tai, ką mes atsiųsime į.ino. Pakartokite tai kitai nuosavybei.

Grįžkite į prietaisų skydelį spustelėdami „Ubidots“logotipą.

Prietaisų skydelyje spustelėkite „Pridėti naują valdiklį“

Valdiklių sąraše pasirinkite „Dviguba ašis“

11 veiksmas: duomenų keitimas.ino

Duomenų keitimas.ino
Duomenų keitimas.ino
Duomenų keitimas.ino
Duomenų keitimas.ino

12 veiksmas: GPRS_ESP32_DHT.ino - Deklaracijos ir kintamieji

GPRS_ESP32_DHT.ino - Deklaracijos ir kintamieji
GPRS_ESP32_DHT.ino - Deklaracijos ir kintamieji

#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 triumfas (esp32_gprs é o nome do dispitivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" // id do dispitivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // URL do MQERQ #Server mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

13 žingsnis: prisegti

Prisegti
Prisegti

// Pinagem em User_Setup.h su 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. Naudokite semper 1 HardwareSerial SerialGSM (1); „TinyGsm“modemasGSM („SerialGSM“); TinyGsmClient gsmClient (modemGSM); // Kliento MQTT, slaptažodis ir url serveris, portalas // ir kliento GSM PubSubClient klientas (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; plūdės drėgmė; // 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 žingsnis: sąranka

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

15 veiksmas: sąrankos rodymas

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpa arba ekranas com or cor 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 ("Sąrankos ekranas baigtas"); }

16 veiksmas: nustatykite GSM

void setupGSM () {display.println ("Nustatyti GSM …"); // Inicializamos a serial onde está or modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); vėlavimas (3000); // Mostra informationção sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("Nepavyko iš naujo paleisti GSM modemo"); vėlavimas (10000); ESP.restart (); grįžti; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Nepavyko prisijungti prie tinklo"); vėlavimas (10000); ESP.restart (); grįžti; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS ryšys nepavyko"); vėlavimas (10000); ESP.restart (); grįžti; } display.println ("Nustatyti GSM sėkmę"); }

17 žingsnis: „ConnectMQTTServer“

void connectMQTTServer () {display.println ("Prisijungimas prie MQTT serverio …"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, ""))) {// Se a conexão foi bem sucedida display.println ("Connected"); } else {// Žr. ocorreu algum erro display.print ("error ="); display.println (client.state ()); vėlavimas (10000); ESP.restart (); }}

18 žingsnis: ciklas

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Išskirkite serverio MQTT, jei (! 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 publisMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = dabar; }}

19 žingsnis: skaitykite

void readDHT () {plūdė 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) {temperatūra = t; drėgmė = h; }}

20 žingsnis: PublishMQTT

void publicMQTT () {// Cria o json que iremos enviar serverio MQTT eilutė msg = createJsonString (); Serial.print ("Skelbti pranešimą:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Būsena:" + eilutė (būsena)); // Būsena 1 nuo sėkmės arba 0 sekundžių}

21 veiksmas: sukurkiteJsonString

SukurtiJsonString
SukurtiJsonString

Styginė createJsonString () {String data = "{"; if (! isnan (drėgmė) &&! isnan (temperatūra)) {data+= "\" drėgmė / ":"; duomenys+= eilutė (drėgmė, 2); duomenys+= ","; duomenys+= "\" temperatūra / ":"; duomenys+= eilutė (temperatūra, 2); } duomenys+= "}"; grąžinti duomenis; }

22 veiksmas: „ShowDataOnDisplay“

void showDataOnDisplay () {// Iš naujo nustatykite žymeklį ir padidinkite drėgmę ir temperatūrą. displayCursor (0, 0, 2); display.println ("Drėgmė:" + eilutė (drėgmė, 2)); display.println ("Temperatūra:" + eilutė (temperatūra, 2)); }

23 žingsnis: failai

Atsisiųskite failus

AŠ NE

PDF

Rekomenduojamas: