[PROJEKT] Czujnik pyłu PMS3003 i Arduino

Mając przygotowany i połączony sprzęt można przejść do oprogramowania Arduino (przygotowany program dla Arduino można pobrać na końcu artykułu). Na początek należy wskazać, z których linii korzysta wyświetlacz. Konieczne jest również zadeklarowanie niezbędnych zmiennych.

Następnie potrzebne będą funkcje, które z podanego bufora wydobędą i skonwertują potrzebne dane. Tą rolę pełnią: int wartoscPM25 (unsigned char *buf) i int wartoscPM10 (unsigned char *buf). Argumentem obu funkcji jest bufor, w którym znajduje się ramka przesłana przez czujnik, a wartościami – współczynniki odpowiednio PM2,5 i PM10.

Przydatna będzie funkcja, która sprawdzi czy dane zostały odebrane poprawnie. Taką rolę pełni funkcja bool sprawdzLancuch(unsigned char *buf, int dlugosc), która sprawdza czy suma pierwszych 22 bajtów jest równa liczbie zapisanej w bajtach 23 i 24. Argumentami wejściowymi są w tym przypadku bufor oraz jego długość.

W funkcji setup() inicjalizujemy transmisję szeregową oraz ekran LCD.

W funkcji loop() odbywa się transmisja oraz wyświetlanie. Warto zauważyć, że aktualizacja wartości PM2,5 i PM10 odbędzie się tylko wtedy, gdy dwa pierwsze bajty oraz suma kontrolna zgadzają się z protokołem. Następnie dane zapisywane są do tablic znaków linia1 i linia 2 i wyświetlane na ekranie.

Działanie programu zostało przedstawione w poniższym filmie:

 

Do pobrania

O autorze