Creați un monitor de temperatură Raspberry Pi utilizând un Sense HAT și afișați citirile regulate pe matricea LED-urilor sale.
Există mai multe moduri în care puteți monitoriza temperatura ambiantă folosind un computer cu o singură placă Raspberry Pi, poate ca parte a configurației unei stații meteo. Deși ați putea folosi un senzor extern conectat la pinii GPIO ai Raspberry Pi, aici vă vom explica cum să monitorizați temperatura cu un Raspberry Pi echipat cu Sense HAT.
Ce este Sense HAT?
Oficial Raspberry Pi HAT Placă suplimentară (Hardware Attached on Top) proiectată și produsă de compania Raspberry Pi, Sense HAT a fost creată inițial pentru a fi folosită de astronauții la bordul Stației Spațiale Internaționale. Din 2015, două computere Raspberry Pi echipate cu Sense HAT au fost folosite în experimente științifice concepute de școlari care au intrat în cursul de desfășurare. Astro Pi provocare Aceste două unități au fost înlocuite de atunci cu versiuni actualizate bazate pe un Raspberry Pi 4 și echipate cu o cameră de înaltă calitate.
Deși îi lipsește carcasa specială argintie concepută pentru utilizare în spațiu, placa standard Sense HAT are exact aceeași funcționalitate. Compatibil cu orice Modelul Raspberry Pi cu un antet GPIO cu 40 de pini, dispune de o serie de senzori la bord care îi permit să monitorizeze mediul înconjurător și, de asemenea, să-și detecteze propria orientare și mișcare. În plus, are o matrice LED RGB 8x8 pentru a afișa text, date și imagini. Există, de asemenea, un mini joystick cu cinci căi.
Gama completă de funcții senzoriale Sense HAT este următoarea:
- Umiditate: Un senzor STMicro HTS221 cu un interval de umiditate relativă de la 0 la 100%, plus senzor de temperatură de la 32 °F la 149 °F (0 °C la 65 °C ± 2 °C).
- Presiune barometrică: Un senzor STMicro LPS25HB cu o gamă cuprinsă între 260 și 1260 hPa, plus senzor de temperatură de la 59 °F la 104 °F (15 °C la 40 °C ±0,5 °C).
- Temperatura: Aceasta poate fi citită de la senzorul de umiditate sau presiune sau măsurată luând o medie a ambelor citiri.
- Giroscop: STMicro LSM9DS1 IMU poate măsura rotația Sense HAT în raport cu suprafața Pământului (și cât de repede se rotește).
- Accelerometru: O altă funcție a IMU, aceasta poate măsura forța de accelerație în mai multe direcții.
- Magnetometru: Prin detectarea câmpului magnetic al Pământului, IMU poate determina direcția nordului magnetic și, astfel, poate oferi o citire a busolei.
Acum că aveți informații despre ceea ce poate face acest Raspberry Pi HAT multifuncțional, este timpul să începeți proiectul.
Pasul 1: Montați Sense HAT
Pentru a conecta Sense HAT, asigurați-vă mai întâi că Raspberry Pi este oprit și deconectat de la curent. Apoi împingeți cu atenție Sense HAT (cu prelungitorul de antet negru furnizat) pe antetul GPIO cu 40 de pini al Raspberry Pi, astfel încât placa Sense HAT să fie poziționată peste placa Raspberry Pi. Asigurați-vă că toți pinii sunt aliniați corect și că ambele rânduri sunt conectate. De asemenea, puteți utiliza suporturi înșurubate pentru a ajuta la fixarea acestuia.
Puteți utiliza orice model Raspberry Pi standard care are un antet GPIO cu 40 de pini. Unul dintre limitările cheie ale unui Raspberry Pi 400, cu toate acestea, este că antetul său GPIO este situat în partea din spate a tastaturii integrate. Aceasta înseamnă că Sense HAT va fi orientat spre spate, așa că este posibil să doriți să utilizați un cablu prelungitor GPIO pentru a-l conecta.
Pasul 2: Configurați Raspberry Pi
Ca și în cazul oricărui alt proiect, ar trebui să conectați o tastatură și un mouse USB și apoi conectați-vă Raspberry Pi la un monitor sau televizor. De asemenea, ar trebui să aveți un card microSD inserat cu sistemul de operare Raspberry Pi standard - dacă nu ați făcut acest lucru deja, verificați cum se instalează un sistem de operare pe un Raspberry Pi. Apoi sunteți gata să porniți alimentarea.
Alternativ, puteți utiliza Raspberry Pi cu Sense HAT în modul fără cap, fără un monitor conectat și conectați-vă la Raspberry Pi de la distanță folosind SSH de pe alt computer sau dispozitiv. Dacă procedați astfel, nu veți putea folosi Thonny Python IDE, buy puteți încă edita programe folosind editorul de text nano și le puteți rula din linia de comandă.
Firmware-ul Sense HAT ar trebui să fie instalat implicit. Pentru a verifica din nou, deschideți o fereastră Terminal și introduceți:
sudo apt install sense-hat
Apoi, dacă pachetul tocmai a fost instalat recent, reporniți Raspberry Pi:
sudo reboot
Pasul 3: Începeți programarea în Python
În timp ce puteți utiliza Raspberry Pi Sense HAT cu limbajul de programare bazat pe blocuri Scratch, vom folosi Python pentru a citi și afișa citirile senzorilor acestuia.
Thonny IDE (mediu de dezvoltare integrat) este o modalitate bună de a face programare Python pe un Raspberry Pi, deoarece are o mulțime de funcționalități, inclusiv funcții utile de depanare. În interfața grafică desktop a sistemului de operare Raspberry Pi, accesați Meniul (pictograma zmeură din stânga sus) > Programare > Thonny IDE pentru a-l lansa.
Pasul 4: Faceți o citire a temperaturii
În fereastra principală a Thonny IDE, introduceți următoarele linii de cod:
from sense_hat import SenseHatsense = SenseHat()
sense.clear()
temp = sense.get_temperature()
print(temp)
Prima linie importă SenseHat clasa de la pălărie_sens Biblioteca Python (care este preinstalată în sistemul de operare Raspberry Pi). Acesta este apoi atribuit sens variabil. A treia linie șterge matricea LED-ului Sense HAT.
Apoi luăm citirea temperaturii și o imprimăm în zona Shell a IDE-ului Thonny. Acesta este în grade Celsius, așa că este posibil să doriți să îl convertiți mai întâi în Fahrenheit:
temp = (sense.get_temperature() * 1.8 + 32)
Citirea senzorului de temperatură va avea mai multe cifre după virgulă zecimală. Deci vom folosi rundă funcție de rotunjire la o singură zecimală:
temp = round(temp, 1)
The sense.get_temperature() Funcția citește senzorul de temperatură încorporat în senzorul de umiditate. Alternativ, puteți lua o citire a temperaturii de la senzorul de presiune cu sense.get_temperature_from_pressure() sau chiar luați ambele citiri și calculați o medie (prin adunarea lor și împărțirea la doi).
Pasul 5: Afișați temperatura pe Sense HAT
Imprimarea unei singure valori de temperatură pe Python Shell este puțin plictisitoare, așa că, în schimb, să luăm o nouă citire în mod regulat și să o arătăm pe matricea LED RGB a Sense HAT. Pentru a afișa un mesaj text care se derulează, folosim arata_mesaj funcţie. Vom folosi și a în timp ce: Adevărat buclă pentru a continua să luăm o nouă citire la fiecare 10 secunde—pentru care folosim dormi funcția de la timp bibliotecă.
Iată programul complet:
from sense_hat import SenseHat
from time import sleepsense = SenseHat()
sense.clear()
whileTrue:
temp = (sense.get_temperature() * 1.8 + 32)
temp = round(temp, 1)
message = "Temp: " + str(temp)
sense.show_message(message)
sleep (10)
Rulați acest cod și veți vedea fiecare citire nouă de temperatură derulând pe matricea LED. Încercați să suflați pe Sense HAT pentru a vedea dacă temperatura se schimbă.
Citirile de temperatură pot fi afectate de căldura transferată de la procesorul Raspberry Pi chiar dedesubt, așa că poate fi necesară o ajustare pentru a obține o cifră mai precisă. O altă soluție este să folosiți un antet de stivuire pentru a ridica Sense HAT mai sus deasupra Raspberry Pi.
Utilizați un Raspberry Pi pentru a monitoriza temperatura
Deși ați putea folosi un senzor de temperatură independent pentru acest proiect, Sense HAT facilitează monitorizarea temperaturii cu dvs. Raspberry Pi. De asemenea, îl puteți utiliza pentru a lua o serie de alte citiri ale senzorului, cum ar fi presiunea barometrică și umiditatea relativă, și le puteți afișa pe LED-ul său matrice.