Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Værdata
- Trinn 2: Konfigurere RPi og skrive koden
- Trinn 3: Konfigurering av Weather API
- Trinn 4: Tilpasset PCB
Video: Digitalt RPi LED -termometer: 6 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Raspbian OSLær hvordan jeg lagde dette digitale LED -termometeret, med en Raspberry Pi Zero W, LED -stripe, en OLED -skjerm og en tilpasset PCB.
Den sykler automatisk gjennom en liste over byer, og viser temperaturen på OLED -displayet og lysdiodene. Men du kan også velge en by manuelt med knappene på siden. På toppen av det vil den slå av lysdiodene og OLED -en, hvis den har vært inaktiv i noen minutter, og den vil slås på igjen hvis den oppdager en betydelig lysendring (kontrollert av en LDR).
Rekvisita
- Et Raspberry Pi Zero W og SD-kort med Raspbian OS
- En 1,5 tommers OLED -modul fra Waveshare
- En 5V 2.4A strømforsyning for Raspberry Pi
- En 5m WS2812B LED -stripe, 30 lysdioder/m
- Skruer, skiver, bolter og distanser.
- En tilpasset PCB, med knapper, en bryter, en ldr, pin-headers og mer
- Loddejern og loddetinn
- Varmt lim
- Trelim
- 4 mm og 6 mm kryssfiner
- 3 mm hvit akryl
Trinn 1: Værdata
Takk til StuffWithKirby for koden hans for å lese JSON -værdata i python.
Jeg samler værdataene gratis fra OpenWeatherMap.org, hvor de leverer værdata fra mange av de større byene, i mange land.
1. Start med å opprette en GRATIS konto på OpenWeatherMap.org.
2. Kopier deretter api-nøkkelen din for senere bruk.
3. Last ned, pakk ut og åpne city.list.json.gz-filen, og søk etter byene du vil vise, og kopier by-ID-ene for senere.
Trinn 2: Konfigurere RPi og skrive koden
Først koblet jeg OLED til Pi, og installerte de nødvendige bibliotekene for OLED, som beskrevet av produsenten, her.
Sørg for at RPi er koblet til internett
1. Aktiver I2C- og SPI-funksjonen i raspi-config under Grensesnittalternativer. Avslutt og start på nytt.
2. Kjør dette for å oppdatere:
sudo apt-get oppdatering
3. Kjør følgende kommandoer for å installere de nødvendige bibliotekene:
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. Kjør følgende kommando for å åpne konfigurasjonsfilen:
sudo nano /etc /modules
Sørg for at følgende to linjer er i konfigurasjonsfilen, og avslutt og start på nytt:
i2c-bcm2708
i2c-dev
5. Kjør nå dette for å klone min GitHub -repo:
git-klon
6. Gå inn i den nye mappen, og pakk ut RPi_GPIO-0_6_5.zip:
pakke ut RPi_GPIO-0_6_5.zip
Kjør dette for å installere biblioteket:
cd RPi_GPIO-0_6_5
sudo python setup.py installere
7. Gå tilbake til hovedmappen ved å skrive ved å skrive:
cd /home/pi/1.5inch-OLED-with-RPi/
Eller
cd..
Gjør deretter noen med spidev-3_2.zip.
8. Pakk deretter ut wiringPi.zip:
pakke ut ledningerPi
cd -ledningerPi
Og kjør disse kommandoene:
chmod 777 bygge
./bygge
Kontroller installasjonen med:
gpio –v
9. Gå tilbake til hovedmappen, og pakk ut bcm2835-1_45.zip
pakke ut bcm2835-1_45.zip
cd bcm2835-1_45
10. Kjør deretter dette for å installere biblioteket:
./konfigurasjon
lage sudo gjør sjekk sudo gjør install
11. Gå igjen til /home/pi/1.5inch-OLED-with-RPi/, og kjør dette for å teste OLED:
cd/Demo_Code/Python/
sudo python main.py
Da måtte jeg også installere bibliotekene for WS2812B LED-stripe, etter denne veiledningen.
Etter det var det bare å skrive koden, som tok omtrent et par måneder fra start til slutt, arbeidet med det av og på. Koden min finner du på min GitHub her.
Trinn 3: Konfigurering av Weather API
1. Cd til LED_Thermometer_Code_and_OLED_driver:
cd LED_Thermometer_Code_and_OLED_driver
2. Åpne deretter Official_Digital_LED_Thermometer_v1-0.py:
nano Official_Digital_LED_Thermometer_v1-0.py
Rull deretter ned og rediger api-nøkkelen til api-nøkkelen din fra openweathermap.org, som vist på bildet ovenfor. Endre også by-ID-er og bynavn til ønsket sted.
Trinn 4: Tilpasset PCB
Andre pris i Raspberry Pi Contest 2020
Anbefalt:
Digitalt nivå med krysslinjelaser: 15 trinn (med bilder)
Digitalt nivå med krysslinjelaser: Hei alle sammen, i dag skal jeg vise deg hvordan du lager et digitalt nivå med valgfri integrert krysslinjelaser. For omtrent et år siden laget jeg et digitalt multiverktøy. Selv om verktøyet har mange forskjellige moduser, er det vanligste og mest nyttige for meg
MCP41HVX1 digitalt potensiometer for Arduino: 10 trinn (med bilder)
MCP41HVX1 digitalt potensiometer for Arduino: MCP41HVX1 familien av digitale potensiometre (aka DigiPots) er enheter som etterligner funksjonen til et analogt potensiometer og styres gjennom SPI. Et eksempel kan være å bytte volumknappen på stereoanlegget med en DigiPot som er
Alt i ett digitalt kronometer (klokke, timer, alarm, temperatur): 10 trinn (med bilder)
Alt i ett digitalt kronometer (Klokke, Timer, Alarm, Temperatur): Vi planla å lage en Timer for en annen konkurranse, men senere implementerte vi også en klokke (uten RTC). Da vi kom inn i programmeringen, ble vi interessert i å bruke flere funksjoner på enheten og endte opp med å legge til DS3231 RTC, som
Generativt design - Evolusjon av et digitalt bonsai -tre: 15 trinn (med bilder)
Generative Design - Evolution of a Digital Bonsai Tree: Jeg begynte å jobbe med forskningsgruppen på Autodesk med Dreamcatcher for omtrent 2 år siden. På den tiden brukte jeg den til å designe romfartøy. Siden den gangen har jeg lært å elske dette verktøyet, ettersom det lar meg utforske tusenvis av design, en
DigiLevel - et digitalt nivå med to akser: 13 trinn (med bilder)
DigiLevel - et digitalt nivå med to akser: Inspirasjonen for denne instruerbare er DIY Digital Spirit Level funnet her av GreatScottLab. Jeg likte dette designet, men ønsket en større skjerm med et mer grafisk grensesnitt. Jeg ønsket også bedre monteringsalternativer for elektronikken i kassen