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

Estação meteorológica pessoal (Arduino + ESP8266 + Thingspeak)

Componentes e suprimentos

Adafruit BMP180
× 1
Sensor DHT11 de Temperatura e Umidade (4 pinos)
× 1
LDR
Resistor dependente de luz
× 1
Espressif ESP8266 ESP-01
× 1
Arduino Nano R3
× 1
Resistor 4,75 k ohm
× 1
Resistor 51K
× 1
LM2596 DC-DC Buck Conversor Step-Down Power Module
× 1
DC jack
× 1
switch
× 1
Adaptador de parede 12v-2A
× 1
PCB
× 1
Cabeçalho masculino 40 posição 1 linha (0,1 ")
× 1
Cabeçalho feminino 8 posição 1 linha (0,1 ")
× 5
caixa de plástico
× 1

Ferramentas e máquinas necessárias

stripper de fio
Pistola de cola quente (genérica)
Ferro de soldar (genérico)
chave de fenda
Arquivo
usado para trabalhos manuais

Aplicativos e serviços online

Arduino IDE
API ThingSpeak

Sobre este projeto


Introdução:Faça uma estação meteorológica pessoal

Sentado em seu quarto, você começa a suar ou sentir frio; você quer saber qual seria a temperatura em seu quarto? ou qual seria a umidade? Isso aconteceu comigo há algum tempo.

Isso levou ao lançamento da Estação meteorológica pessoal, que monitora a temperatura, umidade, pressão e intensidade da luz da sua sala e carrega em um canal privado em thingspeak.com.

Vamos começar.

Etapa 1:Vídeo rápido

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

Clique aqui para assistir no youtube.

Etapa 2:componentes eletrônicos necessários para a estação meteorológica pessoal

Descrição: Usaremos DHT11 para detectar umidade, BMP180 para detectar temperatura e pressão e um resistor dependente de luz (LDR) para ter uma ideia aproximada da intensidade da luz. O Arduino nano reunirá dados desses sensores e os enviará ao ESP8266 para carregá-los em seu canal privado em thingspeak.com. Vamos alimentar nosso Arduino nano com um adaptador de parede 12V-2A, os sensores e o ESP8266 receberão a voltagem convertida do conversor buck baseado no LM2596.

Lista de componentes:
  • sensor de pressão e temperatura BMP180,
  • sensor de umidade DHT11,
  • Resistor dependente de luz (LDR),
  • Módulo wi-fi ESP8266 (pronto para firmware),
  • Arduino nano,
  • 2 resistores - 51 KOhm e 4,7 KOhm,
  • conversor de buck LM2596,
  • jack DC,
  • Mudar e
  • adaptador de parede 12V-2A.

Etapa 3:ferramentas e itens extras necessários para a estação meteorológica pessoal

Descrição: Usaremos descascador de fios para retirar o fio, lima para alisar cortes / orifícios no invólucro, pistola de cola para colocar componentes dentro do invólucro, chave de fenda para fechar a tampa do invólucro e ferro de soldar com fio de solda para montar o circuito na placa de circuito de uso geral (GCB) . A caixa de plástico de 4x4x2 polegadas atua como invólucro. Também precisaremos de faixas berg macho e fêmea junto com conectores fêmeas para a montagem adequada no GCB.

Lista de ferramentas:
  • Decapador de fio,
  • Arquivo,
  • Pistola de cola,
  • Chave de fenda e
  • Ferro de solda e fio de solda.

Lista de itens extras:
  • caixa de plástico 4x4x2 polegadas (usei esta dimensão, qualquer dimensão próxima deve servir),
  • Placa de circuito de uso geral,
  • faixa berg masculina e feminina e
  • conectores fêmeas.

Etapa 4:Requisitos de software

Descrição:para ver o valor dos dados do sensor, precisaremos de um canal privado em thingspeak.com. Precisaremos do Arduino IDE para escrever o código do arduino para o arduino nano. (Presumo que vocês tenham um PC / laptop e uma rota wi-fi com acesso à internet)

Lista de requisitos de software:
  • Canal privado em Thingspeak.com e
  • Arduino IDE (de preferência a versão mais recente).

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

Etapa 5:Criando um canal privado em Thingspeak.com

Para criar um canal privado em thingspeak.com, siga estas etapas:
  • Abra seu navegador da web, vá para thingspeak.com e clique na guia 'Inscreva-se' no canto superior direito, (Imagem nº 1)
  • Preencha os detalhes e clique em 'Criar conta', (Imagem nº 2)
  • Agora clique na guia 'Novo canal', (Imagem nº 3)
  • Novamente preencha os detalhes do canal e habilite 4 campos (já que enviaremos 4 valores de sensor), role para baixo e clique na guia 'Salvar canal', (Imagem nº 4/5)
  • Nesta página, clique na guia 'Chaves de API' e anote a sua 'Gravar chave de API'.

Isso é tudo pessoal, agora você tem seu canal ThingSpeak privado.

Agora vamos juntar todos os componentes eletrônicos.

Etapa 6:esquema para estação meteorológica pessoal

Estou anexando aqui a imagem do esquema da Estação Meteorológica Pessoal. Também estou anexando um arquivo fritzing para o mesmo. As conexões são bastante simples.
  • BMP180 se conecta à porta I2C do arduino nano.
  • O LDR é conectado em forma de divisor de tensão com resistor de 51 KOhm e a junção é conectada ao pino A1 do Arduino nano.
  • O pino de dados do DHT11 é puxado para cima com um resistor de 4,7 KOhm e conectado ao pino A0 do arduino nano.
  • O TX e RX do ESP8266 se conecta ao D10 e D11 do arduino nano, respectivamente. O CH_PD do ESP8266 se conecta ao trilho de 3,3 V.
  • Ajuste a saída do módulo LM2596 para 3,3 V girando o potenciômetro neste módulo. Conecte a saída deste módulo a Vcc e Gnd de BMP180, DHT11, LDR e Vcc e Gnd de ESP8266 respectivamente.
  • A entrada do módulo LM2596 vem de um adaptador de parede 12V-2A que também se conecta ao Vin e Gnd do Arduino nano.

Precisamos montar este circuito na placa de circuito de uso geral. Vamos fazer isso.

Etapa 7:montagem do circuito na placa de circuito de uso geral (GCB)

As ferramentas de hardware e itens extras da etapa 3 já estão disponíveis.
  • Use a tira berg feminina para o Arduino nano e a colocação do ESP8288 no GCB,
  • Use ferro de solda e fio de solda para conectá-los eletricamente à placa,
  • Use conectores fêmeas para estender o alcance de todos os sensores e módulo LM2596, pois eles ficarão presos na tampa e na parede do gabinete,
  • Use uma tira de berg masculino para fazer pontos de conexão para as extensões femininas feitas acima,
  • Realize o esquema do circuito no GCB usando fios (descasque-os usando descascador de fios) ou trilho de fio de solda derretido e, finalmente,
  • Verifique se há tipos antes de ligar o circuito usando um multímetro.

Agora que todo o hardware está colocado no GCB, vamos examinar o código.

Etapa 8:Código

O código para a estação meteorológica pessoal é bastante simples. Eu comentei o código corretamente para facilitar a portabilidade. Antes de gravar o código, tome cuidado com o seguinte.
  • Certifique-se de que todas as bibliotecas estão instaladas,
  • Substitua os hifens pelo SSID do seu ponto de acesso (roteador wi-fi) na linha 14 do código,
  • Substitua os hifens pela SENHA da sua rede wi-fi na linha 15 do código,
  • Substitua os hífens pela chave de API de gravação de canal privado do ThingSpeak na linha 17 e
  • Ao programar o Arduino nano, certifique-se de que a alimentação de 12 Vcc esteja desligada.

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

Agora que temos nosso hardware e software instalados, a única coisa que resta é a embalagem.

Etapa 9:Preparação do gabinete

Agora precisamos fazer orifícios de vários formatos e tamanhos na caixa de 4x4x2 polegadas. Precisamos fazer orifícios para o conector DC e ligar qualquer parede preferencial do gabinete. Também precisamos fazer orifícios para sensores na tampa do gabinete.

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

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

Use uma lima para alisar os orifícios.

Agora seu gabinete está preparado para hospedar seu circuito.

Etapa 10:Fechar a tampa

Coloque o GCB montado dentro do gabinete.

Coloque o interruptor e a tomada DC nos orifícios da parede; sensores nos orifícios da tampa. Finalize a posição deles e use a pistola de cola para fixá-los. Por fim, use uma chave de fenda para fechar a tampa.

Aí está, sua estação meteorológica pessoal. Ligue a fonte de alimentação e veja a temperatura, umidade, pressão e intensidade da luz da sua sala de qualquer lugar do mundo através do seu smartphone / PC / Laptop / Tablet no seu canal privado ThingSpeak.

Isso é tudo para este projeto. Comente em caso de dúvida. Obrigado pela leitura.

Código

  • Código
Código Arduino
 #include  #include  #include  #include  #define DEBUG 0 // altera o valor para 1 para habilitar a depuração usando o monitor serial #define dht_pin A0 // definindo o pino A0 para o sensor DHT # define lightSensor A1 // definindo o pino A1 como pino de entrada para a tensão LDR dividerdht DHT; Adafruit_BMP085 bmp; SoftwareSerial esp8266Module (10, 11); // RX, TXString network ="----"; // sua senha de ponto de acesso SSIDString ="-------------"; // sua senha de ponto de acesso wi-fi # define IP "184.106.153.149" // endereço IP de thingspeak.comString GET ="GET / update? key =----------------"; // substitua pelo keyvoid do seu canal setup () {if (DEBUG) {Serial.begin (9600); // Definindo a taxa de transmissão serial do hardware para 9600} esp8266Module.begin (9600); // Definindo a taxa de transmissão serial para 9600 if (! Bmp.begin ()) {if (DEBUG) {Serial.println ("Não foi possível encontrar um sensor BMP085 válido, verifique a fiação!"); } while (1) {}} delay (2000);} void loop () {setupEsp8266 (); DHT.read11 (dht_pin); duplo humi =DHT.umidade; 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)); atraso (30000);} // ------------------------------------------ ------------------------- // Seguindo a configuração da função do esp8266, coloque-o na estação feita e // conecte ao ponto de acesso wi-fi.//- -------------------------------------------------- --------------- void setupEsp8266 () {if (DEBUG) {Serial.println ("Reseting esp8266"); } esp8266Module.flush (); esp8266Module.println (F ("AT + RST")); atraso (7000); if (esp8266Module.find ("OK")) {if (DEBUG) {Serial.println ("Encontrado OK"); Serial.println ("Alterando espmode"); } esp8266Module.flush (); changingMode (); atraso (5000); esp8266Module.flush (); connectToWiFi (); } else {if (DEBUG) {Serial.println ("OK não encontrado"); }}} // --------------------------------------------- ---------------------- // A função a seguir define esp8266 para o modo de estação // ----------------- -------------------------------------------------- bool changingMode () {esp8266Module.println (F ("AT + CWMODE =1")); if (esp8266Module.find ("OK")) {if (DEBUG) {Serial.println ("Modo alterado"); } return true; } else if (esp8266Module.find ("SEM ALTERAÇÃO")) {if (DEBUG) {Serial.println ("Já no modo 1"); } return true; } else {if (DEBUG) {Serial.println ("Erro ao alterar o modo"); } retorna falso; }} // ---------------------------------------------- --------------------- // A função a seguir conecta esp8266 ao ponto de acesso wi-fi // ----------------- -------------------------------------------------- bool connectToWiFi () {if (DEBUG) {Serial.println ("dentro de connectToWiFi"); } String cmd =F ("AT + CWJAP =\" "); cmd + =rede; cmd + =F (" \ ", \" "); cmd + =senha; cmd + =F (" \ ""); esp8266Module.println (cmd); atraso (15000); if (esp8266Module.find ("OK")) {if (DEBUG) {Serial.println ("Conectado ao Ponto de Acesso"); } return true; } else {if (DEBUG) {Serial.println ("Não foi possível conectar ao ponto de acesso"); } retorna falso; }} // ---------------------------------------------- --------------------- // A função a seguir envia dados do sensor para thingspeak.com//---------------- -------------------------------------------------- -evite updateTemp (String voltage1, String voltage2, String voltage3, String voltage4) {String cmd ="AT + CIPSTART =\" TCP \ ", \" "; cmd + =IP; cmd + =" \ ", 80"; esp8266Module.println (cmd); atraso (5000); if (esp8266Module.find ("Erro")) {if (DEBUG) {Serial.println ("ERRO ao ENVIAR"); } Retorna; } cmd =GET + "&campo1 =" + voltagem1 + "&campo2 =" + voltagem2 + "&campo3 =" + voltagem3 + "&campo4 =" + voltagem4 + "\ r \ n"; esp8266Module.print ("AT + CIPSEND ="); esp8266Module.println (cmd.length ()); atraso (15000); if (esp8266Module.find (">")) {esp8266Module.print (cmd); if (DEBUG) {Serial.println ("Dados enviados"); }} else {esp8266Module.println ("AT + CIPCLOSE"); if (DEBUG) {Serial.println ("Conexão fechada"); }}} 
Biblioteca e código para estação meteorológica pessoal
Confira Readmehttps://github.com/jayraj4021/Personal-Weather-Station-14

Esquemas

schematic.fzz

Processo de manufatura

  1. Estação meteorológica baseada no Raspberry Pi
  2. Estação meteorológica Raspberry Pi 2
  3. Estação meteorológica Raspberry Pi
  4. Junte-se ao IOT com sua estação meteorológica - CWOP
  5. Monitor de clima
  6. Estação meteorológica V 2.0
  7. Smart Blinds
  8. MKR1000 para ThingSpeak.com
  9. $ 10 Estação meteorológica portátil Arduino (AWS)
  10. eDOT - Relógio de precisão baseado em Arduino e estação meteorológica