Satura rādītājs:

IOT ar mobilo tīklu ar ESP32: 23 soļi
IOT ar mobilo tīklu ar ESP32: 23 soļi

Video: IOT ar mobilo tīklu ar ESP32: 23 soļi

Video: IOT ar mobilo tīklu ar ESP32: 23 soļi
Video: ESP32 Tutorial 23 - Reading Voltage of potentiometer using ESP32 | SunFounder's ESP32 IoT kit 2024, Jūlijs
Anonim
Image
Image
Demonstrācija
Demonstrācija

Šodien mēs apspriedīsim GPRS modemu, pareizāk sakot, ESP32 un tā izmantošanu mobilajā telefonu tīklā. Tas ir kaut kas, kas darbojas ļoti labi. Izmantojot MQTT protokolu, mēs nosūtīsim datus uz Ubidots informācijas paneli. Šajā komplektā papildus displejam SIM800L un mobilā tālruņa mikroshēmai izmantojiet displeju, lai saņemtu atsauksmes par ķēdi. Tāpēc ar šo projektu mēs nosūtīsim temperatūras un mitruma datus, izmantojot GPRS un MQTT, un vizualizēsim datus līniju diagrammā.

1. solis: demonstrācija

2. solis: montāža

Montāža
Montāža

3. solis: salikšana - tabula

Montāža - galds
Montāža - galds

4. darbība: Ubidots

Ubidots
Ubidots

5. darbība: SimpleDHT bibliotēka

SimpleDHT bibliotēka
SimpleDHT bibliotēka

Arduino IDE dodieties uz Skice-> Iekļaut bibliotēku-> Pārvaldīt bibliotēkas …

Instalējiet SimpleDHT

6. darbība: PubSubClient bibliotēka

PubSubClient bibliotēka
PubSubClient bibliotēka

Arduino IDE dodieties uz Skice-> Iekļaut bibliotēku-> Pārvaldīt bibliotēkas …

Instalējiet PubSubClient

7. darbība: TinyGSM bibliotēka

TinyGSM bibliotēka
TinyGSM bibliotēka

Arduino IDE dodieties uz Skice-> Iekļaut bibliotēku-> Pārvaldīt bibliotēkas …

Instalējiet TinyGSM

8. darbība. TFT_eSPI bibliotēka

TFT_eSPI bibliotēka
TFT_eSPI bibliotēka

Arduino IDE dodieties uz Skice-> Iekļaut bibliotēku-> Pārvaldīt bibliotēkas …

Instalējiet TFT_eSPI

9. darbība: TFT_eSPI bibliotēka

TFT_eSPI bibliotēka
TFT_eSPI bibliotēka

Mainiet displeja tapas lib mapē.

Piespraušana atrodas failā User_Setup.h

C: / Lietotāji / Dokumenti / Arduino / bibliotēkas / TFT_eSPI

Mainiet šīs noklusējuma vērtības uz tālāk norādītajām attēlā redzamajām vērtībām.

10. darbība: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Piesakieties Ubidots ar savu kontu un noklikšķiniet uz Ierīces

Noklikšķiniet uz pogas "+" augšējā labajā stūrī

Noklikšķiniet uz Tukšs

Ievadiet ierīces nosaukumu. Ņemiet vērā “ierīces etiķeti”, jo tā tiks izmantota tēmā, kuru izmantosim.ino

Ierīču sarakstā parādīsies tikko izveidotā ierīce. Noklikšķiniet uz tā.

Parādītajā ekrānā noklikšķiniet uz "Pievienot mainīgo". Parādīsies uznirstošais logs. Noklikšķiniet uz "Neapstrādāts".

Noklikšķiniet uz tekstlodziņa un ievadiet rekvizīta nosaukumu.

Tam jābūt tieši tam, ko mēs nosūtīsim.ino json. Atkārtojiet to citam īpašumam.

Atgriezieties informācijas panelī, noklikšķinot uz Ubidots logotipa.

Informācijas panelī noklikšķiniet uz "Pievienot jaunu logrīku"

Logrīku sarakstā izvēlieties "Dubultā ass"

11. darbība. Datu maiņa.ino

Datu maiņa.ino
Datu maiņa.ino
Datu maiņa.ino
Datu maiņa.ino

12. solis: GPRS_ESP32_DHT.ino - Deklarācijas un mainīgie

GPRS_ESP32_DHT.ino - Deklarācijas un mainīgie
GPRS_ESP32_DHT.ino - Deklarācijas un mainīgie

#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-abcdefghijklmnopqrstuvwxyz pärast video tēliem (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 MQERQ #Server mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27

13. darbība. Piespraušana

Piespraušana
Piespraušana

// Pinagem em User_Setup.h ar 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. Izmantojiet semper 1 HardwareSerial SerialGSM (1); TinyGsm modemsGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, passamos url do server, porta // e vai klienta GSM PubSubClient klients (MQTT_SERVER, MQTT_PORT, gsmClient); // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0; pludiņa mitrums; // 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

14. darbība: iestatīšana

void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Inicializa e configura o modem GSM connectMQTTServer (); // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000); display.fillScreen (TFT_BLUE); display.setCursor (0, 0); }

15. darbība: iestatīšana

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpa vai displejs ar šādu displeju.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"); }

16. darbība: iestatiet GSM

void setupGSM () {display.println ("Iestatīt GSM …"); // Inicializamos a serial onde modá SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); kavēšanās (3000); // Mostra informationção sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa o modem if (! ModemGSM.restart ()) {display.println ("GSM modema restartēšana neizdevās"); kavēšanās (10000); ESP.restart (); atgriešanās; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("Neizdevās izveidot savienojumu ar tīklu"); kavēšanās (10000); ESP.restart (); atgriešanās; } // Conecta à rede gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("GPRS savienojums neizdevās"); kavēšanās (10000); ESP.restart (); atgriešanās; } display.println ("Iestatīt GSM panākumus"); }

17. darbība: ConnectMQTTServer

void connectMQTTServer () {display.println ("Savienojuma izveide ar MQTT serveri …"); // Se conecta ao device que definimos if (client.connect (DEVICE_ID, TOKEN, ""))) {// Se a conexão foi bem sucedida display.println ("Connected"); } cits {// Skatiet ocorreu algum erro display.print ("error ="); display.println (client.state ()); kavēšanās (10000); ESP.restart (); }}

18. darbība: cilpa

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

19. solis: lasiet

void readDHT () {pludiņš 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) {temperatūra = t; mitrums = h; }}

20. darbība. Publicējiet MQTT

void publicMQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString (); Serial.print ("Publicēt ziņojumu:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Statuss:" + virkne (statuss)); // Status 1 secessou ou 0 se deu erro}

21. darbība: CreateJsonString izveide

IzveidotJsonString
IzveidotJsonString

String createJsonString () {String data = "{"; if (! isnan (mitrums) &&! isnan (temperatūra)) {data+= "\" mitrums / ":"; dati+= Stīga (mitrums, 2); dati+= ","; dati+= "\" temperatūra / ":"; dati+= virkne (temperatūra, 2); } dati+= "}"; atgriezt datus; }

22. darbība: ShowDataOnDisplay

void showDataOnDisplay () {// Atjaunojiet kursoru un atgrieziet to temperatūrā un displejā.setCursor (0, 0, 2); display.println ("Mitrums:" + virkne (mitrums, 2)); display.println ("Temperatūra:" + virkne (temperatūra, 2)); }

23. darbība: faili

Lejupielādējiet failus

ES NĒ

PDF

Ieteicams: