» Eletrônicos » Arduino »Estação meteorológica do relógio no Arduino

Assista estação meteorológica no Arduino

Assista estação meteorológica no Arduino

Boa tarde eu continuo fazendo Arduino em seu tempo livre, e desta vez ele escreveu instruções para a fabricação de uma pequena estação meteorológica. Ele funcionará como um relógio com uma data e mostrará as temperaturas dentro e fora da sala. Como controlador principal, usaremos o Arduino UNO, mas outra placa com o Atmega328p a bordo. Para exibição, usamos a tela gráfica WG12864B. Também conectamos dois sensores de temperatura ds18b20. Um dentro de casa, tiramos o segundo do lado de fora. Vamos começar.

No processo de fabricação caseiro vamos precisar de:

- Arduino UNO (ou qualquer outra placa compatível com Arduino)
- Tela gráfica WG12864B
- sensor de temperatura ds18b20, 2pcs
- Fonte de alimentação 6 - 12 V
- Resistores 4,7 Kom 0,25 W, 2 peças.
- Resistores 100 ohms 0,25 W
- Compartimento de bateria para 4 pilhas "pinky" AAA
- Caixa do cartucho do console SEGA
- fita isolante
- fios de conexão
- placa de circuito
- Botões
- faca de papelaria
- ferro de soldar
- Solda, resina
- Fita dupla face

Etapa 1 Preparando o WG12864B3.
Aqueles que não trabalharam com telas antes podem ficar assustados com um grande número de modificações, que parecem iguais, das telas. Eu vou explicar um pouco A maioria das telas desse tipo funciona com chips ks0107 / ks0108. Todas as telas podem ser divididas em 4 tipos:

Opção A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T

Opção B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ exibe AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J-1, Q

Opção C: Shenzhen Jinghua Displays Co Ltd. Jm12864

Opção D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Eles parecem quase o mesmo. Mas eles têm pinos de conexão diferentes. Escolhi e recomendo o WG12864B3 V2.0, mas se a tela aparecer de forma diferente ou se você não a tiver, poderá facilmente descobrir isso usando a tabela:


Breves características:


Existem muitos esquemas de conexão diferentes na Internet e tudo parece estar funcionando. O problema é que não existem apenas telas diferentes, mas também duas maneiras de conectá-las: serial e paralela. Ao usar uma conexão de porta serial, precisamos de apenas 3 saídas do microcontrolador. Com um mínimo paralelo de 13. A escolha neste caso é óbvia, o Arduino tem poucas conclusões. Para conexão paralela, o diagrama de conexão é o seguinte:


Para uma conexão serial, que usaremos, o esquema é o seguinte:

WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (E / S) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - através de um resistor de 100 Ohm - + 5V
20 (BLK) - GND


Para ajustar o contraste, um potenciômetro deve estar na tela. Existem telas sem ele, mas agora é uma raridade:


É necessário um resistor de 100 ohm para que uma tensão de 5 volts não queime acidentalmente diodos de luz de fundo.


Etapa 2 Fazendo o caso.
Para o caso, pegue a caixa no prefixo do cartucho Sega. Se você não encontrar esta caixa em mãos, poderá usar outro caso. O principal é que a tela e o Arduino se encaixam nela.


Corte o filme transparente em cima da caixa para que não haja mais pedaços:


Em seguida, usando uma faca de escritório, corte uma janela de 37x69 no tamanho da tela.


No verso, ao longo da borda do corte, colamos uma fita dupla face, de preferência preta:


Remova o papel protetor da fita adesiva e cole nossa tela:


Do lado de fora, deve ficar assim:


Abaixo da tela, também em fita dupla face, prendemos o Arduino, fazendo recortes preliminares para a porta USB e a tomada:


Recortes para soquetes do Arduino devem ser feitos nos dois lados da caixa para que possam ser fechados livremente:


Etapa 3 Sensores de temperatura.
Usaremos sensores digitais de temperatura DS18B20. Utilizando-os, obtemos grande precisão de medição, o erro não é superior a 0,5 ° C, em uma ampla faixa de temperatura de -55 ... + 125 ° C. Além disso, o sensor digital realiza todos os cálculos em si e o Arduino simplesmente recebe leituras prontas. Ao conectar este sensor, não se esqueça do resistor de pull-up de 4,7 kΩ entre os contatos DQ e VDD. Várias opções de conexão também são possíveis. Com energia externa, na minha opinião, a melhor opção, vamos usá-la:


Se desejar, você pode usar o modo de energia parasita:


Ou uma opção melhorada de alimento parasita:


Com qualquer fonte de alimentação, os sensores são conectados em paralelo:


Colocaremos o sensor de medição de temperatura na prancheta junto com dois botões, que usaremos para definir a hora e a data do relógio:


O fio comum dos dois botões está conectado ao GND, o fio do primeiro botão está conectado ao A0, do segundo ao A1.
Prenda uma fita dupla face ao lado do Arduino:


O sensor, que deve ser colocado fora da sala, é melhor escolher em uma caixa à prova de metal, poeira e umidade:


Calcule o fio do comprimento necessário para que o sensor possa ser pendurado do lado de fora da janela; o principal é que ele não deve exceder 5 metros; se você precisar de mais comprimento, precisará reduzir o valor do resistor de pull-up.

O fio do barramento de dados DQ dos dois sensores está conectado ao pino 5 do Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Etapa 4 Potência.
Para energia, você pode usar uma fonte de alimentação com uma voltagem de 6 a 12 volts. No final do fio de energia, solde o plugue adequado à tomada do Arduino:


Ou você pode colocar um compartimento para quatro pilhas “AAA” e “pinky” no estojo. E conecte o fio positivo do compartimento ao Vin Arduino e o menos ao GND.

Etapa 5 Preparando o ambiente de programação.
Primeiro, você precisa baixar e instalar o Arduino IDE com site oficial

E também adicione às duas bibliotecas necessárias para o esboço. OneWire - necessário para comunicação com sensores ds18b20:
onewire.rar [16.75 Kb] (downloads: 34)


U8glib - usado para exibir informações na tela:
u8glib.rar [906.95 Kb] (downloads: 46)


Faça o download da biblioteca. Em seguida, descompactamos os arquivos e movemos o conteúdo dos arquivos para a pasta “bibliotecas” localizada na pasta com o IDE do Arduino instalado. Você também pode adicionar bibliotecas através do IDE do Arduino. Para fazer isso, sem descompactar os arquivos, execute o Arduino IDE, selecione Sketch - Connect Library no menu Sketch. No topo da lista suspensa, selecione o item "Adicionar biblioteca .Zip". Indicamos a localização dos arquivos baixados. Após todas as etapas, você precisa reiniciar o IDE do Arduino.

Etapa 6 Editando o esboço.
Os sensores de temperatura operam usando o protocolo One Wire e têm um endereço exclusivo para cada dispositivo - um código de 64 bits. Não é recomendável adicionar comandos de pesquisa de sensor ao esboço. Não é necessário carregar sempre os sensores do soluço do Arduino.Portanto, primeiro, juntando tudo, preencha o esboço no Arduino, localizado no menu Arquivo - Exemplos - Temperatura Dallas - OneWireSearch. Em seguida, execute Ferramentas - Port Monitor. O Arduino deve encontrar nossos sensores, escrever os endereços e as leituras de temperatura. Esses endereços precisam ser anotados ou apenas copiados em algum lugar. Agora abra o esboço Ard_Tic_Tak_WG12864B_2_x_Term_Serial e procure as linhas:

byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // endereço interno
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // endereço do sensor externo


Substituímos os endereços correspondentes à localização dos sensores pelos nossos endereços.
Nossos relógios não usam o módulo RTC (relógio em tempo real), portanto você precisa ajustar o relógio. Por conveniência, remova o comentário da linha (os segundos aparecerão na tela):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Imprima segundos para verificar a correção do curso


Defina a hora correta através do monitor da porta. Para fazer isso, abra o monitor da porta, aguarde o término das medições iniciais de temperatura e insira a data e hora atuais no formato "dia, mês, ano, horas, minutos, segundos". Sem espaços, divida os números por vírgulas ou pontos.

Se o relógio estiver com pressa, altere o valor para um valor maior, recomendo experimentar incrementos de 100 unidades. Se estiver atrasado, diminua o valor na linha:

if (micros () - prevmicros & gt; 494000) {// alterar para outro para ajuste foi 500.000


Determine empiricamente o número no qual o relógio vai com bastante precisão. Para determinar a precisão do curso e precisa de uma conclusão segundos. Após calibrar com precisão o número, os segundos podem ser comentados e, portanto, removidos da tela.
Preencha o esboço.


Funcionalidade ou beleza?
Total de eleitores: 19
8
8.3
7.7

Adicionar um comentário

    • sorrirsorrisosxaxaoknão seiyahoonea
      chefearranhartolosimsim simagressivosegredo
      desculpedançardance2dance3perdãoajudabebidas
      pararamigosbomgoodgoodapitodesmaiarlíngua
      fumaçapalmascraydeclararirônicodon-t_mentionbaixar
      calorirritantelaugh1mdareuniãomoskingnegativo
      not_ipipocapunirlerassustarsustospesquisar
      provocarthank_youistoto_clueumnikagudoconcordar
      malbeeeblack_eyeblum3corargabar-setédio
      censuradobrincadeirasecret2ameaçarvitóriayusun_bespectacled
      sacudirrespektlolpreviubem vindoKrutoyya_za
      ya_dobryiajudantene_huliganne_othodifludproibirfechar
3 comentário
O autor
Infelizmente, eu não conheço os análogos da tela mais baratos.
E quanto mais orçamento for possível substituir essa tela, eles pareciam 500 rublos.
Para esses denyushki, você pode comprar uma estação meteorológica realmente pronta, com uma indicação não apenas de temperatura, mas também de pressão e umidade, e com a indicação da direção da mudança dos valores medidos! sorrir
Boa noite E quanto mais orçamento for possível substituir essa tela, eles pareciam 500 rublos.
Obrigada

Aconselhamos que você leia:

Entregue-o para o smartphone ...