Skocz do zawartości
kosa351

ESP8266 + DS18B20 pomiar czujników + historia danych

Pomocna odpowiedź

Napisano (edytowany)

Cześć,

znalazłem prosty tutorial w którym możemy odczytać za pomocą przeglądarki pomiar z kilku czujników na raz. Wszystko działa super, chciałbym jeszcze dodać jedną funkcję. Chodzi o zapisywanie danych historycznych. Może to być lokalnie np. do pliku .csv lub gdzieś do chmury. Tak abym mógł odczytać zapisany pomiar np. co godzinę przez dowolny okres czasu. 
Czy ktoś jest wstanie pomóc?

Poniżej tutorial:

https://lastminuteengineers.com/multiple-ds18b20-esp8266-nodemcu-tutorial/

Edytowano przez kosa351

Udostępnij ten post


Link to post
Share on other sites

@kosa351 witam na forum 🙂 Masz problem z jakimś konkretnym tematem czy nie wiesz ogólnie jak zacząć?

Udostępnij ten post


Link to post
Share on other sites

C

5 minut temu, Treker napisał:

@kosa351 witam na forum 🙂 Masz problem z jakimś konkretnym tematem czy nie wiesz ogólnie jak zacząć?

Cześć. Czujniki mogłyby to logować do bazy MySQL, ale nie wiem jak napisać kod i jakich bibliotek użyć. 

Udostępnij ten post


Link to post
Share on other sites
11 minut temu, Belferek napisał:

Możesz zapisać na karcie SD

Wolałbym jednak do pliku lub bazy. W zamyśle jest kontrola pomiarow z około 100 czujników, więc będzie wygodnie podejrzeć historię pomiarów za pomocą przeglądarki. 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

 

2 minuty temu, kosa351 napisał:

Wolałbym jednak do pliku

Na karcie SD - czyli do pliku. Jak zapiszesz to i odczytać będziesz mógł. Trzeba sobie tylko przemyśleć format zapisu i sposób odczytu, a prosty serwer HTTP to na ESP8266 szybko uruchomisz - znajdziesz go w przykładach.

Edytowano przez Belferek

Udostępnij ten post


Link to post
Share on other sites
1 godzinę temu, Belferek napisał:

 

Na karcie SD - czyli do pliku. Jak zapiszesz to i odczytać będziesz mógł. Trzeba sobie tylko przemyśleć format zapisu i sposób odczytu, a prosty serwer HTTP to na ESP8266 szybko uruchomisz - znajdziesz go w przykładach.

Serwer http mam już uruchomiony wg wyżej wymienionego tutorialu. Działa ok, mam odczyt z na razie dwóch czujników. Teraz potrzebuje to archiwizować czyli np. pomiar miałby się zapisywać np. co dwie godziny. 

Jak będzie prościej na karcie SD nie widzę problemu. Potrzebuje tylko pomocy jak to uruchomić. 

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Poczytaj o bibliotece SD np. tutaj lub tutaj. W PLIK-PRZYKLADY środowiska Arduino IDE znajdziesz wiele przykładów użycia tej biblioteki - na ESP8266 (ja korzystałem z NodeMCU) też działają.

Edytowano przez Belferek

Udostępnij ten post


Link to post
Share on other sites
3 godziny temu, Belferek napisał:

Poczytaj o bibliotece SD np. tutaj lub tutaj. W PLIK-PRZYKLADY środowiska Arduino IDE znajdziesz wiele przykładów użycia tej biblioteki - na ESP8266 (ja korzystałem z NodeMCU) też działają.

Tylko trzeba wziąć pod uwagę, że nie będę miał swobodnego dostępu do urządzenia. Po skonfigurowaniu ESP będzie zamontowane na hali i tylko w razie awarii będę tam zaglądał. Im mniej urządzeń "peryferyjnych" tym lepiej dlatego bardziej odpowiadałby mi zapisywanie do bazy mysql lub jakiś plik w lokalizacji sieciowej. 

 

Udostępnij ten post


Link to post
Share on other sites

Podepnij to pod https://thingspeak.com/ albo innego typu usługę. Możesz też zrobić prosty backend w NodeJS czy Flasku.

Łączenie się bezpośrednio z bazą danych mocno odradzam.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
1 godzinę temu, Harnas napisał:

Łączenie się bezpośrednio z bazą danych mocno odradzam.

Możesz rozwinąć ową niewątpliwie twórczą myśl?

1 godzinę temu, Harnas napisał:

Podepnij to pod https://thingspeak.com/ albo innego typu usługę

Twierdzisz, że wymóg podłączenia bezpośrednio do Internetu oraz uzależnienia od obcego serwera i usługi która w każdej chwili może stać się niedostępna[1] jest bezpieczniejszy od połączenia z bazą danych w sieci lokalnej? Możesz to jakoś uzasadnić?

---

[1] Wiem, że thingspeak gwarantuje dostępność 24/7/365, ale czy Twój ISP też?

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
10 godzin temu, kosa351 napisał:

Tylko trzeba wziąć pod uwagę, że nie będę miał swobodnego dostępu do urządzenia.

A to jest Twój kolejny problem jaki przed Tobą stoi poza tym jak pisałeś na początku - potrzebą zapisywania danych.

 

10 godzin temu, kosa351 napisał:

bardziej odpowiadałby mi zapisywanie do bazy mysql lub jakiś plik w lokalizacji sieciowej

No, a czy zapis do pliku na karcie SD w ESP to nie zapis "do pliku w lokalizacji sieciowej" - ESP z tego co rozumiem i tak pracuje w sieci, jest hostem sieci LAN, posiada adres IP.

Posłuchaj rad ethanak

Edytowano przez Belferek

Udostępnij ten post


Link to post
Share on other sites
17 godzin temu, ethanak napisał:

Możesz rozwinąć ową niewątpliwie twórczą myśl?

Bazy danych były tworzone z myślą aby tylko kod po serwerowej stronie miał do niej dostęp. Zarządzanie uprawnieniami, użytkownikami jest dość prymitywne. Jak jesteś dociekliwy to na pewno znajdziesz masę materiałów na ten temat, np: https://security.stackexchange.com/questions/35898/database-connection-from-front-end

Tylko w poradnikach do Arduino/ESP spotykam aby końcówka miała bezpośredni dostęp do bazy. To idealnie wpasowuje się w powiedzenie że "s" w IoT oznacza "security".

17 godzin temu, ethanak napisał:

Twierdzisz, że wymóg podłączenia bezpośrednio do Internetu oraz uzależnienia od obcego serwera i usługi która w każdej chwili może stać się niedostępna[1] jest bezpieczniejszy od połączenia z bazą danych w sieci lokalnej? Możesz to jakoś uzasadnić?

Co stoi na przeszkodzie aby całość postawić lokalnie? Przecież na jednej maszynie z bazą danych może stać również prosty backend który będzie pośredniczył miedzy urządzeniami a bazą.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
4 godziny temu, Harnas napisał:

Bazy danych były tworzone z myślą aby tylko kod po serwerowej stronie miał do niej dostęp.

Bzdura. Bazy danych typu MySQL czy PostgreSQL są tworzone właśnie z myślą o rozproszonym dostępie. No - chyba że przez pojęcie "strona serwerowa" rozumiesz coś innego niż ja (bo prawdę mówiąc ja nie bardzo wiem co to ma być ta "strona serwerowa", w końcu serwerem jest - jak sama nazwa wskazuje - serwer bazy danych, a inne serwery czy klienty łączą się z nim po sieci). Czyżbyś zakładał, że umieszczenie serwera DB i aplikacji na tej samej maszynie to jedyny słuszny sposób?

4 godziny temu, Harnas napisał:

Zarządzanie uprawnieniami, użytkownikami jest dość prymitywne.

Bzdura. Ale możliwe, że znasz świetnie wszelkie niuanse zarządzania w/wym. bazami danych i zstąpiłeś z wyżyn aby nas maluczkich tu pouczyć...

4 godziny temu, Harnas napisał:

Jak jesteś dociekliwy to na pewno znajdziesz masę materiałów na ten temat,

Dziękuję, ale zajmuję się tym jakieś 20 lat i już wyrosłem z etapu przedszkola.

4 godziny temu, Harnas napisał:

Co stoi na przeszkodzie aby całość postawić lokalnie?

Brzytwa Ockhama.

4 godziny temu, Harnas napisał:

Przecież na jednej maszynie z bazą danych może stać również prosty backend który będzie pośredniczył miedzy urządzeniami a bazą.

I ów "prosty" backend będzie taki superbezpieczny? Rozumiem, że zamiast brzydkim i niedopracowanym protokołem (MySQL, PostgreSQL) ESP będzie się łączył superbezpiecznym HTTP? A ów "prosty" backend będzie dużo lepiej zabezpieczony niż potrafią to zrobić np. chłopaki z Oracle?

Po kiego grzyba ten "backend" który nic innego nie robi, tylko wprowadza zupełnie niepotrzebny kolejny element? Mam nadzieję że jakoś dokładniej to wyjaśnisz (szczególnie naszemu początkującemu koledze), bo ja jakoś nie jestem przekonany do konieczności zabawy w głuchy telefon w wykonaniu ESP, serwera DB i jakiegoś "backendu" w środku.

 

Edytowano przez ethanak

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...