Sadržaj:
- Korak 1: Demonstracija
- Korak 2: Montaža
- Korak 3: Montaža - Tabela
- Korak 4: Ubidots
- Korak 5: Knjižnica SimpleDHT
- Korak 6: PubSubClient biblioteka
- Korak 7: TinyGSM biblioteka
- Korak 8: TFT_eSPI biblioteka
- Korak 9: TFT_eSPI biblioteka
- Korak 10: Ubidots
- Korak 11: Promjena podataka u.ino
- Korak 12: GPRS_ESP32_DHT.ino - Deklaracije i varijable
- Korak 13: Prikačivanje
- Korak 14: Postavljanje
- Korak 15: SetupDisplay
- Korak 16: Postavite GSM
- Korak 17: PovežiteMQTTServer
- Korak 18: Petlja
- Korak 19: PročitajteDHT
- Korak 20: ObjaviteMQTT
- Korak 21: KreirajteJsonString
- Korak 22: ShowDataOnDisplay
- Korak 23: Datoteke
Video: IOT sa mobilnom mrežom sa ESP32: 23 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
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
Korak 3: Montaža - Tabela
Korak 4: Ubidots
Korak 5: Knjižnica SimpleDHT
U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …
Instalirajte SimpleDHT
Korak 6: PubSubClient biblioteka
U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …
Instalirajte PubSubClient
Korak 7: TinyGSM biblioteka
U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …
Instalirajte TinyGSM
Korak 8: TFT_eSPI biblioteka
U Arduino IDE idite na Sketch-> Include Library-> Manage Libraries …
Instalirajte TFT_eSPI
Korak 9: 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
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
Korak 12: 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
// 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
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
Preporučuje se:
Izgradite lonac za samolijevanje sa WiFi mrežom - automatski zalijeva biljke i šalje upozorenja kada je voda niska: 19 koraka
Napravite lonac za samolijevanje sa Wi -Fi mrežom - automatski zalijeva biljke i šalje upozorenja kada je voda niska: ovaj vodič će vam pokazati kako izgraditi prilagođenu sadilicu za samolijevanje sa WiFi vezom koristeći staru sadilicu za vrt, kantu za smeće, malo ljepila i samopouzdanje Komplet za sastavljanje lonaca za zalijevanje iz Adosia
Napajanje mobilnog/mobilnog telefona vanjskom baterijom ili mrežom: 3 koraka
Napajanje mobilnog/mobilnog telefona vanjskom baterijom ili mrežom: Uvod. Ova ideja funkcionira samo s telefonima ili tabletima ako se baterija može ukloniti. Naravno, važno je promatrati polaritet. Budite oprezni da nepažnjom ne oštetite svoj uređaj. Ako niste sigurni u svoje sposobnosti da to učinite
Kako popraviti prijenosno računalo koje se ne može povezati s WiFi mrežom !!: 8 koraka
Kako popraviti prijenosno računalo koje se ne može spojiti na Wifi !!: Ova instrukcija će vam pokazati kako popraviti prijenosno računalo koje se neće povezati s wifiMolimo vas da se pretplatite na moj kanalHvala
Povežite Pi Headless Pi sa bibliotečkom WiFi mrežom: 7 koraka
Povežite svoj Pi bez glave s bibliotečkom WiFi mrežom: Koliko ste puta htjeli raditi na svojim projektima Raspberry Pi bez glave u lokalnoj biblioteci, samo da biste se zaglavili jer je za otvorenu WiFi mrežu potrebno da koristite preglednik? Ne brinite više, ovaj Instructable je tu da vam pomogne! Mi ćemo
PoochPak: pametni pas prsluk s mobilnom mrežom: 4 koraka
PoochPak: Ćelijski povezani prsluk za pse: U automatizaciji se često fokusiramo na inženjering ljudi u toku kako bismo iskoristili kognitivne snage računara i ljudskog uma. No, psi imaju niz vještina što ih čini vrlo pogodnim za određene zadatke koje ljudi ne mogu izvesti