Cuprins:

Ceas meteorologic barometru Raspberry Pi: 9 pași (cu imagini)
Ceas meteorologic barometru Raspberry Pi: 9 pași (cu imagini)

Video: Ceas meteorologic barometru Raspberry Pi: 9 pași (cu imagini)

Video: Ceas meteorologic barometru Raspberry Pi: 9 pași (cu imagini)
Video: Lesson 44: Using BMP180 Barometric Pressure Temperature Sensor | Arduino Step By Step Course 2024, Noiembrie
Anonim
Ceas Meteor Barometru Raspberry Pi
Ceas Meteor Barometru Raspberry Pi

Î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

Pregătește Pi
Pregătește Pi

Configurați Raspberry Pi - Detalii la Raspberrypi.org

  1. Descărcați și instalați distribuția Linux selectată pe un card SD - am folosit Raspbian
  2. Conectați pi-ul și porniți-l
  3. Am folosit un adaptor micro WiFi pentru a conecta pi la router, deoarece carcasa ceasului ascunde portul Ethernet.
  4. 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.
  5. Configurați I2C pe Pi - Am urmat aceste instrucțiuni pe site-ul Adafruit.

Pasul 2: conectați totul

Cablu totul
Cablu 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

Testați-vă I2C
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

  1. 0x70 = 7 Segment Display
  2. 0x77 = senzor termometru / barometru BMP180
  3. 0x68 = DS3231 Modul Ceas în timp real
  4. 0x57 = DS3231 la bordul EEPROM pentru stocarea datelor de alarmă.

Pasul 4: Instalați MySQL și PhpMyAdmin

Instalați MySQL și PhpMyAdmin
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.

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

Cod pentru afișarea temp
Cod pentru afișarea temp
Cod pentru afișarea temp
Cod pentru afișarea temp
Cod pentru afișarea temp
Cod pentru afișarea temp
Cod pentru afișarea temp
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

Carcasă imprimată 3D
Carcasă imprimată 3D
Carcasă imprimată 3D
Carcasă imprimată 3D
Carcasă imprimată 3D
Carcasă imprimată 3D
Carcasă imprimată 3D
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

Lucruri de făcut
Lucruri de făcut
  1. 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.
  2. 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ă.
  3. Există câteva probleme minore de proiectare cu cracarea bazei, care vor fi, de asemenea, remediate.
  4. 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: