• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
PMS3003 - czujnik pyłu i suma kontrolna
#1
Cześć!

  Kupiłem PMS3003, podpiąłem akurat do ESP32, nie Arduino, ale to bez znaczenia. Chciałem zrobić coś na bazie tego  projektu https://mikrokontroler.pl/2017/06/14/pro...i-arduino/

Tam jest opis ramki, ale u mnie nie zgadzało się, więc szperałem. W końcu znalazłem to https://how2electronics.com/interfacing-...r-arduino/ I zgadza się o tyle, że ja też mam jako rozmiar ramki zwracane 0x20. Ale niestety nie zgadza się suma kontrolna.

Wyniki z kolejnych pomiarów też skaczą od czapy (czasem się trzymają, czasem skaczą).

No i teraz zastanawiam się, czy to czujnik jest uszkodzony czy coś źle robię.

Pozdrawiam,
Marcin

Kod:
11:10:48 -> ---------------------------------------
11:10:48 -> Concentration Units (standard)
11:10:48 -> PM 1.0: 9        PM 2.5: 12        PM 10: 12
11:10:48 -> ---------------------------------------
11:10:48 -> Concentration Units (environmental)
11:10:48 -> PM 1.0: 519        PM 2.5: 65535        PM 10: 65535
11:10:48 -> ---------------------------------------
11:10:49 -> .......Checksum failure
11:10:57 ->
11:10:57 -> ---------------------------------------
11:10:57 -> Concentration Units (standard)
11:10:57 -> PM 1.0: 233        PM 2.5: 524        PM 10: 12
11:10:57 -> ---------------------------------------
11:10:58 -> Concentration Units (environmental)
11:10:58 -> PM 1.0: 519        PM 2.5: 2        PM 10: 38656
11:10:58 -> ---------------------------------------
11:10:59 -> .................................Checksum failure
11:11:38 ->
11:11:38 -> ---------------------------------------
11:11:38 -> Concentration Units (standard)
11:11:38 -> PM 1.0: 9        PM 2.5: 12        PM 10: 252
11:11:38 -> ---------------------------------------
11:11:38 -> Concentration Units (environmental)
11:11:39 -> PM 1.0: 8223        PM 2.5: 663        PM 10: 2
11:11:39 -> ---------------------------------------
11:11:40 -> ............................................Checksum failure
11:12:32 ->
11:12:32 -> ---------------------------------------
11:12:33 -> Concentration Units (standard)
11:12:33 -> PM 1.0: 265        PM 2.5: 12        PM 10: 12
11:12:33 -> ---------------------------------------
11:12:33 -> Concentration Units (environmental)
11:12:33 -> PM 1.0: 500        PM 2.5: 2        PM 10: 38656
11:12:33 -> ---------------------------------------
11:12:34 -> ............................................Checksum failure
11:13:27 ->
11:13:27 -> ---------------------------------------
11:13:27 -> Concentration Units (standard)
11:13:27 -> PM 1.0: 8        PM 2.5: 11        PM 10: 11
11:13:27 -> ---------------------------------------
11:13:27 -> Concentration Units (environmental)
11:13:27 -> PM 1.0: 8        PM 2.5: 203        PM 10: 16665
11:13:27 -> ---------------------------------------
11:13:28 -> .Checksum failure
11:13:29 ->
11:13:29 -> ---------------------------------------
11:13:29 -> Concentration Units (standard)
11:13:29 -> PM 1.0: 65346        PM 2.5: 65535        PM 10: 65534
11:13:29 -> ---------------------------------------
11:13:29 -> Concentration Units (environmental)
11:13:29 -> PM 1.0: 65534        PM 2.5: 65535        PM 10: 65535
11:13:29 -> ---------------------------------------
11:13:31 -> ................Checksum failure
11:13:50 ->
11:13:50 -> ---------------------------------------
11:13:50 -> Concentration Units (standard)
11:13:50 -> PM 1.0: 65532        PM 2.5: 65535        PM 10: 65535
11:13:50 -> ---------------------------------------
11:13:50 -> Concentration Units (environmental)
11:13:50 -> PM 1.0: 65535        PM 2.5: 65535        PM 10: 65346
11:13:50 -> ---------------------------------------
11:13:51 -> ....Checksum failure
11:13:56 ->
11:13:56 -> ---------------------------------------
11:13:56 -> Concentration Units (standard)
11:13:56 -> PM 1.0: 231        PM 2.5: 9        PM 10: 10
11:13:56 -> ---------------------------------------
11:13:56 -> Concentration Units (environmental)
11:13:56 -> PM 1.0: 486        PM 2.5: 2        PM 10: 38656
11:13:56 -> ---------------------------------------
11:13:57 -> ........................................
 
Odpowiedź
#2
A nie możesz użyć drugiego przykładu?? usunąć ustawienie kursora a zamiast lcd dac serial
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#3
(16-08-2021, 22:57)Jarewa0606 napisał(a): A nie możesz użyć drugiego przykładu?? usunąć ustawienie kursora a zamiast lcd dac serial

  Nie rozumiem, jakiego "drugiego przykładu"?

Marcin
 
Odpowiedź
#4
W linku ci podałeś są dwa przykłady, jeden co wykorzystałeś drugi dla lcd.. W tym że pierwszy sam dekoduje dane a drugi korzysta z biblioteki
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#5
(17-08-2021, 12:39)Jarewa0606 napisał(a): W linku ci podałeś są dwa przykłady, jeden co wykorzystałeś drugi dla lcd.. W tym że pierwszy sam dekoduje dane a drugi korzysta z biblioteki

Obydwa dekodują same. Różnice są takie, że zakładają różne rozmiary ramki (czyli przesyłany zestaw danych). Na początku są dwa bajty 0x42 i 0x4d. Potem długość ramki, potem dane, na końcu suma kontrolna.

Tu https://mikrokontroler.pl/2017/06/14/pro...i-arduino/ podają, że długość to 2x9+2, czyli 20 (0x14), u mnie było 0x20 czyli 32. Długość ramki jest tylko po to, żeby wiedzieć, które bajty są kontrolne, bo użyteczne dane są w tym samym miejscu.

Tak czy inaczej - suma kontrolna się nie zgadza (ale to może nie jest takie ważne), tylko że wskazania skaczą, co sugeruje, ze rzeczywiście coś jest nie tak. Bo przecież w stałych warunkach kolejne pomiary powinny być podobne.

Marcin
 
Odpowiedź
#6
Cześć!

  Zrobiłem sobie zrzut danych i widać, że po prostu są błędy transmisji. Kabla na lepszy nie zmienię, bo to złącze jest nietypowe, a kabelki bardzo cienkie, że nie chce mi się bawić w lutowanie. Tzn. lutowanie nie jest problemem, ale ściąganie izolacji z takich cienkich zwykle kończy się usunięciem kilku drucików z przewodu i robi się lipa.

 Chyba jedyne co mogę, to napisać algorytm, który będzie brał 10  kolejnych wyników, usuwał te, które wyglądają bez sensu i zostawiał średnią.

Pozdrawiam,
Marcin
 
Odpowiedź
#7
Faktycznie pomiary wyglądają absurdalnie. Na takich długościach jak są standardowe kabelki do czujników (5-10cm) nie powinno być żadnych błędów. Kupuj co najmniej 3 a chociaż 2 czujniki jak robisz testy. W PL zawsze można zwrócić jak czujnik zachowuje się dziwnie i nie wiesz czy to wina Twojego programu czy czujnika, w plecy jest się tylko koszt wysyłki.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości