Wysyłanie danych pomiarowych do Luftdaten

#1

Hej,

chcę dodać możliwość wysyłania danych pomiarowych z moich mierników smogu(projekt Smogomierz - https://github.com/hackerspace-silesia/Smogomierz) do bazy danych luftdaten. Teoretycznie robię takiego JSONa jaki jest opisany tutaj - https://github.com/opendata-stuttgart/meta/wiki/APIs?fbclid=IwAR1zHCEy3g3dza5Uy3M6CK52OEm-oZiblfhgJQpKcC_VbXWUaf6URJJ0_f8#api-luftdateninfo - ale coś nie działa.
Chciałem zapytać czy ktoś zna jakiś inny opis, albo ma przykład takiego JSONa(najlepiej dla PMS i BME280).
Dodatkowo mam pytanie, czym różni się https://api.luftdaten.info/v1/push-sensor-data/ od https://api-rrd.madavi.de/data.php ? Chciałbym, aby moje mierniki mogły się pojawić na mapie luftdaten, czy muszę wysyłać dane w oba miejsca, czy wystarczy tylko do api.luftdaten.info?

Link do mojego kodu do wysyłania danych: https://pastebin.com/Pi6yYrz4
Przykładowy JSON z danymi z BME280: https://pastebin.com/JMhQJ7CK

#2

Może to głupie pytanie ale czy zgłosiłeś swój czujnik do mapy luftdaten ?

#3

Przez formularz na dole tej strony: https://luftdaten.info/en/construction-manual/#feinstaubsensor-konfiguration
Dostałem też maila z info, że został dodany.

#4

Na jakiej podstawie twierdzisz, że coś nie działa? Skoro dostałeś maila potwierdzającego dodanie czujnika to… chyba działa :stuck_out_tongue:

hmm, z ciekawości: ile czekałeś na dodanie czukjnika do Lufta?

#5

Przy okazji tematu związanego z luftdaten, mam pytanie, jak długo trwa rejestracja czujnika? Napisałem wiadomość z około 2 tygodnie temu i do dziś nie widać czujnika na mapie, nie otrzymałem również żadnej odpowiedzi. Może trzeba jeszcze raz napisać?

#6

Nie ma mojego punku na mapie. Na http://api.luftdaten.info/v1/sensor/{IDSensora}/ również nie pojawiają się moje dane.

#7

Zanim dostałem maila z potwierdzeniem, minęły jakieś 3 tygodnie od czasu wypełnienia formularza na stronie https://luftdaten.info/en/construction-manual/#feinstaubsensor-konfiguration

#8

Szkoda, że tyle to trwa, nie pozostaje nic innego jak czekać dalej.

Odnośnie tematu, najlepszy przykład możesz zdobyć z softu luftdaten, to znaczy, uruchomić debugowanie i w nim pokaże się json przy wysyłaniu danych. Przykład:

https://paste.bytespeicher.org/fork/8pyf7qek6co5

Chyba widzę błąd. Być może trzeba zmienić value_type z np. temperature na BME280_temperature i analogicznie pozostałe, a także dodać apostrofy do wartości, np:

{
 "value_type":"BME280_temperature",
 "value":"23.64"

},

1 Like
#9

Wielkie dzięki. W opisie na https://github.com/opendata-stuttgart/meta/wiki/APIs?fbclid=IwAR1zHCEy3g3dza5Uy3M6CK52OEm-oZiblfhgJQpKcC_VbXWUaf6URJJ0_f8#api-luftdateninfo na którym bazowałem, nie było nic o tym, że “value_type” ma być “BME280_temperature” a nie po prostu “temperature”. Na madavi.de zaczęły się pojawiać moje dane i wykresy do nich, więc jest ok: https://www.madavi.de/sensor/graph.php?sensor=esp8266-4327815-pms

#10

Hej, na zdjęciach repozytorium projektu https://github.com/hackerspace-silesia/Smogomierz widać fajną obudowę - jaki koszt i gdzie można je zamówić? No i koniecznie pochwal się jak wygląda zainstalowany zestaw na https://forum.kodujdlapolski.pl/t/obudowa-czujnika-smogu/

#11

Botland sprzedaje gotowe zestawy dla moich mierników: https://botland.com.pl/pl/czujniki-czystosci-powietrza/13434-zestaw-diy-do-budowy-miernika-smogu-czujnik-czystosci-powietrza-pm25-i-pm10.html
sama obudowa to puszka hermetyczna IP56 120x80x50mm np. taka: https://allegro.pl/oferta/puszka-hermetyczna-ip56-120x80x50mm-przezroczysta-6661288346
Minusem tego rozwiązania jest to, że trzeba w niej zrobić otwory wentylacyjne. Przyklejam na nie kratki, żeby nie dostała się do środka woda. Kratki drukuję na drukarce 3D. W Repo na githubie jest .stl do takiej kratki: https://github.com/hackerspace-silesia/Smogomierz/blob/master/instrukcje/80x80x40mm.stl

#12

Wysyłanie danych do luftdaten już działa. Gdyby ktoś chciał zobaczyć działający kod do obsługi api luftdaten oraz madavi.de, to dostępny jest tutaj: https://github.com/hackerspace-silesia/Smogomierz/blob/master/src/luftdaten.cpp

1 Like
#13

O! Super sprawa! Dobra robota. Przyda się jak będziemy rzeźbić firmware na ESP32 :slight_smile: Cały firmware od luftdaten jest do przepisania i rozbicia na pojedyncze pliki. W ten sposób łatwiej będzie wymieniać cegiełki pomiędzy projektami. W tej chwili plik główny projektu ma ponad 4000 linii… A to dość upierdliwe przy edycji.

Jedyne co mi si nie podoba to użycie delay’ów. Potencjalny problem dla ESP8266, tym bardziej przy braku yieldów.

#14

bez delayów przy tym układzie i w sumie przy każdym do łączności to trzeba się nastawić na błąd za błędem. Musi być czas oczekiwania, bez tego ani rusz. Głupie poczekanie na odpowiedź musi mieć miesce, inaczej zbyt szybko kod może się wysypać a przynajmniej nie wykonac poprawnie. Bez tego ani rusz

#15

Podpowiedź: zamiast delay użyć milis.

Nie mówię, żeby zrezygnować z czasu oczekiwania, ale żeby nie robić tego przez użycie delay. Podczas delay nie mogą być wykonywane inne ważne funkcje jak choćby podtrzymywanie łączności wi-fi co w przypadku ESP8266 skutkować będzie wielkim bólem w d. W skrajnych przypadkach niestabilnością układu i częstymi restartami.

#16

Właśnie widziałem, że mają jeden ogromny plik. U mnie jest trochę ponad 700 linijek w głównym pliku. Reszta jest podzielona na mniejsze. Jedyne co muszę jeszcze ogarnąć i podzielić to plik ze stronami wyświetlanymi na esp8266. Teraz mam jeden webserver.h, który ma 1000 linijek. Muszę to podzielić na osobny plik dla każdej wyświetlanej strony(pomiary, konfiguracja, update, api), plus dodać prostą metodę dodawania tłumaczeń czy zmiany skórki.

#17

Z madavi jest zabawna rzecz… jak masz inny software version niż jedyny słuszny luftdatenowy (np: NRZ-2018-123B) to z miejsca Twoje wyniki się nie wyświetlają. Trzeba spoofować wersje. Nie ma innej rady.

#18

Czy istnieje sposób aby wysyłać dane do luftdaten przy pomocy innego projektu, posiadam własną stacje pogotowo-smogową w oparciu czujniki sds011,bme280,bh1750, niedługo jescze MH-Z19. Stacja tworzona jest w Arduino IDE na bazie projektu Supla.org

#19

Mogę podrzucić mój kod do wysyłki do luftdaten i madavi. Działa bez problemu - https://github.com/hackerspace-silesia/Smogomierz/blob/master/src/luftdaten.cpp

1 Like