Un piccolo articolo su come realizzare un termometro così carino con display e indicazione del colore. Il termometro funziona con il Raspberry Pi Zero W.
Commuta automaticamente l'elenco delle città e visualizza la temperatura sul display OLED e sulla scala LED. Puoi anche selezionare una città da visualizzare manualmente usando i pulsanti laterali. Il termometro ha una funzione di risparmio energetico e spegne i LED e l'OLED se rimane inattivo per diversi minuti e si riaccende se rileva un cambiamento significativo nella luce (controllato da un fotoresistor).
Strumenti e materiali:
-Raspberry Pi Zero;
Modulo OLED da -1,5 pollici;
- Alimentazione 5 V 2,4 A;
- Striscia LED WS2812B- 5 metri;
-Krepezh;
- circuito stampato;
-Accessori per saldatura;
- Pistola per colla;
- Colla per falegname;
-Fanera;
-Akril;
Taglio laser CNC;
Fase 1: dati meteorologici
La procedura guidata raccoglie i dati meteorologici gratuitamente con OpenWeatherMap.org. Questo sito fornisce dati meteorologici da molte grandi città in molti paesi del mondo.
Per prima cosa devi registrarti su OpenWeatherMap.org.
Quindi copia la chiave API per un uso successivo.
Quindi, scarica, decomprimi e apri il file city.list.json.gz.
Seleziona le città desiderate e copia i loro identificatori.
city.list.json.gz
Passaggio due: configurare R Pi e codice
Innanzitutto, la procedura guidata ha collegato il display a Raspberry e ha installato le librerie necessarie per OLED, come descritto dal produttore qui.
Successivamente, è necessario assicurarsi che R Pi sia connesso a Internet.
1. Abilitare la funzione I2C e SPI in raspi-config nella sezione "Opzioni di interfaccia". Esci e ricarica il programma.
2. Eseguire nuovamente per aggiornare:
sudo apt-get update
3. Eseguire i seguenti comandi per installare le librerie richieste:
sudo apt-get install python-dev
sudo apt-get install python-smbus
sudo apt-get install python-serial
sudo apt-get install python-imaging
4. Eseguire il comando seguente per aprire il file di configurazione:
sudo nano / etc / modules
Assicurarsi che le seguenti due righe siano nel file di configurazione, quindi uscire e riavviare:
i2c-bcm2708
I2C-DEV
5 corsa:
git clone https: / /github.com/Anders644PI/1.5inch-OLED-with-RPi .git
6. Vai alla nuova cartella e decomprimi RPi_GPIO-0_6_5.zip:
decomprimere RPi_GPIO-0_6_5.zip
Esegui per installare le librerie:
cd RPi_GPIO-0_6_5 sudo python setup.py install
7. Ritorna alla cartella principale:
cd /home/pi/1.5inch-OLED-with-RPi/
o
CD
spidev-3_2.zip.
8. Quindi decomprimere Pi.zip:
decomprimi cablaggioPi cd cablaggioPi
Esegui i comandi:
chmod 777 build ./build
Verifica installazione:
gpio –v
9. Tornare alla cartella principale e decomprimere bcm2835-1_45.zip
decomprimere bcm2835-1_45.zip
cd bcm2835-1_45
10. Esegui:
./configure
make
sudo make check
sudo make install
11. Torna a /home/pi/1.5inch-OLED-with-RPi/ e corri per controllare il display:
cd / Demo_Code / Python /
sudo python main.py
La procedura guidata installa quindi le librerie per la striscia LED WS2812B, di seguito questa guida.
Successivamente, è necessario scrivere e scaricare il codice. Il codice può essere scaricato qui.
Passaggio tre: configurare l'API Meteo
1. Vai a LED_Thermometer_Code_and_OLED_driver:
cd LED_Thermometer_Code_and_OLED_driver
2. Quindi aprire Official_Digital_LED_Thermometer_v1-0.py:
nano Official_Digital_LED_Thermometer_v1-0.py
Quindi scorri verso il basso e modifica la chiave API in API da openweathermap.org, come mostrato nella figura sopra. Modificare anche gli identificatori di città e i nomi delle città in base alla posizione desiderata.
Quarto passaggio: PCB
Successivamente, il maestro ha progettato e ordinato un circuito stampato.
Fase cinque: taglio laser + assemblaggio
Quindi il maestro ha progettato e ritagliato la cassa in compensato e il diffusore in acrilico.
Successivamente, la procedura guidata è stata installata elettronica e striscia LED nella custodia. Montato il caso.
I pulsanti sono stati stampati dal master su una stampante 3D.
Tutti i file possono essere trovati e scaricati all'indirizzo GitHub.
È tutto pronto.