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

Construa uma Estação Meteorológica Pessoal Confiável com Arduino, ESP8266 e ThingSpeak

Componentes e Materiais

Adafruit BMP180 (pressão e temperatura) 1
Sensor DHT11 Temperatura e Umidade (4 pinos) 1
LDR (Resistor Dependente de Luz) 1
Espressif ESP8266 ESP-01 1
Arduino Nano R3 1
Resistor 4.75k Ω 1
Resistor 51K Ω 1
Módulo Conversor DC-DC Buck LM2596 Step-Down 1
Jack DC 1
Chave liga/desliga 1
Adaptador de parede 12V-2A 1
PCB (placa de circuito impresso) 1
Header Macho 40 Posições 1 Linha (0.1") 1
Header Fêmea 8 Posições 1 Linha (0.1") 5
Caixa plástica 1

Ferramentas e Máquinas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

Introdução: Faça uma Estação Meteorológica Pessoal

Sentado no seu quarto você começa a suar ou sentir frio; você se pergunta qual seria a temperatura no seu quarto? Ou qual seria a umidade? Isso aconteceu comigo algum tempo atrás.

Isso levou à criação da Estação Meteorológica Pessoal, que monitora temperatura, umidade, pressão e intensidade de luz do seu quarto e envia para um canal privado no thingspeak.com.

Vamos começar.

Passo 1: Vídeo Rápido

Aqui está um pequeno vídeo que resume tudo em 5 minutos.

Clique aqui para assistir no YouTube.

Passo 2: Componentes Eletrônicos Necessários

Descrição: Usaremos DHT11 para detectar umidade, BMP180 para detectar temperatura e pressão e um Resistor Dependente de Luz (LDR) para obter uma ideia aproximada da intensidade de luz. O Arduino Nano reunirá dados desses sensores e enviará ao ESP8266 para fazer upload para seu canal privado no thingspeak.com. Alimentaremos nosso Arduino Nano a partir de um adaptador de parede 12V-2A, sensores e ESP8266 receberão tensão convertida do conversor buck baseado no LM2596.

Lista de componentes:

Construa uma Estação Meteorológica Pessoal Confiável com Arduino, ESP8266 e ThingSpeak

Passo 3: Ferramentas e Itens Extras Necessários

Descrição: Usaremos alicate de decapar para retirar isolação dos fios, lima para suavizar cortes/furos no gabinete, pistola de cola quente para fixar componentes dentro do gabinete, chave de fenda para fechar a tampa do gabinete e ferro de solda com solda para montar o circuito em placa de circuito geral (PCB). Caixa plástica 4x4x2 polegadas atua como gabinete. Também precisaremos de barras de pinos macho e fêmea junto com conectores fêmeas para montagem adequada na PCB.

Lista de Ferramentas:

Lista de Itens Extras:

Construa uma Estação Meteorológica Pessoal Confiável com Arduino, ESP8266 e ThingSpeak

Passo 4: Requisitos de Software

Descrição: Para ver o valor dos dados dos sensores, precisaremos de um canal privado no thingspeak.com. Precisaremos da Arduino IDE para escrever o código do Arduino Nano. (Assumo que vocês possuem PC/laptop e um roteador WiFi com acesso à internet)

Lista de requisitos de software:

Você pode baixar a versão mais recente da Arduino IDE em arduino.cc. Agora vamos criar um canal privado no thingspeak.com.

Passo 5: Criando Canal Privado no Thingspeak.com

Para criar um canal privado no thingspeak.com siga estes passos:

  1. Abra seu navegador e vá para thingspeak.com e clique na aba 'Sign Up' no canto superior direito (Imagem 1)
  2. Preencha os detalhes e clique em 'Create account' (Imagem 2)
  3. Agora clique na aba 'New Channel' (Imagem 3)
  4. Preencha novamente os detalhes do canal e habilite 4 campos (pois enviaremos 4 valores de sensores), role para baixo e clique em 'Save Channel' (Imagem 4/5)
  5. Nesta página clique na aba 'API Keys' e anote sua 'Write API Key'
Construa uma Estação Meteorológica Pessoal Confiável com Arduino, ESP8266 e ThingSpeak

Pronto, agora você tem seu canal privado ThingSpeak.

Agora vamos juntar todos os componentes eletrônicos.

Passo 6: Esquemático para Estação Meteorológica Pessoal

Aqui estou anexando a imagem do esquemático para Estação Meteorológica Pessoal. Também estou anexando arquivo fritzing para o mesmo. As conexões são bastante simples.

Construa uma Estação Meteorológica Pessoal Confiável com Arduino, ESP8266 e ThingSpeak

Precisamos montar este circuito em Placa de Circuito de Propósito Geral. Vamos fazer isso.

Passo 7: Montando Circuito em Placa de Circuito de Propósito Geral (PCB)

Ferramentas de hardware e itens extras do passo 3 agora entram em ação.

Construa uma Estação Meteorológica Pessoal Confiável com Arduino, ESP8266 e ThingSpeak

Agora que todo hardware está colocado na PCB, vamos ver o código.

Passo 8: Código

Código para Estação Meteorológica Pessoal é bastante simples. Comentei o código adequadamente para facilitar a portabilidade. Antes de gravar o código, cuide das seguintes coisas.

Aqui está o link para o github (Estação Meteorológica Pessoal) para baixar código e bibliotecas que usei.

Agora que temos nosso hardware e software no lugar, só falta a embalagem.

Passo 9: Preparação do Gabinete

Agora precisamos fazer furos de várias formas e tamanhos na caixa 4x4x2 polegadas. Precisamos fazer furos para jack DC e chave em qualquer parede preferida do gabinete. Também precisamos fazer furos para os sensores na tampa do gabinete.

Anexei uma imagem mostrando as dimensões dos furos que precisamos fazer no gabinete.

Construa uma Estação Meteorológica Pessoal Confiável com Arduino, ESP8266 e ThingSpeak

Use lâmina quente para cortar o plástico.

Use lima para suavizar os furos.

Construa uma Estação Meteorológica Pessoal Confiável com Arduino, ESP8266 e ThingSpeak

Passo 10: Fechando a Tampa

Coloque sua PCB montada dentro do gabinete.

Coloque chave e jack DC nos furos na parede; sensores nos furos da tampa. Finalize a posição e use pistola de cola quente para fixá-los. Finalmente use chave de fenda para fechar a tampa.

Pronto, você tem sua Estação Meteorológica Pessoal. Ligue a fonte de alimentação e veja a temperatura, umidade, pressão e intensidade de luz do seu quarto de qualquer lugar do mundo através do seu smartphone/PC/Tablet no seu canal privado ThingSpeak.

É isso para este Projeto. Comente em caso de dúvidas. Obrigado por ler.

Código

CódigoArduino
#include <SoftwareSerial.h>
#include <Wire.h>
#include <dht.h>
#include <Adafruit_BMP085.h>

#define DEBUG 0 // altere para 1 para habilitar debug via monitor serial
#define dht_pin A0 // definindo pino A0 para sensor DHT
#define lightSensor A1 // definindo pino A1 como entrada para divisor de tensão LDR

dht DHT;
Adafruit_BMP085 bmp;
SoftwareSerial esp8266Module(10, 11); // RX, TX

String network = "----"; // SSID do seu ponto de acesso
String password = "-------------"; // senha do seu ponto de acesso WiFi
#define IP "184.106.153.149" // Endereço IP do thingspeak.com
String GET = "GET /update?key=----------------"; // substitua pela chave do seu canal

void setup() {
  if(DEBUG){
    Serial.begin(9600);
  }
  esp8266Module.begin(9600);
  if (!bmp.begin()) {
    if(DEBUG){
      Serial.println("Could not find a valid BMP085 sensor, check wiring!");
    }
    while (1) {}
  }
  delay(2000);
}

void loop() {
  setupEsp8266();
  DHT.read11(dht_pin);
  double humi = DHT.humidity;
  double bmp_temp = bmp.readTemperature();
  double bmp_pressure = bmp.readPressure();
  int lightIntensity = analogRead(lightSensor);
  updateTemp(String(bmp_temp), String(lightIntensity), String(bmp_pressure), String(humi));
  delay(30000);
}

void setupEsp8266() {
  if(DEBUG){
    Serial.println("Reseting esp8266");
  }
  esp8266Module.flush();
  esp8266Module.println(F("AT+RST"));
  delay(7000);
  if (esp8266Module.find("OK")) {
    if(DEBUG){
      Serial.println("Found OK");
      Serial.println("Changing espmode");
    }
    esp8266Module.flush();
    changingMode();
    delay(5000);
    esp8266Module.flush();
    connectToWiFi();
  } else {
    if(DEBUG){
      Serial.println("OK not found");
    }
  }
}

bool changingMode() {
  esp8266Module.println(F("AT+CWMODE=1"));
  if (esp8266Module.find("OK")) {
    if(DEBUG){
      Serial.println("Mode changed");
    }
    return true;
  } else if(esp8266Module.find("NO CHANGE")){
    if(DEBUG){
      Serial.println("Already in mode 1");
    }
    return true;
  } else {
    if(DEBUG){
      Serial.println("Error while changing mode");
    }
    return false;
  }
}

bool connectToWiFi() {
  if(DEBUG){
    Serial.println("inside connectToWiFi");
  }
  String cmd = F("AT+CWJAP=\"");
  cmd += network;
  cmd += F("\",\"");
  cmd += password;
  cmd += F("\"");
  esp8266Module.println(cmd);
  delay(15000);
  if (esp8266Module.find("OK")) {
    if(DEBUG){
      Serial.println("Connected to Access Point");
    }
    return true;
  } else {
    if(DEBUG){
      Serial.println("Could not connect to Access Point");
    }
    return false;
  }
}

void updateTemp(String voltage1, String voltage2, String voltage3, String voltage4) {
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += IP;
  cmd += "\",80";
  esp8266Module.println(cmd);
  delay(5000);
  if(esp8266Module.find("Error")){
    if(DEBUG){
      Serial.println("ERROR while SENDING");
    }
    return;
  }
  cmd = GET + "&field1=" + voltage1 + "&field2=" + voltage2 + "&field3=" + voltage3 + "&field4=" + voltage4 + "\r\n";
  esp8266Module.print("AT+CIPSEND=");
  esp8266Module.println(cmd.length());
  delay(15000);
  if(esp8266Module.find(">")) {
    esp8266Module.print(cmd);
    if(DEBUG){
      Serial.println("Data sent");
    }
  } else {
    esp8266Module.println("AT+CIPCLOSE");
    if(DEBUG){
      Serial.println("Connection closed");
    }
  }
}
Biblioteca e Código para Estação Meteorológica Pessoal

Confira o Readme: github.com/jayraj4021/Personal-Weather-Station-14

Esquemáticos

Construa uma Estação Meteorológica Pessoal Confiável com Arduino, ESP8266 e ThingSpeak

schematic.fzz

Processo de manufatura

  1. Estação Meteorológica Solar DIY com Raspberry Pi
  2. Construindo Estação Meteorológica Externa com Raspberry Pi 2 e ADS‑WS1
  3. Construa Estação Meteorológica Raspberry Pi que Envia Dados Diários por Email
  4. Integre sua Estação Meteorológica ao CWOP: Guia Prático
  5. Monitor Meteorológico – Estação Meteorológica DIY com Raspberry Pi e Upload para Dropbox
  6. Estação Meteorológica Avançada v2.0: Monitoramento em Tempo Real de Temperatura, Pressão, Umidade e Altitude
  7. Persianas Inteligentes: Controle Automático de Luz com Arduino e Energia Solar
  8. Envio de Dados do Sensor DHT11 para o ThingSpeak com Arduino MKR1000
  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