hackerspace-silesia / Smogomierz

Smogly(formerly: Smogomierz) - simple and cheap PM 2.5 and PM10 sensor based on NodeMCU (ESP8266) or ESP32
Apache License 2.0
123 stars 38 forks source link

Dodatkowe czujniki - analogRead(A0) #69

Closed jakubcichocki closed 3 years ago

jakubcichocki commented 4 years ago

Witam,

potrzebuję dołożyć dodatkowe czujniki do Smogomierza - na początek dołożyłem zwykły fotorezystor aby mierzyć ilość światła naturalnego na zewnątrz.

Pod A0 podłączyłem fotorezystor - odczyt wypada zgodnie z moimi oczekiwaniami, przekształcenie wartości i wyrzucenie ich do konsoli również . Niestety wrzucenie

photo = analogRead(A0);

w loop() zatrzymuje mi resztę Smogomierza - nie generuje się web. To zapewne jakiś trywialny błąd myślowy z mojej strony - po raz pierwszy siadam do tego środowiska.

Będę wdzięczny za podpowiedź.

Jednocześnie, po uruchomieniu chętnie podeślę jakiś howto, być może ktoś będzie miał podobną potrzebę.

bfaliszek commented 4 years ago

Kod w loop() działa w Smogomierzu tak, że ciągle sprawdza czy jest jakiś klient dla serwera web. Co kilkadziesiąt sekund wykonuje jakąś inną operację. Jeśli doda się coś do samego loop(), to najprawdopodobniej będzie blokować obsługę web. Wydaje mi się, że najprościej będzie Ci dodać wykonywanie pomiarów do takeTHPMeasurements(). Będą one wykonywane wtedy kiedy pomiary temperatury/wilgotności/ciśnienia i nie będą blokować działania serwera web. https://github.com/hackerspace-silesia/Smogomierz/blob/master/Smogomierz.ino#L845

jakubcichocki commented 4 years ago

Super, działa. DziękI!

Nie jest to wielka zmiana, ale za +1 zł mamy badaną dodatkową wartość, być może dla kogoś użyteczną, stworzyć jakiś krótki opis?

bfaliszek commented 4 years ago

Możesz podesłać swój kod, to dodam go do oprogramowania Smogomierzy.

skubi23t commented 4 years ago

Jak wykorzystujesz ten fotorezystor?

jakubcichocki commented 4 years ago

Jak wykorzystujesz ten fotorezystor?

Do sterowania oświetleniem i roletami.

jakubcichocki commented 4 years ago

Wrzuciłem swoje drobne zmiany na forku https://github.com/jakubcichocki/Smogomierz/commit/5b52dab09740dc440892dc7c1be84344461c6ba8

Jednakowo daleko im do ideału, obecność czujnika jest niesterowana, a tłumaczeń brak. Dodatkowa zmiana wystawiona jest do api json i do influxa. Chciałem to dopracować jednak czasu brak a na moje potrzeby wystarczyło, więc póki co wrzucam tak. Być może komuś się przyda, lub rozbuduje bardziej.

EDIT: Dorzuciłem jeszcze fork homebridge-smogomierz wyświetlający poziom oświetlenia w homekicie. Wrzucam tutaj info gdyby ktoś szukał podobnego zestawu. https://github.com/jakubcichocki/homebridge-smogomierz

Screenshot

CoolTechProjects commented 3 years ago

Czy w ramach rozwoju pojawi się także możliwość podłączenia dodatkowego czujnika (co2) z wysyłką danych na aqi oraz inne portale? Czujnik np. https://botland.com.pl/czujniki-czystosci-powietrza/19025-ccs811-czujnik-czystosci-powietrza-eco2-tvoc-i2c-dfrobot-sen0339.html

bfaliszek commented 3 years ago

Z CCS811 mam jeden spory problem. Pomiary są tam mocno uzależnione od dobrej kalibracji, którą musi zabić użytkownik, bo każdy CCS811 różni się od siebie. IMO to zbyt duża loteria. Plus pomiar CO2 na zewnątrz nie ma specjalnie sensu. CO2 mierzysz w zamkniętych pomieszczeniach, żeby sprawdzić czy wentylacja jest ok. Smogomierz/Smogly z założenia służy do pomiarów zanieczyszczeń na zewnątrz.

CoolTechProjects commented 3 years ago

dzięki za wyjaśnienia!