Tabla de contenido:

IOT con red celular con ESP32: 23 pasos
IOT con red celular con ESP32: 23 pasos

Video: IOT con red celular con ESP32: 23 pasos

Video: IOT con red celular con ESP32: 23 pasos
Video: IoT Celular para conectar tu proyecto a Internet sin tarjeta SIM ni WiFi | Blues Wireless 🛰️ 2024, Noviembre
Anonim
Image
Image
Demostración
Demostración

Hoy hablaremos sobre el módem GPRS, o mejor dicho, el ESP32 y su uso con la red de telefonía celular. Esto es algo que funciona muy bien. Usando el protocolo MQTT, enviaremos datos al panel de Ubidots. Utilice en este conjunto una pantalla para retroalimentación del circuito, además del SIM800L y un chip de teléfono celular. Con este proyecto, por lo tanto, enviaremos datos de temperatura y humedad a través de GPRS y MQTT, y visualizaremos los datos en un gráfico de líneas.

Paso 1: demostración

Paso 2: Montaje

Montaje
Montaje

Paso 3: Montaje - Mesa

Montaje - Mesa
Montaje - Mesa

Paso 4: Ubidots

Ubidots
Ubidots

Paso 5: Biblioteca SimpleDHT

Biblioteca SimpleDHT
Biblioteca SimpleDHT

En el IDE de Arduino, vaya a Sketch-> Incluir biblioteca-> Administrar bibliotecas …

Instalar SimpleDHT

Paso 6: Biblioteca PubSubClient

Biblioteca PubSubClient
Biblioteca PubSubClient

En el IDE de Arduino, vaya a Sketch-> Incluir biblioteca-> Administrar bibliotecas …

Instalar PubSubClient

Paso 7: Biblioteca TinyGSM

Biblioteca TinyGSM
Biblioteca TinyGSM

En el IDE de Arduino, vaya a Sketch-> Incluir biblioteca-> Administrar bibliotecas …

Instalar TinyGSM

Paso 8: Biblioteca TFT_eSPI

Biblioteca TFT_eSPI
Biblioteca TFT_eSPI

En el IDE de Arduino, vaya a Sketch-> Incluir biblioteca-> Administrar bibliotecas …

Instalar TFT_eSPI

Paso 9: Biblioteca TFT_eSPI

Biblioteca TFT_eSPI
Biblioteca TFT_eSPI

Cambie los pines de la pantalla en la carpeta lib.

El anclaje está en el archivo User_Setup.h en

C: / Usuarios / \ Documentos / Arduino / bibliotecas / TFT_eSPI

Cambie estos valores predeterminados a los siguientes valores en la imagen.

Paso 10: Ubidots

Ubidots
Ubidots
Ubidots
Ubidots
Ubidots
Ubidots

Inicie sesión en Ubidots con su cuenta y haga clic en Dispositivos

Haga clic en el botón "+" en la esquina superior derecha

Haga clic en En blanco

Ingrese el nombre del dispositivo. Tenga en cuenta la "etiqueta del dispositivo", ya que se utilizará en el "tema" que utilizaremos en.ino

En la lista de dispositivos, aparecerá el dispositivo que acaba de crear. Haz click en eso.

En la pantalla que aparece, haga clic en "Agregar variable". Aparecerá una ventana emergente. Haga clic en "Raw".

Haga clic en el cuadro de texto e ingrese el nombre de la propiedad.

Tiene que ser exactamente lo que enviaremos en el json del.ino. Repita esto para la otra propiedad.

Regrese al tablero haciendo clic en el logotipo de Ubidots.

En el panel, haga clic en "Agregar nuevo widget".

En la lista de widgets, elija "Eje doble"

Paso 11: Cambiar los datos en.ino

Cambiar los datos en.ino
Cambiar los datos en.ino
Cambiar los datos en.ino
Cambiar los datos en.ino

Paso 12: GPRS_ESP32_DHT.ino - Declaraciones y variables

GPRS_ESP32_DHT.ino - Declaraciones y variables
GPRS_ESP32_DHT.ino - Declaraciones y variables

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

Paso 13: Fijación

Fijación
Fijación

// 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 a usar para comunicarmos com o modem. Utilice semper 1 HardwareSerial SerialGSM (1); Módem TinyGsmGSM (SerialGSM); TinyGsmClient gsmClient (modemGSM); // Cliente MQTT, pasamos una url al servidor, un 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; flotar la humedad; // Variável onde iremos armazenar o valor da umidade float temperature; // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht; // Objeto que ejecutará a leitura da umidade e temperatura

Paso 14: configuración

configuración vacía () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o visualiza 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); }

Paso 15: SetupDisplay

void setupDisplay () {display.init (); display.setRotation (1); display.fillScreen (TFT_BLUE); // Limpiar la pantalla 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 fuente del texto display.println ("Setup Display Complete"); }

Paso 16: Configuración de GSM

void setupGSM () {display.println ("Configurar GSM…"); // Inicializamos una onda serial o modem SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); retraso (3000); // Mostra informação sobre o modem Serial.println (modemGSM.getModemInfo ()); // Inicializa el módem if (! ModemGSM.restart ()) {display.println ("Falló el reinicio del módem GSM"); retraso (10000); ESP.restart (); regreso; } // Espera pela rede if (! ModemGSM.waitForNetwork ()) {display.println ("No se pudo conectar a la red"); retraso (10000); ESP.restart (); regreso; } // Conecta a red gprs (APN, usuário, senha) if (! ModemGSM.gprsConnect ("", "", "")) {display.println ("Falló la conexión GPRS"); retraso (10000); ESP.restart (); regreso; } display.println ("Configuración exitosa de GSM"); }

Paso 17: ConnectMQTTServer

void connectMQTTServer () {display.println ("Conectando al servidor MQTT…"); // Se conecta ao dispositivo que definimos if (client.connect (DEVICE_ID, TOKEN, "")) {// Se a conexão foi bem sucedida display.println ("Conectado"); } else {// Se ocorreu algum erro display.print ("error ="); display.println (client.state ()); retraso (10000); ESP.restart (); }}

Paso 18: bucle

void loop () {// Faz a leitura da umidade e temperatura readDHT (); // Se desconecta el servidor 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 (ahora - lastTime> INTERVAL) {// Publicamos para o server mqtt publishMQTT (); // Mostramos los datos sin mostrar showDataOnDisplay (); // Atualizamos o tempo em que foi feito o último envio lastTime = now; }}

Paso 19: Leer DHT

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; humedad = h; }}

Paso 20: PublishMQTT

void publishMQTT () {// Cria o json que iremos enviar para el servidor MQTT String msg = createJsonString (); Serial.print ("Publicar mensaje:"); Serial.println (msg); // Publicamos no tópico int status = client.publish (TOPIC, msg.c_str ()); Serial.println ("Estado:" + Cadena (estado)); // Estado 1 se sucesso ou 0 se deu erro}

Paso 21: CreateJsonString

CreateJsonString
CreateJsonString

String createJsonString () {String data = "{"; if (! isnan (humedad) &&! isnan (temperatura)) {data + = "\" humedad / ":"; datos + = Cadena (humedad, 2); datos + = ","; datos + = "\" temperatura / ":"; datos + = Cadena (temperatura, 2); } datos + = "}"; devolver datos; }

Paso 22: ShowDataOnDisplay

void showDataOnDisplay () {// Restaure la posición del cursor y muestre la temperatura y la temperatura display.setCursor (0, 0, 2); display.println ("Humedad:" + Cadena (humedad, 2)); display.println ("Temperatura:" + Cadena (temperatura, 2)); }

Paso 23: archivos

Descarga los archivos

INO

PDF

Recomendado: