Innholdsfortegnelse:

Raspberry Pi Barometer Værklokke: 9 trinn (med bilder)
Raspberry Pi Barometer Værklokke: 9 trinn (med bilder)

Video: Raspberry Pi Barometer Værklokke: 9 trinn (med bilder)

Video: Raspberry Pi Barometer Værklokke: 9 trinn (med bilder)
Video: Raspberry Pi: Use a BMP180 Sensor to display Temp and Barometric Pressure 2024, September
Anonim
Bringebær Pi Barometer Værklokke
Bringebær Pi Barometer Værklokke

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

Forbered Pi
Forbered Pi

Sett opp din Raspberry Pi - Detaljer på Raspberrypi.org

  1. Last ned og installer den valgte Linux -distribusjonen på et SD -kort - jeg brukte Raspbian
  2. Koble til pi og start den opp
  3. Jeg brukte en mikro WiFi -adapter for å koble pi -en til ruteren min da klokkehuset tilslører Ethernet -porten.
  4. Jeg brukte hodeløs modus der du kobler til pi ved hjelp av SSH, så alt du trenger å koble til er strømmen.
  5. Konfigurer I2C på Pi - jeg fulgte disse instruksjonene på Adafruit -siden.

Trinn 2: Koble det hele opp

Tråd alt opp
Tråd alt 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

Test din I2C
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

  1. 0x70 = 7 segmenters display
  2. 0x77 = BMP180 Termometer / barometersensor
  3. 0x68 = DS3231 sanntidsklokke -modul
  4. 0x57 = DS3231 ombord på EEPROM for lagring av alarmdata.

Trinn 4: Installer MySQL og PhpMyAdmin

Installer MySQL og PhpMyAdmin
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.

  1. Adafruit_BMP085 modul
  2. SDL_DS3231 modul
  3. 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

Kode for visningstemp
Kode for visningstemp
Kode til visningstemp
Kode til visningstemp
Kode for visningstemp
Kode for visningstemp
Kode for visningstemp
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

3D -trykt kabinett
3D -trykt kabinett
3D -trykt kabinett
3D -trykt kabinett
3D -trykt kabinett
3D -trykt kabinett
3D -trykt kabinett
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

Ting å gjøre
Ting å gjøre
  1. 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.
  2. 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.
  3. Det er noen mindre designproblemer med basesprekkingen som også vil bli løst.
  4. 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: