Pico Bricks to zestaw pozwalający na zabawę mikrokontrolerem Raspberry Pico bez konieczności lutowania, czy nawet łączenia podzespołów – wszystkie są już podłączone na płytce.

Zanim rozpoczniesz…

Przed rozpoczęciem zapoznaj się z wstępną konfiguracją zestawu PicoBricks, którą znajdziesz tutaj: https://fx-team.fulara.com/migajaca-dioda-d…o-pierwsze-kroki/

Zestawy PicoBricks są dostępne m. in. tutaj:

https://botland.com.pl/producent/582-pico-bricks

Pobieranie temperatury i wyświetlanie informacji w „Serial monitor”

Na szczęście nie trzeba nic lutować, wystarczy zapoznać się z zestawem i opisem pinów. No to zaczynamy programować:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <DHT.h>

// PIN:GP11 oznacza, że sensor jest podłączony do pinu 11
// SENSOR: oznacza, że typ sensora to DHT11

#define PIN 11
#define SENSOR DHT11

DHT dht(PIN, SENSOR);

void setup() {

  Serial.begin(9600);
  dht.begin();

}

// zmienne pomocnicze, które pomogą nam przy programowaniu diody, aby wciśnięty przycisk nie zmieniał nam stanu diody
int stanPrzycisku = HIGH; // początkowe określenie stanu przycisku
int poprzedniStan = LOW; // określenie poprzedniego stanu przycisku

void loop() {

delay(2000); // odczekaj 2 sekundy pomiędzy odczytami
float temperatura = dht.readTemperature(); // pobieranie temperatury
float wilgotnosc = dht.readHumidity(); // pobieranie wilgotności
  if (isnan(temperatura) || isnan(wilgotnosc)) { // sprawdzenie - jeśli źle odczytało wartości temperatur to ma wyświetlić błąd w serial monitorze
    Serial.println("Błąd odczytu z czujnika DHT11!");
  } else { // jeśli powyższe sprawdzenie nie ukazało błędu to wyświetli nam aktualną temperature
    Serial.print("Temperatura: ");
    Serial.print(temperatura);
    Serial.print("°C, Wilgotność: ");
    Serial.print(wilgotnosc);
    Serial.println("%");
  }

}

Pobieranie temperatury i wyświetlanie informacji na wyświetlaczu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <Wire.h>

#include <Adafruit_SSD1306.h>

#include <DHT.h>

Adafruit_SSD1306 display(128, 64, &Wire, -1); // zdefiniowanie wyświetlacza

DHT dht(11, DHT11);
void setup() {
  Serial.begin(9600); // uruchomienie pomocniczego serial monitora
  // inicjalizacja ekranu OLED
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("Nie można znaleźć wyświetlacza OLED, sprawdź podłączenie!"));
    while(true);
  }
  display.display(); // wysyła dane do wyświetlacza
  delay(2000);
  display.clearDisplay(); // czyści ekran przed następnym wyświetleniem
}

// kod wygląda bardzo podobnie do wcześniejszego

void loop() {
delay(2000);
  float temperatura = dht.readTemperature();
  float wilgotnosc = dht.readHumidity();
  if (isnan(temperatura) || isnan(wilgotnosc)) {
    Serial.println("Błąd odczytu z czujnika DHT11!");
  } else {
    display.clearDisplay(); // usunięcie zawartości wyświetlacza
    display.setTextSize(2); // czcionka. Zalecany zakres: 1-2
    display.setTextColor(SSD1306_WHITE); // ustawienie koloru
    display.setCursor(0,0); // ustawienie kursora
    display.print("Temp: "); // ustawienie wartości do wyświetlenia na wyświetlaczu
    display.print(temperatura);
    display.println("C");
    display.print("Wilg: ");
    display.print(wilgotnosc);
    display.print("%");
    display.display(); // ukazanie ustawionej wartości
  }
}

Brawo! Teraz potrafisz korzystać z czujnika temperatury na dwa różne sposoby!