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!