Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

Componentes e Materiais

Arduino UNO 1
Espressif ESP8266 ESP-01 1
Sensor Temperatura e Umidade DHT11 (3 pinos) 1
Protoboard (genérica) 1
Fios Jumpers (genéricos) 1
Fonte para Protoboard SparkFun 5V/3.3V 1

Aplicativos e Serviços Online

ThingSpeak API
Arduino IDE
Microsoft Windows 10

Sobre o Projeto

ESTAÇÃO METEOROLÓGICA ARDUINO THINGSPEAK

Mergulhando no IoT

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

Mergulhar no IoT pode ser desafiador para um iniciante, não sabendo por onde começar das vastas opções disponíveis. Deus abençoe o Thingspeak. Este blog irá guiá-lo através do seu primeiro projeto Thingspeak IoT, que é:

O projeto – Um sensor de temperatura e umidade enviando dados para a Nuvem Thingspeak usando um Arduino e um módulo WiFi ESP-01.

Coisas que Você Vai Precisar

1. Arduino UNO

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

2. ESP-01

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

3. Sensor DHT-11

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT
Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

4. Protoboard

5. Fonte para Protoboard

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

5. Fios de conexão.

NOTA – Agora você poderia usar seu Arduino para alimentar o sensor e o módulo WiFi, mas uma fonte externa como um módulo Fonte para Protoboard será melhor porque as demandas de corrente de pico do módulo WiFi em operação não podem ser atendidas pela placa. Eu tentei, confiem em mim.

Cerro, vamos mergulhar direto.

CONEXÕES

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

ESP-01

DHT-11

Não esqueça de configurar o jumper para 3.3V na Fonte para Protoboard.

Agora ligue tudo e se nada queimar ou soltar fumaça, até agora tudo bem.

CONFIGURANDO O THINGSPEAK

Vá para a página inicial do Thingspeak.

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

Cadastre-se e crie um Novo Canal com dois campos: Temperatura e Umidade.

Ao criar um novo canal, você obterá algo chamado Chaves API.

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

Usaremos estas mais adiante.

CONFIGURANDO A ARDUINO IDE

Agora este passo é fundamental para fazer o código rodar. BIBLIOTECAS.

Você usará duas no código e uma terceira para usar as do código.

Destacadas na caixa vermelha.

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

SoftwareSerial.h é uma biblioteca nativa, então sem problemas aí.

1. As bibliotecas que você precisa instalar por conta própria são a Adafruit Unified Sensor Library e a DHT sensor library. Links de download:

DHT Sensor by adafruit – https://github.com/adafruit/DHT-sensor-library

Adafruit Unified Sensor Library – https://github.com/adafruit/Adafruit_Sensor

2. Baixe ambas e adicione usando o recurso Add .ZIP Library na IDE.

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

Reta Final

O código está aqui – https://github.com/imalwaysontheinternet/Weather-Stasion Ou apenas copie o código daqui e cole no seu sketch.

Há algumas coisas a fazer no código antes de carregá-lo.

1. Cole sua Write API key aqui

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

2. Insira seu SSID e Senha do WiFi aqui.

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

Carregue o código. Se tudo foi feito corretamente, seu Canal Thingspeak deve parecer com isto.

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

Note que há um intervalo de 15 segundos entre atualizações nos gráficos.

Se ainda não funcionar, escreva seus problemas nos comentários abaixo, estamos sempre felizes em ajudar. Visite virginrobotics.blogspot.com para dúvidas e mais projetos como este.

Código

CÓDIGO

String myAPIkey = "Sua 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 ao Wifi");
  while(check_connection==0) {
    Serial.print(".");
    ESP8266.print("AT+CWJAP=\"Nome da Rede Wifi\",\"Senha\"\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("Tentando Reconectar..");
    }
  }
}

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();
  // preparação da string GET
  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"; // endereço 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

Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT

Código

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

Processo de manufatura

  1. Construindo Estação Meteorológica Externa com Raspberry Pi 2 e ADS‑WS1
  2. Construa Estação Meteorológica Raspberry Pi que Envia Dados Diários por Email
  3. Estação Meteorológica Avançada v2.0: Monitoramento em Tempo Real de Temperatura, Pressão, Umidade e Altitude
  4. Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
  5. Construa um Homem de Ferro com Arduino: Componentes, Sensores e Guia Passo a Passo
  6. Find Me: Localizador Inteligente de Objetos com Arduino e Bluetooth
  7. Construa um Braço Robótico 3D Impresso Funcional com Arduino – Guia Passo a Passo
  8. Controlador de Umidificador DIY com Arduino e Relé – Configuração Segura de Alta Tensão
  9. Estação Meteorológica Portátil Arduino por $10 – DIY com Nano, DHT22, BMP180 e LCD
  10. eDOT: Relógio de Precisão e Estação Meteorológica Arduino com Controle IR Embutido