Przejdź do głównej zawartości

Arduino Custom Data Station #1 - wysyłanie danych

· 2 min aby przeczytać
Arduino Custom Data Station #1 - wysyłanie danych

Etap #1, czyli dokonujemy pomiaru temperatury oraz wilgotności powietrza przy użyciu Arduino z czujnikiem DHT11. Odczytane dane będą przesyłane do komputera za pośrednictwem Serial Portu i prezentowane w serial monitorze.

Arduino Custom Data Station #1 - wysyłanie danych

Pierwszy etap projektu zakłada stworzenie prostego układu złożonego z Arduino oraz czujnika DHT11. Głównym zadaniem tego układu będzie przesyłanie wartości zmierzonej temperatury oraz wilgotności powietrza do komputera za pośrednictwem portu USB (Serial Communication).

Arduino Custom Data Station - schemat ideowy części sprzętowej
Arduino Custom Data Station - schemat ideowy części sprzętowej

Pomiar temperatury i wilgotności powietrza

Układ odpowiedzialny za pomiar temperatury oraz wilgotności powietrza, składa się z płytki Arduino Nano oraz popularnego czujnika DHT11, który pozwala na pomiar wilgotności oraz temperatury powietrza.

Pierwszą rzeczą jaką należy wykonać to stworzyć prosty układ do pomiaru temperatury oraz wilgotności powietrza. W tym celu wykorzystałem płytkę Arduino Nano oraz popularny czujnik DHT11, który pozwala na pomiar wilgotności oraz temperatury powietrza.

Schemat połączeniowy
Schemat połączeniowy
Schemat elektryczny
Schemat elektryczny

Kod Arduino

Do obsługi czujnika DHT11 wykorzystałem popularną bibliotekę DHT sensor library firmy Adafruit, natomiast sam kod jest trywialnie prosty, więc nie będę się tutaj zbytnio nad nim rozpisywał.

#include "DHT.h" // DHT sensor library by Adafruit (Version 1.4.0)

#define DHTPIN 15
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE, 6);

void setup() {
Serial.begin(115200);
dht.begin();
}

void loop() {
Serial.print("001|"); // device ID
Serial.print(dht.readTemperature()); // temperature
Serial.print("|"); // separator
Serial.print(dht.readHumidity()); // humidity
Serial.print("|"); // separator
Serial.print(millis()); // timestamp
Serial.println(); // endline (LF)
delay(1000);
}
Arduino Nano - pinout
Arduino Nano - pinout

Źródło: https://core-electronics.com.au/tutorials/compare-arduino-boards.html#nano

Ramka danych

Ramka z danymi wysyłana z Arduino do komputera zawiera cztery informacje:

  • identyfikator urządzenia,
  • wartość temperatury wyrażoną w stopniach celsjusza,
  • wartość wilgotności powietrza wyrażoną w procentach,
  • imestamp w milisekundach.
Struktura ramki z danymi
Struktura ramki z danymi

Identyfikator urządzenia stanowi liczba z zakresu od 000 do 999, natomiast separatorem danych jest znak kreski pionowej '|'.

Dane odczytane z Arduino
Dane odczytane z Arduino
Złożony układ
Złożony układ

Co dalej?

Kolejnym krokiem będzie stworzenie WEBowej aplikacji klienckiej, która będzie odczytywać dane wysłane przez Arduino w czasie rzeczywistym, a następnie prezentowała je w oknie przeglądarki.