» elettronica » Arduino »Stazione meteo orologio su Arduino

Guarda la stazione meteo su Arduino

Guarda la stazione meteo su Arduino

Buon pomeriggio, continuo a farlo Arduino nel suo tempo libero, e questa volta ha scritto le istruzioni per la fabbricazione di una piccola stazione meteorologica. Funzionerà come un orologio con una data e mostrerà le temperature dentro e fuori la stanza. Come controller principale, useremo Arduino UNO, ma farà un'altra scheda con Atmega328p. Per la visualizzazione utilizziamo lo schermo grafico WG12864B. Colleghiamo anche due sensori di temperatura ds18b20. Uno dentro, tiriamo fuori il secondo fuori. Cominciamo

Nel processo di fabbricazione fatto in casa avremo bisogno di:

- Arduino UNO (o qualsiasi altra scheda compatibile Arduino)
- Schermata grafica WG12864B
- sensore di temperatura ds18b20, 2 pezzi
- Alimentazione 6 - 12 V
- Resistori 4,7 Kom 0,25 W, 2 pezzi.
- Resistori 100 ohm 0,25 W.
- Vano batteria per 4 batterie AAA "mignolo"
- Scatola dalla cartuccia della console SEGA
- nastro elettrico
- fili di collegamento
- circuito stampato
- Pulsanti
- coltello da cancelleria
- saldatore
- Saldatura, colofonia
- Nastro biadesivo

Passaggio 1 Preparazione di WG12864B3.
Coloro che non hanno mai lavorato con schermi prima possono essere spaventati da un gran numero di modifiche, che sembrano essere le stesse, degli schermi. Spiegherò un po '. La maggior parte degli schermi di questo tipo funzionano su chip ks0107 / ks0108. Tutte le schermate possono essere divise in 4 tipi:

Opzione A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T

Opzione B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, display AZ AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864JJ64, QY64

Opzione C: Shenzhen Jinghua Display Co Ltd. JM12864

Opzione D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Sembrano quasi uguali. Ma hanno pin di connessione diversi. Ho scelto e ti consiglio WG12864B3 V2.0, ma se lo schermo è stato visualizzato in modo diverso o non lo hai a portata di mano, puoi facilmente capirlo usando la tabella:


Brevi caratteristiche:


Esistono molti diversi schemi di connessione su Internet e tutto sembra funzionare. Il fatto è che non ci sono solo schermi diversi, ma anche due modi per collegarli: seriale e parallelo. Quando si utilizza una connessione alla porta seriale, sono necessarie solo 3 uscite del microcontrollore. Con un minimo parallelo di 13. La scelta in questo caso è ovvia, Arduino ha poche conclusioni. Per la connessione parallela, lo schema di connessione è il seguente:


Per una connessione seriale, che useremo, lo schema è il seguente:

WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5 V.
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - tramite una resistenza da 100 ohm - + 5V
20 (BLK) - GND


Per regolare il contrasto, sullo schermo dovrebbe essere presente un potenziometro. Ci sono schermi senza di essa, ma ora è una rarità:


È necessaria una resistenza da 100 ohm in modo che una tensione di 5 volt non bruci accidentalmente i diodi di retroilluminazione.


Passaggio 2 Presentare il caso.
Per il caso, prendere la scatola dal prefisso della cartuccia Sega. Se non trovi questa casella a portata di mano, puoi utilizzare un altro caso. La cosa principale è che lo schermo e l'Arduino si adattano ad esso.


Taglia la pellicola trasparente sopra la scatola in modo che non rimangano pezzi:


Quindi, usando un coltello clericale, ritaglia una finestra di dimensioni 37x69 per lo schermo.


Sul retro, lungo il bordo del taglio, incolliamo un nastro biadesivo, preferibilmente nero:


Rimuovere la carta protettiva dal nastro adesivo e incollare il nostro schermo su di esso:


Dall'esterno dovrebbe apparire così:


Sotto lo schermo, anche su nastro biadesivo, fissiamo Arduino, realizzando ritagli preliminari per la porta USB e la presa di corrente:


I ritagli per le prese Arduino devono essere eseguiti su entrambi i lati della scatola in modo che possano essere chiusi liberamente:


Passaggio 3 Sensori di temperatura.
Useremo i sensori di temperatura digitali DS18B20. Usandoli otteniamo una grande precisione di misura, l'errore non è superiore a 0,5 ° C, in un ampio intervallo di temperature -55 ... + 125 ° C. Inoltre, il sensore digitale esegue tutti i calcoli stessi e Arduino riceve semplicemente letture già pronte. Quando si collega questo sensore, non dimenticare la resistenza di pull-up, 4,7 kΩ, tra i contatti DQ e VDD. Sono anche possibili diverse opzioni di connessione. Con alimentazione esterna, a mio avviso l'opzione migliore, la useremo:


Se lo desideri, puoi utilizzare la modalità parassita:


O una migliore opzione di cibo parassita:


Con qualsiasi alimentatore, i sensori sono collegati in parallelo:


Posizioneremo il sensore di misurazione della temperatura sulla piccola scheda insieme a due pulsanti, che useremo per impostare l'ora e la data dell'orologio:


Il filo comune di entrambi i pulsanti è collegato a GND, il filo del primo pulsante è collegato ad A0, dal secondo ad A1.
Fissare su un nastro biadesivo accanto all'Arduino:


Il sensore, che dovrebbe essere posizionato fuori dalla stanza, è meglio scegliere in un alloggiamento di metallo, resistente alla polvere e all'umidità:


Calcola il filo della lunghezza richiesta in modo che il sensore possa essere appeso fuori dalla finestra, la cosa principale è che non dovrebbe essere più di 5 metri, se hai bisogno di più lunghezza, dovrai ridurre il valore della resistenza di pull-up.

Il filo proveniente dal bus dati DQ di entrambi i sensori è collegato al pin 5 di Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Passaggio 4: alimentazione.
Per l'alimentazione, è possibile utilizzare un alimentatore con una tensione da 6 a 12 volt. Alla fine del filo di alimentazione, saldare la spina adatta per la presa di alimentazione Arduino:


Oppure puoi mettere un vano batteria per quattro batterie "AAA", "mignolo" nella custodia. E collega il filo positivo dal compartimento al Vin Arduino e il meno a GND.

Passaggio 5 Preparazione dell'ambiente di programmazione.
Per prima cosa devi scaricare e installare Arduino IDE con sito ufficiale

E aggiungi anche alle due librerie necessarie per lo schizzo. OneWire - richiesto per la comunicazione con i sensori ds18b20:
onewire.rar [16.75 Kb] (download: 34)


U8glib - usato per visualizzare informazioni sullo schermo:
u8glib.rar [906.95 Kb] (download: 46)


Scarica la libreria Quindi decomprimiamo gli archivi e spostiamo il contenuto degli archivi nella cartella "librerie" situata nella cartella con l'IDE Arduino installato. Puoi anche aggiungere librerie tramite l'IDE di Arduino. Per fare ciò, senza decomprimere gli archivi, eseguire l'IDE Arduino, selezionare Schizzo - Collega libreria dal menu Schizzo. Nella parte superiore dell'elenco a discesa, seleziona la voce "Aggiungi libreria .Zip". Indichiamo la posizione degli archivi scaricati. Dopo tutti i passaggi, è necessario riavviare l'IDE di Arduino.

Passaggio 6 Modifica dello schizzo.
I sensori di temperatura funzionano utilizzando il protocollo One Wire e hanno un indirizzo univoco per ciascun dispositivo: un codice a 64 bit. Non è consigliabile aggiungere comandi di ricerca del sensore allo schizzo. Non è necessario caricare i sensori di singhiozzo Arduino ogni volta.Pertanto, prima di tutto, unendo tutto, compila lo schizzo in Arduino, situato nel menu File - Esempi - Temperatura di Dallas - OneWireSearch. Quindi eseguire Strumenti - Port Monitor. Arduino dovrebbe trovare i nostri sensori, scrivere gli indirizzi e le letture della temperatura. Questi indirizzi devono essere scritti o semplicemente copiati da qualche parte. Ora apri lo schizzo Ard_Tic_Tak_WG12864B_2_x_Term_Serial e cerca le linee:

byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // indirizzo interno
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // indirizzo del sensore esterno


Sostituiamo gli indirizzi corrispondenti alla posizione dei sensori con i nostri indirizzi.
I nostri orologi non utilizzano il modulo RTC (orologio in tempo reale), quindi è necessario regolare l'orologio. Per comodità, rimuovere il commento dalla riga (i secondi appariranno sullo schermo):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Stampa i secondi per verificare la correttezza del corso


Impostare l'ora corretta tramite il monitor della porta. Per fare ciò, apri il monitor della porta, attendi il completamento delle misurazioni iniziali della temperatura e inserisci la data e l'ora correnti nel formato "giorno, mese, anno, ore, minuti, secondi". Senza spazi, dividi i numeri con virgole o punti.

Se l'orologio ha fretta, cambia il valore in uno più grande, ti consiglio di sperimentare con incrementi di 100 unità. Se in ritardo, diminuisci il valore nella riga:

if (micros () - prevmicros & gt; 494000) {// passare a un altro per la rettifica era 500.000


Determinare empiricamente il numero al quale l'orologio procede in modo abbastanza preciso. Per determinare l'accuratezza del corso e aver bisogno di una conclusione secondi. Dopo aver calibrato con precisione il numero, i secondi possono essere commentati e quindi rimossi dallo schermo.
Riempi lo schizzo.


Funzionalità o bellezza?
Votanti totali: 19
8
8.3
7.7

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino
3 commenti
L'autore
Sfortunatamente, non conosco gli analoghi del display più economici.
E più budget è possibile sostituire questo display, hanno guardato da 500 rubli.
Per questi denyushki è possibile acquistare una stazione meteo già pronta, con un'indicazione non solo della temperatura, ma anche della pressione e dell'umidità, e con un'indicazione della direzione di variazione dei valori misurati! sorridere
Buona sera E più budget è possibile sostituire questo display, hanno guardato da 500 rubli.
Grazie!

Ti consigliamo di leggere:

Passalo per lo smartphone ...