Innholdsfortegnelse:
- Trinn 1: Forbered Pi
- Trinn 2: Koble det hele opp
- Trinn 3: Test din I2C
- Trinn 4: Installer MySQL og PhpMyAdmin
- Trinn 5: Installer Python -moduler
- Trinn 6: Kode for å logge til database
- Trinn 7: Kode for visningstemp
- Trinn 8: 3D -trykt kabinett
- Trinn 9: Ting å gjøre
Video: Raspberry Pi Barometer Værklokke: 9 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
I denne instruksen vil jeg vise deg hvordan du bygger et grunnleggende termometer / barometer klokke ved hjelp av en Raspberry Pi 2 med en BMP180 I2C sensor som vises på en Adafruit 4 -sifret 7 segment I2C skjerm. Pi bruker også en DS3231 sanntids I2C klokkemodul for å holde tiden når Pi startes på nytt.
Klokken går gjennom fire etapper i 5 sekunder hver. Først viser det temperaturen i Celsius, deretter i Fahrenheit deretter barometertrykket i kPa *(det går dette tallet til venstre på grunn av begrenset antall sifre) og til slutt viser det en trend med barometrisk trykkendring mellom nå og gjennomsnittet av forrige time.
Det som gjør denne klokken annerledes enn de fleste er at den bruker en MySQL -database på Pi for å logge data fra BMP180 hvert minutt. Ettersom det nåværende barometriske trykket ikke er like verdifullt som bevegelsen opp eller ned over en gitt tidsperiode, bruker den denne databasen til å beregne et gjennomsnitt for et timespenn mellom 2 timer og 1 time siden og sammenligner det med det gjeldende trykket. En betydelig økning i barometrisk trykk indikerte vanligvis en forbedring i værforholdene mot et stort fall kan advare om en forestående storm.
Klokken er plassert i et 3D -trykt ABS -hus med BMP180 i et ventilert hette på baksiden av klokken for å forhindre at varmen som genereres av Pi påvirker temperaturavlesningene. Jeg gir Autodesk 123D Design -skjema hvis du vil skrive ut din egen.
Klokken drives med en standard USB -veggvorter og trekker totalt rundt 450 mA.
Jeg vil ikke gå inn på for mange detaljer om det grunnleggende oppsettet for Pi og I2C, siden dette har blitt dekket i mange andre instrukser som jeg vil gi lenker til.
Trinn 1: Forbered Pi
Sett opp din Raspberry Pi - Detaljer på Raspberrypi.org
- Last ned og installer den valgte Linux -distribusjonen på et SD -kort - jeg brukte Raspbian
- Koble til pi og start den opp
- Jeg brukte en mikro WiFi -adapter for å koble pi -en til ruteren min da klokkehuset tilslører Ethernet -porten.
- Jeg brukte hodeløs modus der du kobler til pi ved hjelp av SSH, så alt du trenger å koble til er strømmen.
- Konfigurer I2C på Pi - jeg fulgte disse instruksjonene på Adafruit -siden.
Trinn 2: Koble det hele opp
Alle modulene jeg bruker i dette prosjektet er 5V -tolerante og bruker I2C, som er en 2 -leders protokoll som brukes for IC -er for å kommunisere med hverandre, så ledningene er ganske enkle. Koble alle VCC til 5V, alle Grounds sammen og alle SCA- og SCL -linjene sammen i henhold til skjemaet. Jobben er gjort.
Trinn 3: Test din I2C
En del av I2C -installasjonen er å kjøre i2cdetect som skal se ut som det vedlagte bildet hvis alt er koblet korrekt.
Nedenfor er matchende adresser
- 0x70 = 7 segmenters display
- 0x77 = BMP180 Termometer / barometersensor
- 0x68 = DS3231 sanntidsklokke -modul
- 0x57 = DS3231 ombord på EEPROM for lagring av alarmdata.
Trinn 4: Installer MySQL og PhpMyAdmin
Det er ganske enkelt å installere mySQL hvis du følger opplæringen her
sudo apt-get install mysql-server
Jeg installerte også phpMyAdmin som er et nettsted som kjører på Apache som du kan bruke til å opprette og administrere mySQL -databaser. Opplæring her
sudo apt-get install phpmyadmin
Etter installasjonen satte jeg opp en database som heter BP180 ved hjelp av phpMyAdmin med strukturen i henhold til bildet.
Jeg bruker også en python -modul kalt mysqlDB som du kan installere ved hjelp av
sudo apt-get install python-mysqldb
Trinn 5: Installer Python -moduler
Last ned og installer python -modulene nedenfor som du vil bruke til å koble til sensorene.
- Adafruit_BMP085 modul
- SDL_DS3231 modul
- Adafruit 7 segment modul
Trinn 6: Kode for å logge til database
Kodestykket nedenfor brukes til å logge temperatur og barometrisk trykk og kalles fra et cron -script (Linux -planlagte oppgaver) som kjøres hvert 5. minutt. For å lære hvordan du bruker crond, sjekk ut denne opplæringen.
NB! Ikke bry deg om å ødelegge kodingskunnskapene mine, jeg er ikke en utvikler, så ja, det er sannsynligvis en million bedre, raskere, jevnere og renere måter å gjøre dette på
Du vil merke i koden at temperaturen reduseres med 7 grader, noe som tilsvarer varmen som genereres av Raspberry Pi, selv med BMP180 montert på utsiden av huset. Da jeg opprinnelig hadde det inne i huset var det omtrent 15 grader varmere enn omgivelsene. Det ser ut til å være ganske lineært, men jeg har ikke hatt muligheten til å teste noen ekstremer. Tilbakemelding fra dine erfaringer vil bli verdsatt.
Trinn 7: Kode for visningstemp
Denne koden kalles for å bla gjennom displayet i henhold til introduksjonen.
Igjen, jeg er ikke en utvikler, så koden er veldig grov, men den fungerer
Trinn 8: 3D -trykt kabinett
Neste er utformingen av skapet. Dette var ganske utfordrende ettersom formen er utsatt for vridning fordi deler av det ytre skallet bare er 2 mm tykke. Jeg tegnet først mock -ups av Pi og alle delene og designet deretter kabinettet rundt den. Utskriften tok rundt 7 timer på min RapMan 3.2 (som er en ganske treg skriver) på 0,25 lags dybde.
Den vedlagte skjematikken er utført i Autodesk 123D Design som jeg synes er et fantastisk stykke gratis programvare.
Legg merke til at noen av hullene som de som trengs for å montere Pi ikke er i designet, da det er bedre å bore disse etterpå i tilfelle utskriften vrir seg litt. Stabil hånd en 3 mm bor er alt du trenger. Merk dybden på borkronen med litt maskeringstape, slik at du ikke ved et uhell går rett gjennom 7 -timers utskriften som jeg gjorde.
Trinn 9: Ting å gjøre
- Sanntidsklokken var et tillegg etter at kabinettet ble skrevet ut for femte gang, så den er for øyeblikket varmlimt på siden av kabinettet, noe som ikke ser bra ut, så jeg vil gjenta designet og legge til et sted for det.
- Lysstyrken til 7 -segmenters skjerm er for øyeblikket satt til den letteste, noe som ikke er optimalt for sterke lysforhold. Jeg vil legge til en fotomotstand på toppen av kabinettet og justere lysstyrken på 7 segmenter basert på omgivelseslysforholdene.
- Det er noen mindre designproblemer med basesprekkingen som også vil bli løst.
- Noen ideer er velkomne.
Jeg håper du likte dette instruerbare og syntes det var inspirerende nok til å komme i gang. Tanken er å tilby en plattform som du kan bruke til å legge til dine egne ideer. Ha det gøy!
Anbefalt:
Tidevann og værklokke: 9 trinn (med bilder)
Tidevann og værklokke: Selv om du kan kjøpe analoge tidevannsklokker som har en enkelt hånd som indikerer om tidevannet er høyt eller lavt eller et sted i mellom, var det jeg ønsket noe som ville fortelle meg på hvilken tid lavvann vil være. Jeg ville ha noe jeg kunne se på
Raspi-Nextion Værklokke: 7 trinn
Raspi-Nextion værklokke: Å se så mange forskjellige klokker bygget med arduino og bringebær Pi inspirerte meg. Jeg ville lage en også. Jeg begynte med å bruke en arduino mega med en ESP8266, men fant at 8266 wifi hadde for mange hikke. Jeg bestemte meg for å bruke en ekstra Pi jeg hadde (Raspb
Værklokke: 11 trinn (med bilder)
Værklokke: Oppdatering med elektrisk opplegg og Fritzing -oppleggJeg lager to premisser: Dette er min første instruks.Jeg er en uvitende italiener som ikke har studert engelsk på skolen, og derfor ba jeg om hjelp til: https: //translate.google.itStart med takk
Værklokke: 15 trinn (med bilder)
Værklokke: Flott skrivebordsklokke med dato og amp; værvisning
ESP8266 Værklokke: 6 trinn (med bilder)
ESP8266 Weather Clock: Jeg er veldig stolt av din ankomst og velkommen til deg