Sisällysluettelo:

IOT matkapuhelinverkon kanssa ESP32: 23 vaihetta
IOT matkapuhelinverkon kanssa ESP32: 23 vaihetta

Video: IOT matkapuhelinverkon kanssa ESP32: 23 vaihetta

Video: IOT matkapuhelinverkon kanssa ESP32: 23 vaihetta
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Heinäkuu
Anonim
Image
Image
Esittely
Esittely

Tänään keskustelemme GPRS -modeemista tai pikemminkin ESP32: sta ja sen käytöstä matkapuhelinverkon kanssa. Tämä toimii erittäin hyvin. Käytämme MQTT -protokollaa ja lähetämme tiedot sitten Ubidots -hallintapaneeliin. Käytä tässä kokoonpanossa näyttöä piirin palauttamiseksi SIM800L: n ja matkapuhelinsirun lisäksi. Tämän projektin vuoksi lähetämme lämpötila- ja kosteustietoja GPRS: n ja MQTT: n kautta ja visualisoimme tiedot viivakaaviossa.

Vaihe 1: Esittely

Vaihe 2: Kokoonpano

Kokoonpano
Kokoonpano

Vaihe 3: Kokoonpano - Taulukko

Kokoonpano - Pöytä
Kokoonpano - Pöytä

Vaihe 4: Ubidots

Ubidot
Ubidot

Vaihe 5: SimpleDHT -kirjasto

SimpleDHT -kirjasto
SimpleDHT -kirjasto

Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…

Asenna SimpleDHT

Vaihe 6: PubSubClient -kirjasto

PubSubClient -kirjasto
PubSubClient -kirjasto

Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…

Asenna PubSubClient

Vaihe 7: TinyGSM -kirjasto

TinyGSM -kirjasto
TinyGSM -kirjasto

Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…

Asenna TinyGSM

Vaihe 8: TFT_eSPI -kirjasto

TFT_eSPI -kirjasto
TFT_eSPI -kirjasto

Siirry Arduino IDE: ssä Sketch-> Include Library-> Manage Libraries…

Asenna TFT_eSPI

Vaihe 9: TFT_eSPI -kirjasto

TFT_eSPI -kirjasto
TFT_eSPI -kirjasto

Vaihda lib -kansion näytön nastat.

Kiinnitys on User_Setup.h -tiedostossa

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

Muuta nämä oletusarvot seuraaviksi kuvan arvoiksi.

Vaihe 10: Ubidots

Ubidot
Ubidot
Ubidot
Ubidot
Ubidot
Ubidot

Kirjaudu Ubidotsiin tililläsi ja napsauta Laitteet

Napsauta "+" -painiketta oikeassa yläkulmassa

Valitse Tyhjä

Anna laitteen nimi. Huomaa "laitteen etiketti", koska sitä käytetään "aiheessa", jota käytämme.ino -tiedostossa

Laitteistoluettelossa näkyy juuri luomasi laite. Klikkaa sitä.

Napsauta avautuvassa näytössä Lisää muuttuja. Näkyviin tulee ponnahdusikkuna. Napsauta "Raw".

Napsauta tekstiruutua ja kirjoita omaisuuden nimi.

Sen on oltava juuri sitä, mitä lähetämme.ino -tiedoston json -tiedostossa. Toista tämä toisen ominaisuuden kohdalla.

Palaa hallintapaneeliin napsauttamalla Ubidots -logoa.

Napsauta hallintapaneelissa "Lisää uusi widget"

Valitse widgetiluettelosta "Kaksoisakseli"

Vaihe 11: Tietojen muuttaminen.ino -tiedostossa

Tietojen muuttaminen.ino -tiedostossa
Tietojen muuttaminen.ino -tiedostossa
Tietojen muuttaminen.ino -tiedostossa
Tietojen muuttaminen.ino -tiedostossa

Vaihe 12: GPRS_ESP32_DHT.ino - Ilmoitukset ja muuttujat

GPRS_ESP32_DHT.ino - Ilmoitukset ja muuttujat
GPRS_ESP32_DHT.ino - Ilmoitukset ja muuttujat

#define TINY_GSM_MODEM_SIM800 // Tipo de modeem que estamos usando #include #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuvwxyz t02 osadio Δd on on on on on on on on on on on on on on on on on on on on '' (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 MQER Server # mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino on está o DHT22 #define DHT_PIN 27

Vaihe 13: Kiinnitys

Kiinnitetään
Kiinnitetään

// Pinagem em User_Setup.h ja 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 modeem. Hyödynnä semper 1 HardwareSerial SerialGSM (1); TinyGsm -modeemiGSM (SerialGSM); TinyGsmClient gsmClient (modeemiGSM); // Client MQTT, passamos a url do server, a porta // e tai asiakas GSM PubSubClient client (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; kelluva kosteus; // 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

Vaihe 14: Asennus

void setup () {Serial.begin (115200); setupDisplay (); // Käyttöönotto ja määritykset tai näytön asetuksetGSM (); // Puhelimen kokoonpanon tai modeemin GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segmentti ja limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

Vaihe 15: Asetusnäyttö

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpa tai näyttö com tai vastaava näyttö.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca tai 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"); }

Vaihe 16: SetupGSM

void setupGSM () {display.println ("Asenna GSM …"); // Sarjaliikenteen sarjamuotoinen esitys tai modeemi SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); viive (3000); // Useimmat tiedot tai modeemi Serial.println (modemGSM.getModemInfo ()); // Puhelimen tai modeemin käyttö, jos (! ModemGSM.restart ()) {display.println ("GSM -modeemin uudelleenkäynnistys epäonnistui"); viive (10000); ESP.restart (); palata; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Yhteyden muodostaminen verkkoon epäonnistui"); viive (10000); ESP.restart (); palata; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS -yhteys epäonnistui"); viive (10000); ESP.restart (); palata; } display.println ("Setup GSM Success"); }

Vaihe 17: ConnectMQTTServer

void connectMQTTServer () {display.println ("Yhdistetään MQTT -palvelimeen…"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, ""))) {// Se a conexão foi bem sucedida display.println ("Connected"); } else {// Katso ocorreu algum erro display.print ("error ="); display.println (client.state ()); viive (10000); ESP.restart (); }}

Vaihe 18: Silmukka

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

Vaihe 19: Lue

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) {lämpötila = t; kosteus = h; }}

Vaihe 20: PublishMQTT

void publicMQTT () {// Cria o json que iremos enviar palvelimelle MQTT String msg = createJsonString (); Serial.print ("Julkaise viesti:"); Sarja.println (msg); // Publicamos no tópico int status = client.publish (AIHE, msg.c_str ()); Serial.println ("Tila:" + merkkijono (tila)); // Tila 1 onnistunut tai 0 sekuntia}

Vaihe 21: LuoJsonString

LuoJsonString
LuoJsonString

Jono createJsonString () {String data = "{"; if (! isnan (kosteus) &&! isnan (lämpötila)) {data+= "\" kosteus / ":"; data+= merkkijono (kosteus, 2); data+= ","; data+= "\" lämpötila / ":"; data+= merkkijono (lämpötila, 2); } data+= "}"; palauttaa tiedot; }

Vaihe 22: ShowDataOnDisplay

void showDataOnDisplay () {// Nollaa kohdistin ja säädä lämpötila ja säädä näytön lämpötila.setCursor (0, 0, 2); display.println ("Kosteus:" + Jono (kosteus, 2)); display.println ("Lämpötila:" + Jono (lämpötila, 2)); }

Vaihe 23: Tiedostot

Lataa tiedostot

INO

PDF

Suositeltava: