Legi senzorul BME280 și un ecran OLED la Raspberry Pi Pico 2 pe un breadboard, instalezi MicroPython și scrii, pas cu pas, programul care afișează temperatura, umiditatea și presiunea.
La final vei avea o stație meteo de birou: senzorul BME280 măsoară temperatura, umiditatea și presiunea, un Raspberry Pi Pico 2 le citește prin I2C, iar un ecran OLED le afișează și le împrospătează singur. Totul stă pe un breadboard — la cablaj nu se lipește nimic, firele doar se înfig.
Nu presupunem că ai mai scris MicroPython: fiecare pas arată exact ce se descarcă, ce se leagă și ce se tastează. Lista de piese de mai jos acoperă ce folosim în pași; primul pas spune cinstit ce mai trebuie de pe biroul tău.
-
Ce mai ai nevoie pe lângă lista de piese
Pe lângă produsele din listă, pregătește un computer (Windows, macOS sau Linux) cu un port USB liber. Pe el vei instala Thonny — un editor gratuit făcut exact pentru plăcile cu MicroPython.
Două lucruri de verificat înainte să pornești:
- pinii plăcii — Pico 2 în varianta standard se livrează cu pinii nelipiți. Ca să stea în breadboard, cele două bare de pini trebuie lipite (nu sunt în lista ghidului). Dacă nu ai mai lipit până acum, e un prim proiect bun de lipit — sau roagă pe cineva cu un letcon; sunt 40 de puncte simple;
- cablul — cel din listă e de date. Dacă folosești altul din sertar, să fie tot de date: multe cabluri de încărcare nu au firele de date și placa pur și simplu nu apare în Thonny.
Modulul BME280 din magazin vine cu pinii deja lipiți, deci el doar se înfige.
-
Instalează MicroPython pe Pico 2
Descarcă firmware-ul MicroPython pentru Pico 2 — fișierul .uf2 de pe pagina oficială RPI_PICO2.
Ține apăsat butonul BOOTSEL de pe placă în timp ce o conectezi la computer cu cablul micro-USB, apoi eliberează-l. Placa apare ca un stick de memorie numit RP2350. Trage fișierul .uf2 pe el — placa repornește singură și stick-ul dispare: MicroPython e instalat.
Deschide Thonny și alege, din colțul din dreapta-jos, interpretorul MicroPython (Raspberry Pi Pico). În consola din partea de jos apare promptul
>>>— placa te ascultă. Scrieprint("salut")și apasă Enter, ca să vezi bucla întreagă funcționând. -
Cablajul pe breadboard
Scoate placa din USB înainte să înfigi fire. Așază Pico 2 călare pe șanțul din mijlocul breadboard-ului, cu mufa USB spre margine, iar senzorul și ecranul în rânduri libere. Apoi leagă, cu fire tată-tată:
- 3V3(OUT) — pinul fizic 36 al plăcii — la linia roșie (+) a breadboard-ului, și un GND — pinul fizic 38 — la linia albastră (−);
- BME280: VCC la linia +, GND la linia −, SCL la GP1 (pinul fizic 2), SDA la GP0 (pinul fizic 1);
- OLED: VCC la +, GND la −, SCL tot la GP1, SDA tot la GP0 — aceleași două fire de semnal deservesc ambele module, asta e toată ideea magistralei I2C;
- pinii CSB și SDO ai senzorului rămân liberi: modulul îi ține implicit în poziția care alege I2C, la adresa 0x76.
Un truc de orientare: cu mufa USB în sus, GP0 și GP1 sunt primii doi pini din colțul din stânga-sus. Pe spatele plăcii, fiecare pin e etichetat.
-
Verifică magistrala cu i2c.scan()
Conectează placa la USB, deschide Thonny și rulează în consolă:
from machine import Pin, I2C i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000) print([hex(a) for a in i2c.scan()])Răspunsul corect este
['0x3c', '0x76']— ecranul și senzorul, fiecare cu adresa lui.- Lista e goală? Verifică liniile + și − și dacă SDA/SCL nu sunt inversate între ele — e cea mai frecventă încurcătură.
- Apare 0x77 în loc de 0x76? Modulul tău ține pinul SDO sus — nu e nicio problemă, doar notează adresa pentru pasul următor.
-
Citește senzorul BME280
Pentru BME280 folosim driverul lui Robert Hammelrath: descarcă fișierul bme280_float.py din repository-ul BME280, deschide-l în Thonny și salvează-l pe placă (File → Save as → Raspberry Pi Pico) cu numele
bme280.py.Apoi rulează:
from machine import Pin, I2C import time import bme280 i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000) senzor = bme280.BME280(i2c=i2c) # adresa implicita: 0x76 while True: temperatura, presiune, umiditate = senzor.values print(temperatura, presiune, umiditate) time.sleep(2)În consolă apar, la fiecare două secunde, cele trei mărimi gata formatate. Dacă scanarea de la pasul anterior a arătat 0x77, construiește senzorul cu
bme280.BME280(i2c=i2c, address=0x77). Oprești programul cu butonul Stop din Thonny. -
Pune totul pe ecranul OLED
Driverul ecranului se instalează direct din Thonny: Tools → Manage packages, caută
micropython-ssd1306și apasă Install — Thonny îl pune pe placă. Apoi rulează programul întreg:from machine import Pin, I2C import time import bme280 from ssd1306 import SSD1306_I2C i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000) senzor = bme280.BME280(i2c=i2c) ecran = SSD1306_I2C(128, 64, i2c) while True: temperatura, presiune, umiditate = senzor.values ecran.fill(0) ecran.text("Statie meteo", 0, 0) ecran.text(temperatura, 0, 20) ecran.text(presiune, 0, 32) ecran.text(umiditate, 0, 44) ecran.show() time.sleep(2)Ecranul se șterge și se rescrie la fiecare citire. Fontul lui înțelege doar caractere de bază — de asta scrie „Statie", fără diacritice.
-
Fă stația independentă de computer
În Thonny, salvează exact acest program pe placă cu numele
main.py. Numele e magic: MicroPython ruleazămain.pysingur, la fiecare pornire.Scoate placa din computer și alimenteaz-o din orice sursă USB — un alimentator de telefon sau un powerbank. Stația pornește și merge singură. Un detaliu cinstit despre powerbank-uri: unele se opresc singure la consum mic, așa că pentru funcționare continuă alimentatorul e alegerea sigură.
De aici poți crește proiectul în ce direcție vrei:
- presiunea afișată e cea absolută, din camera ta — buletinele meteo raportează presiunea adusă la nivelul mării, deci nu te mira că numerele diferă;
- afară, senzorul are nevoie de o carcasă ventilată care îl ferește de ploaie și de soare direct;
- scrie citirile într-un fișier CSV pe placă și ai un istoric pe care îl poți desena mai târziu.