Cuprins:
- Pasul 1: Pregătiți Pi
- Pasul 2: conectați totul
- Pasul 3: Testați-vă I2C
- Pasul 4: Instalați MySQL și PhpMyAdmin
- Pasul 5: Instalați modulele Python
- Pasul 6: Cod pentru a vă conecta la baza de date
- Pasul 7: Cod pentru afișarea temp
- Pasul 8: Carcasă imprimată 3D
- Pasul 9: Lucruri de făcut
Video: Ceas meteorologic barometru Raspberry Pi: 9 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
În acest instructiv vă voi arăta cum să construiți un ceas de bază cu termometru / barometru folosind un Raspberry Pi 2 cu un senzor BMP180 I2C afișat pe un afișaj Adafruit cu 4 cifre cu 7 segmente I2C. Pi utilizează și un modul de ceas I2C DS3231 în timp real pentru a menține timpul la repornirea Pi.
Ceasul parcurge 4 etape timp de 5 secunde fiecare. Mai întâi arată temperatura în Celsius, apoi în Fahrenheit apoi presiunea barometrică în kPa * (merge acest număr spre stânga din cauza numărului limitat de cifre) și în cele din urmă arată o tendință de schimbare a presiunii barometrice între acum și media ora precedentă.
Ceea ce face acest ceas diferit de cel mai mult este că folosește o bază de date MySQL pe Pi pentru a înregistra date de la BMP180 în fiecare minut. Deoarece presiunea barometrică actuală nu este la fel de valoroasă ca mișcarea ei în sus sau în jos într-o anumită perioadă de timp, folosește această bază de date pentru a calcula o medie pentru o oră cuprinsă între 2 ore și 1 oră în urmă și o compară cu presiunea curentă. O creștere semnificativă a presiunii barometrice a indicat de obicei o îmbunătățire a condițiilor meteorologice față de o scădere mare care ar putea avertiza asupra unei furtuni iminente.
Ceasul este găzduit într-o carcasă din ABS imprimată 3D, cu BMP180 într-un capac ventilat pe spatele ceasului, pentru a preveni căldura generată de Pi să afecteze citirile de temperatură. Voi furniza schema Autodesk 123D Design dacă doriți să imprimați propria dvs.
Ceasul este alimentat cu un neg negru standard de perete și atrage în jur de 450 mA în total.
Nu voi intra în prea multe detalii despre configurarea de bază a Pi și I2C, deoarece acest lucru a fost acoperit în multe alte instructabile la care voi oferi linkuri.
Pasul 1: Pregătiți Pi
Configurați Raspberry Pi - Detalii la Raspberrypi.org
- Descărcați și instalați distribuția Linux selectată pe un card SD - am folosit Raspbian
- Conectați pi-ul și porniți-l
- Am folosit un adaptor micro WiFi pentru a conecta pi la router, deoarece carcasa ceasului ascunde portul Ethernet.
- Am folosit modul fără cap în care vă conectați la pi folosind SSH, deci tot ce aveți nevoie este conectat la energie.
- Configurați I2C pe Pi - Am urmat aceste instrucțiuni pe site-ul Adafruit.
Pasul 2: conectați totul
Toate modulele pe care le folosesc în acest proiect sunt 5V tolerante și folosesc I2C, care este un protocol cu 2 fire folosit pentru ca IC-urile să comunice între ele, deci cablarea este destul de simplă. Conectați toate VCC la 5V, toate bazele împreună și toate liniile SCA și SCL împreună conform schemei. Treaba făcuta.
Pasul 3: Testați-vă I2C
O parte a instalării I2C este de a rula i2cdetect care ar trebui să arate ca imaginea atașată dacă totul este conectat corect.
Mai jos sunt adresele potrivite
- 0x70 = 7 Segment Display
- 0x77 = senzor termometru / barometru BMP180
- 0x68 = DS3231 Modul Ceas în timp real
- 0x57 = DS3231 la bordul EEPROM pentru stocarea datelor de alarmă.
Pasul 4: Instalați MySQL și PhpMyAdmin
Instalarea mySQL este destul de simplă dacă urmați tutorialul de aici
sudo apt-get install mysql-server
De asemenea, am instalat phpMyAdmin, care este un site web care rulează pe Apache, pe care îl puteți utiliza pentru a crea și gestiona bazele de date mySQL. Tutorial aici
sudo apt-get install phpmyadmin
Odată instalat am configurat o bază de date numită BP180 folosind phpMyAdmin cu structura conform imaginii.
De asemenea, folosesc un modul python numit mysqlDB pe care îl puteți instala folosind
sudo apt-get install python-mysqldb
Pasul 5: Instalați modulele Python
Descărcați și instalați modulele python de mai jos pe care le veți utiliza pentru a vă conecta la senzori.
- Modulul Adafruit_BMP085
- Modul SDL_DS3231
- Modulul Adafruit 7 Segment
Pasul 6: Cod pentru a vă conecta la baza de date
Fragmentul de cod de mai jos este folosit pentru a înregistra temperatura și presiunea barometrică și este apelat dintr-un script cron (sarcini programate Linux) care rulează la fiecare 5 minute. Pentru a afla cum să utilizați crond, consultați acest tutorial.
NB! Nu vă deranjați să-mi aruncați abilitățile de codare, nu sunt dezvoltator, așa că probabil există un milion de modalități mai bune, mai rapide, mai fine, mai curate de a face acest lucru
Veți observa în cod că temperatura este scăzută cu 7 grade, ceea ce este echivalent cu căldura generată de Raspberry Pi chiar și cu BMP180 montat pe exteriorul carcasei. Când l-am avut inițial în carcasă, era cu aproximativ 15 grade mai cald decât mediul ambiant. Pare a fi destul de liniar, dar nu am avut ocazia să testez nicio extremă. Feedback-ul experiențelor dvs. ar fi apreciat.
Pasul 7: Cod pentru afișarea temp
Acest cod este chemat să parcurgă ecranul conform introducerii.
Din nou, nu sunt dezvoltator, deci codul este foarte dur, dar funcționează
Pasul 8: Carcasă imprimată 3D
Urmează proiectarea incintei. Acest lucru a fost destul de provocator, deoarece forma este predispusă la deformare, deoarece părți ale carcasei exterioare au o grosime de doar 2 mm. Am desenat mai întâi machete ale Pi-ului și ale tuturor pieselor și apoi am proiectat incinta în jurul său. Imprimarea a durat aproximativ 7 ore pe RapMan 3.2 (care este o imprimantă destul de lentă) la 0,25 adâncime de strat.
Schema atașată este realizată în Autodesk 123D Design, care cred că este o piesă fantastică de software gratuit.
Rețineți că unele dintre găurile, cum ar fi cele necesare pentru a monta Pi, nu fac parte din design, deoarece este mai bine să le găuriți ulterior, în cazul în care imprimarea dvs. se deformează puțin. Mâna constantă un burghiu de 3 mm este tot ce aveți nevoie. Marcați adâncimea bitului cu o bandă de mascare, astfel încât să nu treceți accidental direct prin imprimarea dvs. de 7 ore, așa cum am făcut-o.
Pasul 9: Lucruri de făcut
- Ceasul în timp real a fost un adaos după ce carcasa a fost tipărită pentru a cincea oară, așa că în prezent este lipită la cald pe partea laterală a carcasei, ceea ce nu arată bine, așa că aș dori să refac designul și să adaug un loc pentru acesta.
- Luminozitatea afișajului pe 7 segmente este setată în prezent la cea mai ușoară, ceea ce nu este optim pentru condiții de lumină puternică. Aș dori să adaug un rezistor foto în partea superioară a incintei și să reglez luminozitatea pe 7 segmente în funcție de condițiile de lumină ambientală.
- Există câteva probleme minore de proiectare cu cracarea bazei, care vor fi, de asemenea, remediate.
- Orice idei sunt binevenite.
Sper că ți-a plăcut acest lucru instructiv și l-ai găsit suficient de inspirat pentru a te pune în mișcare. Ideea este să oferiți o platformă pe care să o puteți utiliza pentru a adăuga propriile idei. A se distra!
Recomandat:
Barometru IoT: 5 pași (cu imagini)
Barometru IoT: Măsurați și înregistrați temperatura și presiunea atmosferică cu acest barometru IoT. Vreau să vă prezint un barometru IoT. Permite măsurarea și stocarea datelor de temperatură și presiune pe platforma IoT Adafruit. Am publicat un proiect similar care
Ceas de pensionare / Count Up / Ceas Dn: 4 pași (cu imagini)
Ceas de pensionare / Count Up / Dn Clock: Am avut câteva dintre aceste afișaje cu matrice de puncte LED 8x8 în sertar și mă gândeam ce să fac cu ele. Inspirat de alte instructabile, mi-a venit ideea să construiesc un afișaj de numărătoare inversă / în sus pentru a număra înapoi până la o dată / oră viitoare și dacă timpul țintă p
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: 10 pași (cu imagini)
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: Ți-ai dorit vreodată un ceas inteligent? Dacă da, aceasta este soluția pentru dvs.! Am creat Smart Alarm Clock, acesta este un ceas pe care îl puteți schimba ora alarmei conform site-ului web. Când alarma se declanșează, se va auzi un sunet (buzzer) și 2 lumini vor
Barometru Arduino cu LCD Nokia 5110: 4 pași
Barometru Arduino cu LCD Nokia 5110: Acesta este un barometru simplu cu Arduino
Barometru Nixie Clock Mood: 7 pași (cu imagini)
Nixie Clock Mood Barometer: Un accident neobservat al Progress este barometrul aneroid de acasă. În aceste zile, ați putea fi în continuare în măsură să găsiți exemple în casele oamenilor peste nouăzeci de ani, dar mai sunt milioane în depozit sau pe eBay. Într-adevăr, barometrul vechii școli nu m-a ajutat