Sadržaj:

IOT sa mobilnom mrežom sa ESP32: 23 koraka
IOT sa mobilnom mrežom sa ESP32: 23 koraka

Video: IOT sa mobilnom mrežom sa ESP32: 23 koraka

Video: IOT sa mobilnom mrežom sa ESP32: 23 koraka
Video: Apa itu? Stepper Motor - Blynk Nodemcu Etching Bucket (Subtittled) 2024, Juli
Anonim
Image
Image
Demonstracija
Demonstracija

Danas ćemo razgovarati o GPRS modemu, ili bolje rečeno, ESP32 i njegovoj upotrebi s mobilnom telefonskom mrežom. Ovo je nešto što jako dobro funkcionira. Koristeći MQTT protokol, tada ćemo podatke slati na Ubidots nadzornu ploču. U ovom sklopu upotrijebite zaslon za povratne informacije o krugu, pored SIM800L i čipa za mobitel. Ovim projektom ćemo stoga slati podatke o temperaturi i vlažnosti putem GPRS -a i MQTT -a, te podatke vizualizirati u linijskom grafikonu.

Korak 1: Demonstracija

Korak 2: Montaža

Montaža
Montaža

Korak 3: Montaža - Tabela

Montaža - Tabela
Montaža - Tabela

Korak 4: Ubidots

Ubidots
Ubidots

Korak 5: Knjižnica SimpleDHT

Biblioteka SimpleDHT
Biblioteka SimpleDHT

U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …

Instalirajte SimpleDHT

Korak 6: PubSubClient biblioteka

PubSubClient biblioteka
PubSubClient biblioteka

U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …

Instalirajte PubSubClient

Korak 7: TinyGSM biblioteka

TinyGSM biblioteka
TinyGSM biblioteka

U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …

Instalirajte TinyGSM

Korak 8: TFT_eSPI biblioteka

TFT_eSPI biblioteka
TFT_eSPI biblioteka

U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …

Instalirajte TFT_eSPI

Korak 9: TFT_eSPI biblioteka

TFT_eSPI biblioteka
TFT_eSPI biblioteka

Promenite prikazivače u direktorijumu lib.

Prikačivanje se nalazi u datoteci User_Setup.h u

C: / Users / \ Documents / Arduino / libraries / TFT_eSPI

Promijenite ove zadane vrijednosti na sljedeće vrijednosti na slici.

Korak 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Prijavite se na Ubidots sa svojim računom i kliknite na Uređaji

Pritisnite dugme "+" u gornjem desnom uglu

Pritisnite Blank

Unesite naziv uređaja. Obratite pažnju na "oznaku uređaja", jer će se to koristiti u "temi" koju ćemo koristiti u.ino

Na popisu uređaja pojavit će se uređaj koji ste upravo stvorili. Kliknite na nju.

Na ekranu koji se pojavi kliknite na "Dodaj varijablu". Pojavit će se skočni prozor. Kliknite na "Raw".

Kliknite na okvir za tekst i unesite naziv svojstva.

Mora biti upravo ono što ćemo poslati u json -u.ino -a. Ponovite ovo za drugu nekretninu.

Vratite se na nadzornu ploču klikom na logotip Ubidots.

Na nadzornoj ploči kliknite "Dodaj novi widget"

Na listi widgeta odaberite "Dvoosna"

Korak 11: Promjena podataka u.ino

Promjena podataka u.ino
Promjena podataka u.ino
Promjena podataka u.ino
Promjena podataka u.ino

Korak 12: GPRS_ESP32_DHT.ino - Deklaracije i varijable

GPRS_ESP32_DHT.ino - Deklaracije i varijable
GPRS_ESP32_DHT.ino - Deklaracije i varijable

#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-abcdefghijklmnopqrstuvwxyz012 tad tpdados tpc tpc tpc tpc tpc tcd tcrcvcdcdcdcdcdcddcdcdcdc" tcdc "t" (esp32_gprs je o imenu do dispozitiva bez Ubidota) #define TOPIC "/v1.6/devices/esp32_gprs" // id do dispozitiva que pegamos no painel to Ubidots #define DEVICE_ID "5c01234567890abc12345678TT Mreža" URL MD mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

Korak 13: Prikačivanje

Prikačivanje
Prikačivanje

// Pinagem em User_Setup.h na popisu bibliotecaTFT_eSPI display = TFT_eSPI (); // Intervalo entre os envios e refresh to tela #define INTERVAL 10000 // Serijski kanal koji može koristiti vaš komunikacijski modem. Iskoristite semper 1 Hardverski serijski serijski GSM (1); TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Klijent MQTT, prolaz kroz url do server, porta // e o klijent GSM PubSubClient klijent (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; plutajuća vlažnost; // Variável onde iremos armazenar o valor da umidade plutajuće temperature; // Varijable i iremos armazena ili vrijednosti do temperature SimpleDHT22 dht; // Objeto que realizará a leitura to umidade e temperature

Korak 14: Postavljanje

void setup () {Serial.begin (115200); setupDisplay (); // Pokretanje i konfiguracija prikaza prikaza setupGSM (); // Inicializacija i konfiguracija modema GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

Korak 15: SetupDisplay

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpa o display a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como branco com fundo azul display.setTextWrap (true, true); // Aktiviraj listu prikaza.setTextSize (1); display.setCursor (0, 0, 2); // Pozicção x, y e fonte do texto display.println ("Setup Display Complete"); }

Korak 16: Postavite GSM

void setupGSM () {display.println ("Postavljanje GSM -a …"); // Pokreće serijski ili serijski modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); kašnjenje (3000); // Podaci o modemu Serial.println (modemGSM.getModemInfo ()); // Pokretanje modema if (! ModemGSM.restart ()) {display.println ("Ponovno pokretanje GSM modema nije uspjelo"); kašnjenje (10000); ESP.restart (); return; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Povezivanje na mrežu nije uspjelo"); kašnjenje (10000); ESP.restart (); return; } // Povezivanje sa ponovnim gprs -om (APN, upotreba, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS veza nije uspjela"); kašnjenje (10000); ESP.restart (); return; } display.println ("Postavljanje GSM uspjeha"); }

Korak 17: PovežiteMQTTServer

void connectMQTTServer () {display.println ("Povezivanje na MQTT server …"); // Vidi vezu sa ao uređajem za definisanje if (client.connect (DEVICE_ID, TOKEN, ""))) {// Pogledaj vezu sa sucedida display.println ("Povezano"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); kašnjenje (10000); ESP.restart (); }}

Korak 18: Petlja

void loop () {// Faz dozvoljava umidadu i temperaturu readDHT (); // Potražite MQTT poslužitelja ako (! Client.connected ()) {// Mandamos konektor connectMQTTServer (); } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis (); // Pogledajte lozinku ili uključite ako (sada - lastTime> INTERVAL) {// Objavite na poslužitelju mqtt publishedMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o temp em que foi feito o último envio lastTime = now; }}

Korak 19: PročitajteDHT

void readDHT () {float t, h; // Faz a leitura to umidade e temperature e apenas atualiza as variáveis se foi bem sucedido if (dht.read2 (DHT_PIN, & t, & h, NULL) == SimpleDHTErrSuccess) {temperature = t; vlažnost = h; }}

Korak 20: ObjaviteMQTT

void publishedMQTT () {// Cria o json que iremos enviar para server MQTT String msg = createJsonString (); Serial.print ("Objavi poruku:"); Serial.println (poruka); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Status:" + String (status)); // Status 1 je uspješan ili 0 pogrešan}

Korak 21: KreirajteJsonString

CreateJsonString
CreateJsonString

String createJsonString () {String data = "{"; if (! isnan (vlažnost) &&! isnan (temperatura)) {data+= "\" vlažnost / ":"; podaci+= niz (vlažnost, 2); podaci+= ","; podaci+= "\" temperatura / ":"; podaci+= niz (temperatura, 2); } podaci+= "}"; vratiti podatke; }

Korak 22: ShowDataOnDisplay

void showDataOnDisplay () {// Ponovno postavljanje kursora na većinu umidade i temperaturu na zaslonu display.setCursor (0, 0, 2); display.println ("Vlažnost:" + niz (vlažnost, 2)); display.println ("Temperatura:" + niz (temperatura, 2)); }

Korak 23: Datoteke

Preuzmite datoteke

JA NE

PDF

Preporučuje se: