Innholdsfortegnelse:

IOT Med mobilnettverk med ESP32: 23 trinn
IOT Med mobilnettverk med ESP32: 23 trinn

Video: IOT Med mobilnettverk med ESP32: 23 trinn

Video: IOT Med mobilnettverk med ESP32: 23 trinn
Video: 12V Bluetooth Relay to control AC or DC load using mobile Phone 2024, November
Anonim
Image
Image
Demonstrasjon
Demonstrasjon

I dag vil vi diskutere om GPRS -modemet, eller rettere sagt, ESP32 og bruken av det med mobiltelefonnettet. Dette er noe som fungerer veldig bra. Ved å bruke MQTT -protokollen sender vi deretter data til Ubidots dashbord. Bruk i denne enheten en skjerm for tilbakemelding på kretsen, i tillegg til SIM800L og en mobiltelefonbrikke. Med dette prosjektet vil vi derfor sende temperatur- og fuktighetsdata gjennom GPRS og MQTT, og visualisere dataene i et linjediagram.

Trinn 1: Demonstrasjon

Trinn 2: Montering

montering
montering

Trinn 3: Montering - Tabell

Montering - Bord
Montering - Bord

Trinn 4: Ubidots

Ubidots
Ubidots

Trinn 5: SimpleDHT -bibliotek

SimpleDHT -bibliotek
SimpleDHT -bibliotek

I Arduino IDE, gå til Skisse-> Inkluder bibliotek-> Administrer biblioteker …

Installer SimpleDHT

Trinn 6: PubSubClient Library

PubSubClient Library
PubSubClient Library

I Arduino IDE, gå til Skisse-> Inkluder bibliotek-> Administrer biblioteker …

Installer PubSubClient

Trinn 7: TinyGSM -bibliotek

TinyGSM bibliotek
TinyGSM bibliotek

I Arduino IDE, gå til Skisse-> Inkluder bibliotek-> Administrer biblioteker …

Installer TinyGSM

Trinn 8: TFT_eSPI -bibliotek

TFT_eSPI bibliotek
TFT_eSPI bibliotek

I Arduino IDE, gå til Skisse-> Inkluder bibliotek-> Administrer biblioteker …

Installer TFT_eSPI

Trinn 9: TFT_eSPI -bibliotek

TFT_eSPI bibliotek
TFT_eSPI bibliotek

Endre visningsnålene i lib -mappen.

Festingen ligger i filen User_Setup.h i

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

Endre disse standardene til følgende verdier i bildet.

Trinn 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Logg deg på Ubidots med kontoen din og klikk på Enheter

Klikk på "+" - knappen i øvre høyre hjørne

Klikk på Tom

Skriv inn enhetsnavnet. Legg merke til "enhetsetiketten", da dette vil bli brukt i "emnet" som vi skal bruke i.ino

På listen over enheter vises enheten du nettopp har opprettet. Klikk på den.

Klikk på "Legg til variabel" på skjermen som vises. En popup vil dukke opp. Klikk på "Rå".

Klikk på tekstboksen, og skriv inn navnet på eiendommen.

Det må være akkurat det vi sender i jsonen til.ino. Gjenta dette for den andre eiendommen.

Gå tilbake til dashbordet ved å klikke på Ubidots -logoen.

Klikk på "Legg til ny widget" i oversikten.

Velg "Dobbel akse" i listen over widgets

Trinn 11: Endre dataene i.ino

Endre dataene i.ino
Endre dataene i.ino
Endre dataene i.ino
Endre dataene i.ino

Trinn 12: GPRS_ESP32_DHT.ino - Deklarasjoner og variabler

GPRS_ESP32_DHT.ino - Deklarasjoner og variabler
GPRS_ESP32_DHT.ino - Deklarasjoner og variabler

#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-abcdefghijklmnopqrstuvwxyz0123" // Tosco (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 MQTT Server # mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

Trinn 13: Festing

Festing
Festing

// Pinagem em User_Setup.h na 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. Bruk semper 1 HardwareSerial SerialGSM (1); TinyGsm -modemGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, passamos a url do server, a porta // e o cliente GSM PubSubClient client (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; flyte fuktighet; // Variável onde iremos armazenar o valor da umidade flytemperatur; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objekto que realizará a leitura da umidade e temperatura

Trinn 14: Oppsett

ugyldig oppsett () {Serial.begin (115200); setupDisplay (); // Innledende konfigurasjon av skjermoppsettGSM (); // Innledende konfigurasjon av modem GSM -tilkoblingMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

Trinn 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"); }

Trinn 16: SetupGSM

void setupGSM () {display.println ("Setup GSM …"); // Inicializamos a serial onde está o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); forsinkelse (3000); // Mostra informação sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("Restarting GSM Modem failed"); forsinkelse (10000); ESP.start (); komme tilbake; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Kunne ikke koble til nettverk"); forsinkelse (10000); ESP.start (); komme tilbake; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS -tilkobling mislyktes"); forsinkelse (10000); ESP.start (); komme tilbake; } display.println ("Oppsett av GSM -suksess"); }

Trinn 17: ConnectMQTTServer

void connectMQTTServer () {display.println ("Koble til MQTT -server …"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, "")) {// Se a conexão foi bem sucedida display.println ("Connected"); } annet {// Se ocorreu algum erro display.print ("feil ="); display.println (client.state ()); forsinkelse (10000); ESP.start (); }}

Trinn 18: Sløyfe

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Se desconectou 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 publishMQTT (); // Mostramos os dados no display showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}

Trinn 19: ReadDHT

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) {temperature = t; fuktighet = h; }}

Trinn 20: PubliserMQTT

void publishMQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString (); Serial.print ("Publiser melding:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Status:" + streng (status)); // Status 1 er vellykket eller kan ikke vises}

Trinn 21: CreateJsonString

CreateJsonString
CreateJsonString

String createJsonString () {String data = "{"; if (! isnan (fuktighet) &&! isnan (temperatur)) {data+= "\" fuktighet / ":"; data+= streng (fuktighet, 2); data+= ","; data+= "\" temperatur / ":"; data+= streng (temperatur, 2); } data+= "}"; returnere data; }

Trinn 22: ShowDataOnDisplay

void showDataOnDisplay () {// Reseta a posição do cursor and mostra umidade and temperatura lidas display.setCursor (0, 0, 2); display.println ("Fuktighet:" + streng (fuktighet, 2)); display.println ("Temperatur:" + streng (temperatur, 2)); }

Trinn 23: Filer

Last ned filene

INO

PDF

Anbefalt: