Odczyt pomiarów czujnika temperatury w systemie Windows

Witajcie!

Jeśli chcecie zbudować termometr na bazie Arduino ale nie macie wyświetlacza, a chcielibyście odczytywać pomiary w nieco wygodniejszy sposób niż przez Serial Monitor, przygotowaliśmy dla Was aplikację dla systemu Windows.


Aby z niej skorzystać musimy zaprogramować Arduino tak, aby wysyłało odczytane wartości w odpowiednim formacie. Możecie użyć dowolnego czujnika jednak dla przykładu wykorzystamy moduł DHT.

Ze względu na to, że program umożliwia odczyt zarówno temperatury jak i wilgotności konieczne jest oddzielenie tych wartości. W tym celu wysyłając odczyt portem szeregowym należy po każdej wartości umieścić dwukropek i cały ciąg wysłać przy użyciu komendy Serial.println() .

Przykładowo jeśli temperatura wyniesie 22.5 °C a wilgotność 45%, Arduino musi wysłać ciąg: „22.50:45.00:”.

Poniżej przedstawiamy jak należy zaprogramować Arduino aby użyć naszej aplikacji do odczytu temperatury i wilgotności na ekranie komputera.

Pobieramy poniższe biblioteki klikając na każdej ze stron zielony przycisk „Clone or download” a następnie „Download ZIP”. Następnie uruchamiamy środowisko Arduino IDE, z górnego menu wybieramy Sketch/Include library/Add .ZIP library…, wskazujemy lokalizację pobranego pliku .zip i klikamy „Open”. W analogiczny sposób instalujemy drugą bibliotekę.

Następnie kompilujemy i uploadujemy poniższy kod do Arduino. Pamiętajcie, że prędkość transmisji musi być ustawiona na 9600 bps.

#include "DHT.h"

#define DHTPIN 2 // pin danych czujnika DHT
#define DHTTYPE DHT22 // typ czujnika DHT

DHT dht(DHTPIN, DHTTYPE);
String data; // ciąg, który wyślemy przez Serial Port.
String t; // zmienna temperatury
String h; // zmienna wilgotności

void setup() {
  Serial.begin(9600); // Aby aplikacja Learnduino Termometr działała poprawnie musimy ustawić szybkość 9600.
  dht.begin();
}

void loop() {
  delay(500);

  // Zapisujemy odczyty czujnika do zmiennych
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

  // Konwertujemy zmienne zmiennoprzecinkowe na typ String dzięki czemu będziemy mogli dodać niezbędne separatory.
  t = String(temperature);
  h = String(humidity);

  // Łączymy nasze odczyty w sposób czytelny dla aplikacji dodając dwukropek po każdej wartości.
  data = t+":"+h+":";  

  // Wysyłamy dane przez port szeregowy.
  Serial.println(data); 
}

 

Czas na uruchomienie aplikacji Learnduino Termometr 🙂

Po uruchomieniu programu wybieramy port, do którego podłączone jest Arduino. Jeśli macie dostępnych wiele portów możecie odnaleźć właściwy korzystając z Menagera Urządzeń w systemie Windows. Aby to zrobić należy kliknąć prawym przyciskiem myszy na ikonę „Mój komputer”, z menu rozwijanego wybrać pozycję „Właściwości”, a następnie „Menadżer urządzeń”. Odpowiedni port bezbłędnie zidentyfikujemy poprzez odłączenie i ponowne podłączenie Adruino do portu USB.

Po wybraniu portu COM w programie Learnduino Termometr klikamy przycisk „Połącz”, a odczyty pojawią się poniżej.

 

Dla Learnduino.pl,
Wojciech Jasnos