Elektroda.pl
Elektroda.pl
X
Elektroda.pl
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

arduino + ds18b20 + wykresy w chmurze

28 Lis 2018 11:53 450 16
  • Poziom 17  
    Witam, poszukuję rozwiązania, które w oparciu o Arduino uno i ethernet shield pozwoliłoby na pomiar bieżącej temperatury z około 12 czujników DS18B20 co około pół minuty / minutę i wysyłało te dane tworząc wykres w chmurze w ujęciu dobowym, tygodniowym, miesięcznym rocznym itd. Odpowiadałoby mi idealnie Highcharts.com ale niestety na programowaniu nie znam się. Słyszałem, że są serwisy pozwalające wkleić do Arduino gotowy kod wygenerowany po uprzednim zdefiniowaniu parametrów na stronie dostawcy. Czy mógłby ktoś polecić coś takiego, sprawdzonego?
  • PCBway
  • Poziom 28  
    Ja wysyłam na Thinkspeak. ale sam byś musiał sobie generować jeden zestaw danych dla minut, a inny dla dni/tygodni/miesięcy - zależy co masz na myśli. Można pokazać na wykresie >10000 punktów pomiarowych, ale nie jest tak że wyciąga jakąś średnią automatycznie, można sobie wybrać zamiennie zamiast pokazywać każdy pomiar średnie dzienne lub z określonej ilości punktów, sztywno do wyboru, także z góry należy przemyśleć częstotliwość próbek jeśli chcesz mieć tygodnie i miesiące. Jest tutorial z przykładami do Arduino: https://community.thingspeak.com/tutorials/arduino/send-data-to-thingspeak-with-arduino/. No i sprawdź sobie czy ilość próbek nie będzie za duża dla darmowej wersji. Tak co 30s na 12 czujników to rocznie >12mln, a darmowe jest 3mln. Max dla darmowej wersji jest 12 czujników co 3 minuty. Ja sobie zbieram temperatury co 15 minut i jest to i tak dużo danych.
    Co do zupełnie gotowego kodu, to raczej takiego nie znajdziesz, coś tam trzeba się nauczyć.
  • Poziom 2  
    Chciałbym skromnie podpowiedzieć że lepiej zastosować coś nowszego niż ARDUINO, jest to NodeMcu.
    Dla Twoich potrzeb można by zastosować rozwiązanie z strony:
    https://www.hackster.io/adachsoft_com/esp8266...ature-sensors-ds18b20-with-http-server-5509ac
    W AVT moduły NodeMcu są w dobrych cenach.
    Dla Twojego przypadku posiłkując się informacjami z strony powyżej - w AVT kosztuje to 27 złotych Kod handlowy: 04006.
    Z chmurą moduł kontaktuje się poprzez WI-FI, można także utworzyć lokalny server w tym module i nie łączyć się z siecią publiczną.
    Oprogramowanie kompatybilne z ARDUINO.
    Przymierzałem się do ARDUINO, ale chyba zrezygnuje, lepiej poświęcić się dla NodeMcu.
    Ja kupiłem w AVT ARD-7670, ale nie miałem czasu go uruchomić.
    Fajna zabawka – nie wyposażając w dodatkowe czujniki, odczytać można na smartfonie jak jasno wokół niego i rozjaśniać trzy kolory diody led.
    .

  • Poziom 26  
    W AVT ten moduł jest po 27zł, Allegro 18zł... W ramach nauki i eksperymentów lepiej kupić kilka sztuk z aliexpressu tam masz po 10zł.

    Ogólnie polecam własny serwer coś taniego za 60-100zł na rok. Hekko.pl albo linuxpl.eu i tam możesz robić eskperymenty, dodatkowo wszystko masz u siebie.
  • Poziom 17  
    Dzięki wszystkim za odpowiedzi. Podany powyżej przykład z NodeMcu z tego widzę daje możliwość odczytu bieżącej temperatury i wyświetlenia jej przez www. Mi przede wszystkim zależy na zachowaniu historii i tworzeniu wykresów na jej podstawie ale także wyświetlanie bieżącej temperatury. Swego czasu używałem gotowego rozwiązania opartego o soft lampomittari + windows ale to przeżytek, a do tego dochodzi pobór prądu przez laptopa pracującego nonstop. Zaopatrzyłem się więc w arduino myśląc, że polepie coś z gotowców z internetu ale to nie takie proste. Programowanie przerasta mnie. Jest sporo ciekawych rozwiązań na raspberry ale nie chce mi się inwestować w kolejne płytki, które być może wylądują w szafie podobnie jak arduino. Przede wszystkim brakuje mi czasu, bo trzeba wysiedzieć wiele godzin aby się trochę poduczyć C, javy, może jeszcze tam czegoś ale jak się mi kilka godzin w miesiącu aby się temu poświęcić to to nie ma sensu. Myślałem nawet aby komuś zlecić za jakieś rozsądne pieniądze napisanie kawałka kodu do arduino i połączenia tego z highcharts. Chciałbym nie być ograniczony maksymalną ilością czujników i/lub maksymalną ilość rekordów w miesiącu, roku itp.
  • PCBway
  • Poziom 2  
    Do Pana andrzejkm
    Dziękuję że się Pan zainteresował <ciach>
    Wracając do sedna sprawy, interesują mnie dane związane energią, w instalacji którą Pan skonstruował.
    Mój problem, nie mogę praktycznie sprawdzić czy moje rozwiązanie zadziała,
    krótko mówiąc, nie chcę wykonywać tak wielkiej instalacji w ziemi.
    W zamian na początek z mojej strony, przesyłam, zachęcam oraz wesprę, aby pomiar wykonywać przy pomocy NodeMCU smart, te funkcje z laptopa też zadziałają w obydwóch urządzeniach też jest podobny procesor.
    https://chiptron.cz/en/print.php?type=N&item_id=230 jak podłączyć DS18B20
    https://www.arduinotech.cz/inpage/nodemcu-wifi-modul-s-esp8266/ konfiguracja i kompilacji w Arduino
    https://www.arduinotech.cz/inpage/nodemcu-wifi-modul-s-esp8266-496/ program c++
    Ja przez tydzień dokształcałem się, aby uruchomić to poniżej
    http://adityatannu.com/blog/post/2016/01/31/ESP8266-Witty-Cloud-Board-Demo.html
    działa jak na filmie, uważam że pana kreatywność sprawdzi się też w tej dziedzinie.
    W AVT NodeMCU, „kod handlowy: 04006” jest za 27zł,
    można u chińczyków kupić taniej ale trzeba czekać,
    jeżeli w AVT odbiera się osobiście, to może na to samo wyjdzie.
    Załatwiłem NodeMCU smart i sprawdzę to jak powyżej.

    Marek Skalski: Proszę trzymać się tematu. Zbędną treść usunąłem.
  • Poziom 17  
    Dopiero raczkuje w programowaniu i w Arduino. Próbuję napisać coś do obsługi DS18B20. Czy normalnym jest, że do większości fragmentów kodów jakie pobieram z sieci lub jakie podpatruje pasują tylko określone biblioteki? Myślałem, że biblioteki są w miarę uniwersalne, a tu okazuje się, że co kod to inna wersja biblioteki na której opiera się autor kodu. Myślałem, że biblioteki są w miarę standardowe i uniwersalne. Widzę w sieci różne gotowce ale co przykład to jakieś inne nazwy funkcji są w tych gotowcach wykorzystywane. Skąd dowiedzieć się jak działa konkretna funkcja w konkretnej bibliotece? Nie chce robić wszystkiego na zasadzie kopiuj wklej.
  • Poziom 29  
    andrzejkm napisał:
    Czy normalnym jest, że do większości fragmentów kodów jakie pobieram z sieci lub jakie podpatruje pasują tylko określone biblioteki?

    W Arduino to norma.

    andrzejkm napisał:
    Myślałem, że biblioteki są w miarę standardowe i uniwersalne.

    Musiałby ktoś nad tym czuwać a to kosztuje.

    andrzejkm napisał:
    Skąd dowiedzieć się jak działa konkretna funkcja w konkretnej bibliotece?

    Obejrzeć funkcje biblioteki a nie tylko instalować kolejną bibliotekę jak program w Windows.
  • Poziom 29  
    Problem z arduino (zarówno w wypadku avr jak i esp32 / 8266) jest taki że mnóstwo tam laików. Najlepiej jeśli nie jesteś w stanie odfiltrować względem jakości weź przykład z wykorzystywanej biblioteki. Ogólnie tam nie ma standardów, więc nie masz co liczyć na odgórnie narzucony sposób wykorzystania czegoś
    Np
    https://github.com/milesburton/Arduino-Temper...ry/blob/master/examples/Multiple/Multiple.pde

    Daje które wysyłasz na uart możesz równie dobrze wysyłać po ethernecie a po całym fakcie usypiać uC

    Ogólnie 1wire sprowadza się do szeregowej transmisji opartej na machaniu pinem przesyłając dane w odpowiedniej kolejności. Jeśli chcesz wejść w szczegóły możesz przeczytać notę dallasa dot. 1wire.

    PS. esp8266 możesz wziąć z elektrodowego sklepiku https://www.elektroda.pl/rtvforum/shop.php
  • Poziom 28  
    Nie ważne do czego ściągniesz sobie biblioteki: C, BASCOM czy Arduino, na sprzęt AVR, ESP czy PIC, każda biblioteka innego autora może mieć swoje nazwy funkcji, różne argumenty i sposób zwracania informacji. Dlatego nie ma jednej bo komuś coś nie pasowało w istniejącej, napisał swoją i się podzielił. No straszne. Po prostu wybierz sobie taką, która Ci pasuje, biblioteki mają spis funkcji w keywords, w plikach h, popularne dodatkowo mają tutoriale na stronach, filmy na youtube, ostatecznie analizujesz co w niej jest nadziobane w pliku cpp. To co obserwujesz to klęska urodzaju i ciężko zdecydować, którą wybrać, ale zawsze można się przesiąść na inną platformę i prosić o kawałek biblioteki/kodu na forach lub wymyślać koło samemu. W C AVR ewentualnie zdobędziesz bibliotekę UART do Atmegi8 to trzeba ją przerzeźbić na atmegę88 czy 644, a z ESP i ARM nie użyjesz jej wcale (wiem, wszystko się da). I oczywiście arduinowe są uniwersalne, masz wszystko na tacy, ten sam kod (o ile nie odwołuje się do unikatowych funkcji danego u-procka) zadziała jeszcze z ARM (Arduino DUE) i ESP8266/ESP32. Każda platforma dołącza do Arduino podstawową obsługę sprzętu typu piny I/O, UART, I2C, SPI i prawie każda biblioteka z tym współpracująca zadziała tak samo. Oczywiście jak bazujesz na jakimś gotowcu z sieci to musisz mieć dokładnie ten sam zestaw bibliotek co autor gotowca, ale to nie jest problem, bo nikt tego nie chowa jak kotka ... Dodatkowo jeśli jakiś program został napisany pod konkretny procek i jedzie po jego rejestrach czy używa wstawek asemblera to nie uruchomisz go na innym tak samo jak dedykowanej biblioteki pisanej w C (np. do neopixel niektóre mają wstawki). Ja używam bibliotek OneWire od Jim Studt http://www.pjrc.com/teensy/td_libs_OneWire.html, DallasTemeperature Miles Burton https://github.com/milesburton/Arduino-Temperature-Control-Library. Czytałeś opisy bibliotek i przykłady? Teraz masz setki przykładów, translacja z dowolnego języka w locie, zapytaj doświadczonych kolegów jak oni się uczyli/szukali materiałów i ile to trwało 15 lat temu, teraz narzekają że Arduino jest bee, za wolne, a po co obiektowe, chyba głównie dlatego, że jest za łatwo. Niestety dalej nie łatwiej niż spanie :D .
  • Poziom 17  
    Dzięki Panowie, czasem nie tylko dobrze jest usłyszeć co robić ale czego nie robić (czego nie oczekiwać). Takie właśnie odniosłem wrażenie analizując ileś tam przykładów z sieci, że większość osób bazuje na jakiś tam swoich lub prawie swoich bibliotekach. Nie neguje tego faktu ale taka sytuacja nieco utrudnia naukę, bo okazuje się że tę samą rzecz można zrobić na 500 sposobów. Ale to też jeszcze rozumiem, najgorsze jest to, że większość kodu jest słabo opisana przez ich twórców, jak działają poszczególne funkcje, co potrafi biblioteka itd. No nic, koniec marudzenia. Trzeba wysiedzieć setki godzin i samemu się przekopać.
  • Poziom 29  
    andrzejkm napisał:
    najgorsze jest to, że większość kodu jest słabo opisana przez ich twórców

    To norma w Arduino, dlatego to tylko zabawka. Od filmiku na YT to działającego urządzenia daleka droga. Przenoszę działającą bibliotekę z Arduino, w której przeważnie jest masa błędów, robię komentarze, testuję co wymaga dużego nakładu pracy. Bywa, że po modyfikacji nie można biblioteki poznać.
    Arduino to jakaś baza wyjściowa do projektu tak kilka, kilkanaście procent. To co jest w sieci, w 99% nie nadaje się do normalnego użytku. Brak kontroli błędów to norma w Arduino. Prawie każdy projekt Arduino jestem w stanie w kilka minut doprowadzić do złego działania lub zawieszenia.
  • Poziom 28  
    LChucki napisał:
    To norma w Arduino, dlatego to tylko zabawka. Od filmiku na YT to działającego urządzenia daleka droga. Przenoszę działającą bibliotekę z Arduino, w której przeważnie jest masa błędów, robię komentarze, testuję co wymaga dużego nakładu pracy. Bywa, że po modyfikacji nie można biblioteki poznać.

    Podałem dwa linki do bibliotek Arduino do DS, proszę dla porównania o podanie swoich repozytoriów, chętnie porównam instrukcje, komentarze i przykłady.
  • Poziom 29  
    kaczakat napisał:
    proszę dla porównania o podanie swoich repozytoriów

    To kosztuje kilka tysięcy zł. Dać numer konta?

    Moderowany przez Marek_Skalski:

    Czy Kolega potrafi coś więcej oprócz krytyki i żebrania o pieniądze na Forum? To już kolejny post w ostatnich dniach z kwestią finansową. Kolejne takie żądanie może zakończyć Kolegi karierę na Forum.
    3.1.14. Nie wysyłaj wiadomości nie związanych z tematem lub w złym dziale forum.

  • Poziom 28  
    Jak się trochę pobawisz Arduino to sam zobaczysz, że jest dużo zunifikowanych rzeczy, na co pozwalają obiekty. Np. w programie masz modem, LCD, TFT i uart to tworzysz sobie obiekt do każdego o oczywistych nazwach i potem do każdego masz podobne metody LCD.print(), TFT.print(), Serial.print(), modem.print(), czy tam .write(), .println(). Obejrzałem kilka bibliotek DS i są naprawdę podobne, no metody mogą mieć różne nazwy, w jednej request, w drugiej requestTemperatures (bo jest bardziej rozbudowana i więcej rzeczy można odczytywać), ktoś sobie użył nazwy obiektu sensors, ktoś inny DS18B20 (ale to tylko nazwa, możesz mieć swoją "DS").

    LChucki napisał:
    To kosztuje kilka tysięcy zł. Dać numer konta?
    Haha, tegom chciał do dyskusji, :D, i właśnie dlatego bawię z Arduino i wyśmiewam narzekanie "ekspertów" na wszystko z nim związane. "Arduino jest be, kup u mnie za górę kasy", hahaha. Proszę też zapoznać się z licencją bibliotek Arduino, są za darmo, ale czy na pewno można sobie je zmodyfikować i żądać na forum kasy za udostępnienie zmodyfikowanych? Hmm, kiedyś widziałem jak wielki mistrz zakonu robił coś takiego na youtubie wypruwając misia arduino i pyk biblioteczka za 40 dychy, on wpadł na to, że sprzedaje to jako materiały do filmu, a nie swoją bibliotekę.
    Proszę sobie porównać, te najbardziej popularne są rozwijane od lat, testowane przez tysiące osób na różnym sprzęcie i nawet jeśli wpadną w ręce 100 "LChucki" to od czasu do czasu czasem również na kogoś czującego się członkiem społeczności, który opisze napotkane błędy, inny zaproponuje rozwiązanie problemów, biblioteki są coraz lepsze. Po wykryciu dziur w systemach ochrony WIFI kilka lat temu szybciej wyszły nowe biblioteki do ESP8266 niż firmware do markowych modemów. Nie, dziękuję.
  • Poziom 29  
    kaczakat napisał:
    ale czy na pewno można sobie je zmodyfikować i żądać na forum kasy za udostępnienie zmodyfikowanych?

    Skoro modyfikacja trwała 2 dni i z oryginału zostało kilka procent, jak najbardziej można a wręcz trzeba.
    Czy kolega, gdy wykona projekt z Arduino, gdzie wszystkie biblioteki są za darmo, bierze wynagrodzenie za ten projekt? Jeśli nie, zapraszam do współpracy, szukam darmowej siły roboczej.
    Przykładowo, dział zlecenia, gdzie oferują 10 czy 100 razy mniej niż wynikałoby to ze zdrowego rozsądku. Wezmę zlecenie za 500 wymagające 2 tygodni pracy a kolega zrobi to za free bo przecież wszystko z darmowych przykładów i bibliotek w Internecie.

    kaczakat napisał:
    Proszę też zapoznać się z licencją bibliotek Arduino, są za darmo

    Nie dziwię się. Jak można brać wynagrodzenie za niesprawdzona bibliotekę?
  • Poziom 29  
    Akurat licencja lgpl (arduino core) wymaga by twój kod dynamicznie linkował do tej części kodu źródłowego który jest wykorzystywany w twoim kodzie.
    Jeśli przerabiasz bibliotekę gpl to musisz udostępnić jej kod źródłowy na tej samej licencji.

    Możesz swoje urządzenia sprzedawać, ale nie możesz żądać pieniędzy za dostęp do kodu na licencji gpl (musisz go na rządanie udostępnić), oraz założę się że twoje biblioteki nie likują biblioteki arduino w sposób który pozwalałby na ich podmianę - a to jest warunkiem wykorzystania tej licencji (lgpl).