Sadržaj:

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

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

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

Danas ćemo razgovarati o GPRS modemu, bolje rečeno, ESP32 i njegovoj uporabi s mobilnom telefonskom mrežom. Ovo je nešto što jako dobro funkcionira. Koristeći MQTT protokol, tada ćemo podatke slati na nadzornu ploču Ubidots. U ovom sklopu upotrijebite zaslon za povratne informacije o krugu, uz SIM800L i čip za mobitel. S 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

Skupština
Skupština

Korak 3: Montaža - Tablica

Montaža - Tablica
Montaža - Tablica

Korak 4: Ubidots

Ubidots
Ubidots

Korak 5: Knjižnica SimpleDHT

Knjižnica SimpleDHT
Knjižnica SimpleDHT

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

Instalirajte SimpleDHT

Korak 6: Knjižnica PubSubClient

Knjižnica PubSubClient
Knjižnica PubSubClient

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

Instalirajte PubSubClient

Korak 7: Knjižnica TinyGSM

Knjižnica TinyGSM
Knjižnica TinyGSM

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

Instalirajte TinyGSM

Korak 8: TFT_eSPI knjižnica

Knjižnica TFT_eSPI
Knjižnica TFT_eSPI

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

Instalirajte TFT_eSPI

Korak 9: TFT_eSPI knjižnica

Knjižnica TFT_eSPI
Knjižnica TFT_eSPI

Promijenite prikazivače u mapi lib.

Prikvač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.

10. korak: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

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

Kliknite gumb "+" u gornjem desnom kutu

Pritisnite Prazno

Unesite naziv uređaja. Zabilježite "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 zaslonu koji se pojavi kliknite "Dodaj varijablu". Pojavit će se skočni prozor. Kliknite na "Raw".

Kliknite okvir za tekst i unesite naziv svojstva.

Mora biti točno ono što ćemo poslati u json.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 popisu widgeta odaberite "Dvoosna"

11. korak: Promjena podataka u.ino -u

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 Korisničko ime que pegamos ne Ubidots #define token "BBFF-abcdefghijklmnopqrstuvwxyz0123" // Tópico onde vamos postar OS dados de temperatura e umidade (esp32_gprs é o imenu do dispozitiva bez Ubidota) #define TOPIC "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678TT Mreža" MD Server 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: Prikvačivanje

Prikvačivanje
Prikvačivanje

// Pinagem em User_Setup.h na popisu 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. Iskoristite semper 1 HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Klijent MQTT, passamos url do poslužitelj, 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; vlažnost plovka; // Variável onde iremos armazenar o valor da umidade temperatura plovka; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que realizará a leitura da umidade e temperature

Korak 14: Postavljanje

void setup () {Serial.begin (115200); setupDisplay (); // Pokretanje i konfiguracija prikaza zaslona setupGSM (); // Pokretanje 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 com a cor azul 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 ("Setup Display Complete"); }

Korak 16: Postavljanje GSM -a

void setupGSM () {display.println ("Postavljanje GSM -a …"); // Inicializamos a serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); kašnjenje (3000); // Više informacija o modemu Serial.println (modemGSM.getModemInfo ()); // Pokretanje modema if (! ModemGSM.restart ()) {display.println ("Ponovno pokretanje GSM modema nije uspjelo"); kašnjenje (10000); ESP.restart (); povratak; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Neuspješno povezivanje s mrežom"); kašnjenje (10000); ESP.restart (); povratak; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS veza nije uspjela"); kašnjenje (10000); ESP.restart (); povratak; } display.println ("Postavljanje GSM uspjeha"); }

Korak 17: PovežiteMQTTServer

void connectMQTTServer () {display.println ("Spajanje na MQTT poslužitelj …"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, ""))) {// Se conexão foi bem sucedida display.println ("Connected"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); kašnjenje (10000); ESP.restart (); }}

Korak 18: Petlja

void loop () {// Faz a leitura da umidade e temperature readDHT (); // Potražite MQTT poslužitelja ako (! Client.connected ()) {// Mandamos konektor povezivanjaMQTTServer (); } // 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 publishedMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}

Korak 19: PročitajteDHT

void readDHT () {float t, h; // Faz a leitura da umidade e temperature e apenas atualiza as Vará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 or 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: CreateJsonString

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 pokazivača na većinu umidade i temperaturu prikaza na zaslonu.setCursor (0, 0, 2); display.println ("Vlažnost:" + niz (vlažnost, 2)); display.println ("Temperatura:" + niz (temperatura, 2)); }

Korak 23: Datoteke

Preuzmite datoteke

INO

PDF

Preporučeni: