Cum să utilizați un Raspberry Pi pentru a monitoriza temperaturile cu un Sense HAT

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?

Credit imagine: Raspberry Pi

O placă suplimentară oficială Raspberry Pi HAT (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.

Credit imagine: Raspberry Pi

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 model Raspberry Pi cu un antet GPIO cu 40 de pini, are 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 de 8×8 pentru a afișa text, date și imagini. Există și 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 poate oferi astfel o citire a busolei.
  Accesați toate aplicațiile Google din Gmail cu IntegratedInbox pentru Firefox

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. Cu toate acestea, una dintre limitările cheie ale unui Raspberry Pi 400 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 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 să instalați 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 headless, fără un monitor conectat și vă puteți conecta 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 edita în continuare programe folosind editorul de text nano și le puteți rula din linia de comandă.

  Virtru vă permite să trimiteți e-mailuri securizate din Gmail, Outlook și Yahoo Mail

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 desktop a sistemului de operare Raspberry Pi, accesați Meniu (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 SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

Prima linie importă clasa SenseHat din biblioteca sense_hat Python (care este preinstalată în sistemul de operare Raspberry Pi). Aceasta este apoi atribuită variabilei de sens. 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 funcția de rotunjire pentru a o rotunji la o singură zecimală:

 temp = round(temp, 1) 

Funcția sense.get_temperature() 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 să luați ambele citiri și să calculați o medie medie (prin adăugarea lor și împărțirea la doi).

  Cum să anulați calitatea de membru VSCO

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 funcția show_message. Vom folosi, de asemenea, un timp: Bucla adevărată pentru a continua să luăm o nouă citire la fiecare 10 secunde – pentru care folosim funcția de somn din biblioteca de timp.

Iată programul complet:

 from sense_hat import SenseHat
from time import sleep

sense = SenseHat()
sense.clear()

while True:
 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 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 pentru a le afișa pe matricea LED.