Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT

Componentes y materiales

Arduino UNO × 1
Espressif ESP8266 ESP-01 × 1
Sensor Temperatura y Humedad DHT11 (3 pines) × 1
Protoboard (genérica) × 1
Cables Dupont (genéricos) × 1
Fuente Alimentación Protoboard SparkFun 5V/3.3V × 1

Aplicaciones y servicios online

ThingSpeak API
Arduino IDE
Microsoft Windows 10

Sobre el proyecto

ESTACIÓN METEOROLÓGICA ARDUINO THINGSPEAK

Iniciándote en IoT

Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT

Iniciarse en IoT puede ser abrumador por la gran cantidad de opciones. Bendito ThingSpeak. Este tutorial te guiará en tu primer proyecto ThingSpeak IoT, que es:

El proyecto: sensor de temperatura y humedad enviando datos a la nube ThingSpeak usando Arduino y módulo WiFi ESP-01.

Materiales necesarios

  1. Arduino UNO
  2. Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT
  3. ESP-01
  4. Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT
  5. Sensor DHT-11
  6. Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT
  7. Protoboard
  8. Fuente Alimentación Protoboard
  9. Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT
  10. Cables de conexión.

NOTA: Podrías alimentar sensor y WiFi desde Arduino, pero una fuente externa como el módulo Protoboard Power Supply es mejor porque los picos de corriente del WiFi no los puede suministrar la placa. ¡Lo probé, créeme!

CONEXIONES

Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT

ESP-01

DHT-11

¡No olvides poner el jumper de la fuente protoboard en 3.3V!

Enciende todo y si no humea ni huele a quemado, ¡todo bien!

CONFIGURAR THINGSPEAK

Ve a la web de ThingSpeak. Regístrate y crea un New Channel con dos fields: Temperature y Humidity.

Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT

Al crear el canal obtendrás las API Keys. Las usaremos después.

Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT

CONFIGURAR ARDUINO IDE

Paso clave: LIBRERÍAS. Usarás dos en el código y una tercera para que funcionen las anteriores.

Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT

SoftwareSerial.h viene incluida.

1. Librerías a instalar manualmente: Adafruit Unified Sensor Library y DHT Sensor Library.

2. Descarga ambas y añádelas via Sketch → Include Library → Add .ZIP Library.

Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT

RECTA FINAL

Código aquí: GitHub o copia abajo.

Antes de subir, modifica en el código:

  1. Pega tu Write API Key.
  2. Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT
  3. Introduce tu SSID y contraseña WiFi.
  4. Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT

Sube el código. Si todo correcto, tu canal ThingSpeak se verá así:

Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT

Nota: hay intervalo de 15 segundos entre actualizaciones de gráficas.

Si no funciona, comenta tus problemas abajo. Visita virginrobotics.blogspot.com para dudas y más proyectos.

Código

Código completo (Arduino)

String myAPIkey = "Tu Write API Key aqui";
#include <SoftwareSerial.h>
#include <DHT.h>;
SoftwareSerial ESP8266(2, 3); // Rx, Tx
#define DHTTYPE DHT11
#define DHTPIN A0
DHT dht(DHTPIN, DHTTYPE, 11);
float humidity, temp_f;
long writingTimer = 17;
long startTime = 0;
long waitTime = 0;
boolean relay1_st = false;
boolean relay2_st = false;
unsigned char check_connection = 0;
unsigned char times_check = 0;
boolean error;

void setup() {
  Serial.begin(9600);
  ESP8266.begin(9600);
  dht.begin();
  startTime = millis();
  ESP8266.println("AT+RST");
  delay(2000);
  Serial.println("Conectando a Wifi");
  while (check_connection == 0) {
    Serial.print(".");
    ESP8266.print("AT+CWJAP=\"NombreRedWifi\",\"Password\"\r\n");
    ESP8266.setTimeout(5000);
    if (ESP8266.find("WIFI CONNECTED\r\n") == 1) {
      Serial.println("WIFI CONNECTED");
      break;
    }
    times_check++;
    if (times_check > 3) {
      times_check = 0;
      Serial.println("Reintentando conexion..");
    }
  }
}

void loop() {
  waitTime = millis() - startTime;
  if (waitTime > (writingTimer * 1000)) {
    readSensors();
    writeThingSpeak();
    startTime = millis();
  }
}

void readSensors(void) {
  temp_f = dht.readTemperature();
  humidity = dht.readHumidity();
}

void writeThingSpeak(void) {
  startThingSpeakCmd();
  String getStr = "GET /update?api_key=";
  getStr += myAPIkey;
  getStr += "&field1=";
  getStr += String(temp_f);
  getStr += "&field2=";
  getStr += String(humidity);
  getStr += "\r\n\r\n";
  GetThingspeakcmd(getStr);
}

void startThingSpeakCmd(void) {
  ESP8266.flush();
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += "184.106.153.149"; // IP api.thingspeak.com
  cmd += "\",80";
  ESP8266.println(cmd);
  Serial.print("Start Commands: ");
  Serial.println(cmd);
  if (ESP8266.find("Error")) {
    Serial.println("AT+CIPSTART error");
    return;
  }
}

String GetThingspeakcmd(String getStr) {
  String cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  ESP8266.println(cmd);
  Serial.println(cmd);
  if (ESP8266.find(">")) {
    ESP8266.print(getStr);
    Serial.println(getStr);
    delay(500);
    String messageBody = "";
    while (ESP8266.available()) {
      String line = ESP8266.readStringUntil('\n');
      if (line.length() == 1) {
        messageBody = ESP8266.readStringUntil('\n');
      }
    }
    Serial.print("MessageBody received: ");
    Serial.println(messageBody);
    return messageBody;
  } else {
    ESP8266.println("AT+CIPCLOSE");
    Serial.println("AT+CIPCLOSE");
  }
}

Esquemáticos

Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT

Código en GitHub

https://github.com/imalwaysontheinternet/Weather-Stasion

Proceso de manufactura

  1. Construcción de una estación meteorológica exterior con Raspberry Pi 2 y ADS‑WS1
  2. Construya una estación meteorológica con Raspberry Pi que envíe datos diarios por email
  3. Estación Meteorológica Avanzada v2.0: Monitorización en Tiempo Real de Temperatura, Presión, Humedad y Altitud
  4. Proyecto Dados Digitales Arduino: Construye tu Propio Generador de Números Aleatorios con LCD
  5. Construye un Iron Man animado con Arduino: componentes, sensores y guía paso a paso
  6. Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
  7. Construye un Brazo Robótico Impreso en 3D Controlado por Arduino – Guía Paso a Paso
  8. Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
  9. Estación Meteorológica Portátil Arduino por $10 – Nano, DHT22, BMP180 y LCD
  10. eDOT: Reloj Preciso y Estación Meteorológica Arduino con Control IR Integrado
  11. Construye un volante joystick personalizado con Arduino para gaming