Indholdsfortegnelse:
- Trin 1: Forbered Pi
- Trin 2: Tråd det hele op
- Trin 3: Test din I2C
- Trin 4: Installer MySQL og PhpMyAdmin
- Trin 5: Installer Python -moduler
- Trin 6: Kode til log til database
- Trin 7: Kode til visningstemp
- Trin 8: 3D -trykt kabinet
- Trin 9: Ting at gøre
Video: Raspberry Pi Barometer Weather Clock: 9 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
I denne instruktive vil jeg vise dig, hvordan du bygger et grundlæggende termometer / barometerur ved hjælp af en Raspberry Pi 2 med en BMP180 I2C -sensor, der vises på et Adafruit 4 -cifret 7 segment I2C display. Pi bruger også et DS3231 real -time I2C -urmodul til at holde tiden, når Pi genstartes.
Uret går gennem 4 faser i hver 5 sekunder. Først viser det temperaturen i Celsius, derefter i Fahrenheit derefter barometertrykket i kPa *(det går dette tal til venstre på grund af begrænset antal cifre) og endelig viser det en tendens til barometrisk trykændring mellem nu og gennemsnittet af foregående time.
Hvad der gør dette ur anderledes end de fleste er, at det bruger en MySQL -database på Pi til at logge data fra BMP180 hvert minut. Da det aktuelle barometriske tryk ikke er så værdifuldt som dets bevægelse op eller ned over et givet tidsrum, bruger det denne database til at beregne et gennemsnit for et timespænd mellem 2 timer og 1 time siden og sammenligner det med det aktuelle tryk. En signifikant stigning i barometrisk tryk indikerede normalt en forbedring af vejrforholdene vs et stort fald kunne advare om en forestående storm.
Uret er anbragt i et 3D -printet ABS -hus med BMP180 i en ventileret hætte på bagsiden af uret for at forhindre, at varmen, der genereres af Pi, påvirker temperaturmålingerne. Jeg leverer Autodesk 123D Design skematisk, hvis du vil udskrive din egen.
Uret forsynes med en standard USB -vægvorte og trækker i alt omkring 450 mA.
Jeg vil ikke gå ind på for mange detaljer om den grundlæggende opsætning af Pi og I2C, da dette er blevet dækket i mange andre instruktioner, som jeg vil give links til.
Trin 1: Forbered Pi
Opsæt din Raspberry Pi - Detaljer på Raspberrypi.org
- Download og installer din valgte Linux -distribution på et SD -kort - jeg brugte Raspbian
- Tilslut pi'en, og start den op
- Jeg brugte en mikro WiFi -adapter til at slutte pi'en til min router, da urhuset skjuler Ethernet -porten.
- Jeg brugte hovedløs tilstand, hvor du opretter forbindelse til pi'en ved hjælp af SSH, så alt hvad du behøver tilsluttet er strømmen.
- Konfigurer I2C på Pi - jeg fulgte disse instruktioner på Adafruit -webstedet.
Trin 2: Tråd det hele op
Alle de moduler, jeg bruger i dette projekt, er 5V -tolerante og bruger I2C, som er en 2 -leder -protokol, der bruges til IC'er til at kommunikere med hinanden, så ledningerne er ret enkle. Tilslut alle VCC til 5V, alle grunde sammen og alle SCA- og SCL -linjer sammen i henhold til skematisk. Færdigt arbejde.
Trin 3: Test din I2C
En del af I2C -installationen er at køre i2cdetect, som skal ligne det vedhæftede billede, hvis alt er forbundet korrekt.
Nedenfor er de matchende adresser
- 0x70 = 7 segment display
- 0x77 = BMP180 Termometer / barometersensor
- 0x68 = DS3231 Real Time Clock modul
- 0x57 = DS3231 ombord på EEPROM til lagring af alarmdata.
Trin 4: Installer MySQL og PhpMyAdmin
Installation af mySQL er ret ligetil, hvis du følger selvstudiet her
sudo apt-get installer mysql-server
Jeg installerede også phpMyAdmin, som er et websted, der kører på Apache, som du kan bruge til at oprette og administrere mySQL -databaser. Vejledning her
sudo apt-get install phpmyadmin
Efter installationen oprettede jeg en database kaldet BP180 ved hjælp af phpMyAdmin med strukturen ifølge billedet.
Jeg gør også brug af et python -modul kaldet mysqlDB, som du kan installere ved hjælp af
sudo apt-get install python-mysqldb
Trin 5: Installer Python -moduler
Download og installer nedenstående python -moduler, som du vil bruge til at forbinde til sensorerne.
- Adafruit_BMP085 modul
- SDL_DS3231 modul
- Adafruit 7 segment modul
Trin 6: Kode til log til database
Nedenstående kodestykke bruges til at logge temperatur og barometrisk tryk og kaldes fra et cron -script (planlagte Linux -opgaver), der kører hvert 5. minut. For at lære at bruge crond, tjek denne vejledning.
NB! Gider ikke ødelægge mine kodningsevner, jeg er ikke en udvikler, så ja, der er sandsynligvis en million bedre, hurtigere, glattere og renere måder at gøre dette på
Du vil bemærke i koden, at temperaturen sænkes med 7 grader, hvilket svarer til den varme, der genereres af Raspberry Pi, selv med BMP180 monteret på ydersiden af huset. Da jeg oprindeligt havde det inde i huset, var det cirka 15 grader varmere end omgivelsestemperaturen. Det ser ud til at være ret lineært, men jeg har ikke haft mulighed for at teste ekstremer. Feedback om dine oplevelser ville blive værdsat.
Trin 7: Kode til visningstemp
Denne kode kaldes til at cykle gennem displayet i henhold til introduktionen.
Igen, jeg er ikke en udvikler, så koden er virkelig grov, men den virker
Trin 8: 3D -trykt kabinet
Næste er designet af kabinettet. Dette var ret udfordrende, da formen er tilbøjelig til at skæve, fordi dele af den ydre skal kun er 2 mm tykke. Jeg lavede først mock -ups af Pi og alle delene og designede derefter kabinettet omkring den. Udskrivningen tog omkring 7 timer på min RapMan 3.2 (som er en temmelig langsom printer) på 0,25 lags dybde.
Den vedlagte skematik er udført i Autodesk 123D Design, som jeg synes er et fantastisk stykke gratis software.
Bemærk, at nogle af hullerne som dem, der er nødvendige for at montere Pi, ikke er i designet, da det er bedre at bore dem bagefter, hvis dit tryk vrider sig en smule. Stabil hånd en 3 mm bor er alt hvad du behøver. Marker dybden på boret med lidt malertape, så du ikke ved et uheld går lige igennem dit 7 timers print som jeg gjorde.
Trin 9: Ting at gøre
- Real-time uret var en tilføjelse, efter at kabinettet blev udskrevet for 5. gang, så det er i øjeblikket varmlimet på siden af kabinettet, hvilket ikke ser godt ud, så jeg vil gerne gøre designet igen og tilføje et sted til det.
- Lysstyrken på 7 -segmentets display er i øjeblikket indstillet til den letteste, hvilket ikke er optimalt til stærke lysforhold. Jeg vil gerne tilføje en fotomodstand til toppen af kabinettet og justere lysstyrken på 7 segmenter baseret på de omgivende lysforhold.
- Der er nogle mindre designproblemer med basens revner, som også vil blive rettet.
- Eventuelle ideer er velkomne.
Jeg håber, at du nød dette instruerbare og fandt det inspirerende nok til at få dig i gang. Ideen er at tilbyde en platform, som du kan bruge til at tilføje dine egne ideer. Hav det sjovt!
Anbefalede:
IoT Barometer: 5 trin (med billeder)
IoT Barometer: Mål og registrer temperatur og atmosfærisk tryk med dette IoT barometer. Jeg vil præsentere et IoT barometer. Det giver mulighed for at måle og gemme temperatur- og trykdata i Adafruit IoT Platform. Jeg har offentliggjort et lignende projekt, der
Raspberry Pi Internet Weather Station: 5 trin (med billeder)
Raspberry Pi Internet Weather Station: *** Opdatering *** Denne instruktion er forældet. Vejretjenesterne for vejrdataene, der bruges i denne vejledning, fungerer ikke længere. MEN der er et alternativt projekt, der stort set gør det samme (kun bedre - denne Instructa
NaTaLia Weather Station: Arduino Solar Powered Weather Station Gjorde den rigtige vej: 8 trin (med billeder)
NaTaLia Weather Station: Arduino Solar Powered Weather Station Gjorde den rigtige vej: Efter 1 års vellykket drift på 2 forskellige steder deler jeg mine solcelledrevne vejrstation projektplaner og forklarer, hvordan det udviklede sig til et system, der virkelig kan overleve over lang tid perioder fra solenergi. Hvis du følger
Arduino barometer med Nokia 5110 LCD: 4 trin
Arduino barometer med Nokia 5110 LCD: Dette er et simpelt barometer med Arduino
Nixie Clock Mood Barometer: 7 trin (med billeder)
Nixie Clock Mood Barometer: Et ubemærket ulykke ved Progress er aneroid -hjemmebarometeret. I disse dage kan du stadig finde eksempler i hjemmet til mennesker over halvfems, men millioner flere er på lossepladsen eller på ebay.I sandheden hjalp old-school barometeret mig ikke