logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

81 termometrów DS18B20 podpiętych do Raspberry Pi

ghost666 04 Kwi 2016 16:36 21123 32
  • 81 termometrów DS18B20 podpiętych do Raspberry Pi
    Aby wykorzystać nie jedno, a kilka wyjść ogólnego przeznaczenia (GPIO) z Raspberry Pi do komunikacji z układami 1wire (w tym przypadku z sensorami temperatury DS18B20), wykorzystać możemy dwie opcje. Pierwszą z nich jest wykorzystanie zmodyfikowanego jądra systemu - modyfikacja nazywa się w1-therm i jest dosyć skomplikowana - aby móc z niej skorzystać, trzeba zmodyfikować kilka plików źródłowych i oczywiście zrekomplikować jądro. Drugie rozwiązanie oparte jest na bitbangingu. Z uwagi na wysoki poziom skomplikowania modyfikacji jądra systemu na 'malinie', autor poniższego projektu zdecydował się na wykorzystanie bitbangingu do obsługi 81 czujników temperatury, jakie podłączył do swojego Raspberry Pi. Opisywany poniżej system wykorzystuje program BitBangingDS18B20, jaki znaleźć można na githubue.





    Źródło programu Temperature Grid odnaleźć można tutaj. Jest to prosty program będący serwerem sieci web napisanym w Pythonie, który uruchamia DS18B20Scan i przesyła poprzez gniazdo webowe dane o zmianie temperatury. Aby możliwe było równoległe przesyłanie danych z wielu układów, dla każdego wyjścia/pinu/szyny 1wire program uruchomić trzeba w osobnym wątku.

    Aby to zrealizować, autor posłużył się prostym programem:

    Kod: Python
    Zaloguj się, aby zobaczyć kod


    Testy działania

    Jak powyższe rozwiązanie wypada w porównaniu do innych modułów 1wire i dedykowanych modułów w jądrze systemu? Poniższy wykres prezentuje porównanie.

    81 termometrów DS18B20 podpiętych do Raspberry Pi


    Źródło: http://www.raspi-ninja.com/2016/03/raspi-ds18b20-multiple-gpio.html

    Fajne? Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    https://twitter.com/Moonstreet_Labs
    ghost666 napisał 11960 postów o ocenie 10197, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • #2 15579896
    władziowek
    Poziom 21  
    A tak może już dość tego Raspberry? Może lepiej samemu opracować, zaprojektować, napisać program, myślę że dla młodych elektroników i automatyków będzie lepiej jak sami będą pisać programy i uczyć się na własnych błędach. Takie jest moje zdanie...
    Władek.
    PS. wymyślić, zrobić układ testowy, coś poprawić, coś zmienić, ale to w oparciu o atmege i płytkę uniwersalną, i szukać co zrobiłem źle, i powiedzieć że się uczę...
  • #4 15580001
    PiotrPitucha
    Poziom 34  
    Witam
    Władziowek coś Cie boli Raspberry jak widzę ....
    Ktoś następny spyta czemu Atmega skoro lepiej na PICu.
    A tak ogólnie to chciałbym widzieć jak robisz na płytce uniwersalnej serwer webowy z podłączeniem 81 termometrów DS18B20, chciałbym nawet zobaczyć jak rysujesz schemat serwera, tylko o zgrozo nie używaj gotowych płytek LAN do Arduino tylko zrób to też na płytce uniwersalnej.
    Potem wyciągnij kartkę i zsumuj ceny elementów, dodając oczywiście ceny przesyłek od wielu dystrybutorów....
    Nie używaj komputera ani kalkulatora do sumowania, możesz w końcu na tej Atmedze doprogramować kalkulator....
    I wszystko pisz w kodzie maszynowym, może już dość Assemblera, C, czy co gorsza Bascoma.
    Ktoś zrobił układ na Raspberry bo jest lepiej i taniej, inni to policzyli za Ciebie.
    Do takich zadań używam Raspberry, do Kodi też używam Raspberry, mógłbym oglądać TV na monitorze i wciskać w tym celu w zasilacz komputera 200W lub więcej, ale wystarcza mi 3W z zasilacza od komórki i mam to samo...
    Atmegi w wersji P i V używam do oszczędnych urządzeń zasilanych bateryjnie i najlepiej jak każde urządzenie ma swoją optymalną bazę.
    Pozdrawiam
  • #5 15580096
    tOOmki
    Poziom 11  
    Jaki wyszedł rozrzut temp. pomiędzy poszczególnymi DS'ami.

    Nie zauważałem że autorem testu nie był autor posta.
  • #6 15580145
    Krzysiek16
    Poziom 24  
    Co obrazuje wykres przedstawiony na końcu pierwszego posta? Nie mogę się nigdzie doszukać oznaczenia osi odciętych, jakiejś jednostki, czegokolwiek...
  • #7 15580273
    Sam Sung
    Poziom 33  
    Z załączonego kodu wynika, że wszystko opiera się na programie DS18B20Scan, który bangla stanem GPIO i usiłuje odmierzać czas z mikrosekundową precyzją przy pomocy zawołań clock_gettime(CLOCK_REALTIME) w ciasnej pętli.
    Żeby to dobrze działało, to trzebaby mieć kernel z patchem RT-Preempt i timerem wysokiej rozdzielczości, uruchamiać ten program na najwyższym priorytecie (real time), i zastosować sztuczki opisane na https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO (zablokowanie stron w pamięci fizycznej, żeby uniknąć nieprzewidywalnych opóźnień przy page faultach po wyswapowaniu).
    W przeciwnym razie byle zmulenie systemu przez inny program rozwali komunikację 1-wire.
    Linux się do takich rzeczy nie nadaje.
  • #8 15580503
    tmf
    VIP Zasłużony dla elektroda
    @Sam Sung Nadawać to się nadaje, tylko trzeba pomyśleć. Nie wiem po co się tak autor napocił z bitbangingiem, zamiast wykorzystać dostępne na GPIO piny USART i za ich pomocą prosto zrobić komunikację 1-wire. To by nie wymagało żadnych zmian w jądrze, a jedynie dostępu przez USART (timingi są wtedy realizowane sprzętowo), a na zewnątrz potrzebny jest tylko dodatkowy tranzystor...
  • #10 15580668
    michalko12
    Specjalista - Mikrokontrolery
    Sam Sung napisał:
    Linux się do takich rzeczy nie nadaje.

    Też jestem tego zdania. Ten projekt to tylko próba udowodnienia, że "da się", ale i tak jest bez sensu.
  • #11 15580782
    michcior
    Poziom 30  
    Całkiem niedawno, bo kilka dni temu skończyłem rejestrator temperatur i prądów, na RPI. ale akwizycją danych to się zajmuje oddzielny uC za 8zł. Bo ma być równo mierzone jak w wojsku a nie kiedy kernelowi się zachce. No i RPI obrabia już tylko zbuforowane dane.
    @tOOmki
    16 DS-ów, po włożeniu do szklanki z wodą, co stabilizuje pewnie glizy, rozrzut nie przekracza 0.15stopnia.
  • #12 15581367
    gulson
    Administrator Systemowy
    władziowek napisał:
    A tak może już dość tego Raspberry? Może lepiej samemu opracować, zaprojektować, napisać program, myślę że dla młodych elektroników i automatyków będzie lepiej jak sami będą pisać programy i uczyć się na własnych błędach. Takie jest moje zdanie...
    Władek.
    PS. wymyślić, zrobić układ testowy, coś poprawić, coś zmienić, ale to w oparciu o atmege i płytkę uniwersalną, i szukać co zrobiłem źle, i powiedzieć że się uczę...


    Będzie coraz więcej Raspberry (czy innych mikrokomputerów) i będzie wszędzie się pojawiać, nawet, aby zrobić migające diody i nie będzie to nikogo dziwić. Powód jest prozaiczny - taniejąca zaawansowana elektronika w formie mikrokomputerów. Niedługo faktycznie dojdzie do tego, że do zrobienia migających diod będzie można użyć Raspberry + Linux + języka Python i nie będzie się opłacać użyć TTLów. Oczywiście to skrajny i przerysowany przypadek, ale do tego podąża świat. Proponuję się w miarę szybko przestawić.
  • #13 15581460
    ghost666
    Tłumacz Redaktor
    michcior napisał:
    Całkiem niedawno, bo kilka dni temu skończyłem rejestrator temperatur i prądów, na RPI. ale akwizycją danych to się zajmuje oddzielny uC za 8zł. Bo ma być równo mierzone jak w wojsku a nie kiedy kernelowi się zachce. No i RPI obrabia już tylko zbuforowane dane.
    @tOOmki
    16 DS-ów, po włożeniu do szklanki z wodą, co stabilizuje pewnie glizy, rozrzut nie przekracza 0.15stopnia.


    Proponuję zatem zastosować jakiś RTOS zamiast Raspbiana i po krzyku.
  • #14 15581527
    tmf
    VIP Zasłużony dla elektroda
    Tak jak już pisałem - do implementacji 1-wire wystarczy wykorzystać UART, który odmierza czasy sprzętowo i wtedy zastosowany OS i jego lagi nie mają żadnego znaczenia. Implementacja 1-wire poprzez manglowanie bitami to przedszkole.

    Dodano po 11 [sekundy]:

    Tak jak już pisałem - do implementacji 1-wire wystarczy wykorzystać UART, który odmierza czasy sprzętowo i wtedy zastosowany OS i jego lagi nie mają żadnego znaczenia. Implementacja 1-wire poprzez manglowanie GPIO to przedszkole.
  • #15 15582004
    timo66
    Poziom 23  
    @PiotrPitucha Jak chcesz to tak rzeczowo "porównać" to powinieneś Raspberry Pi też zmontować na stykówce ;)
  • #16 15582125
    PiotrPitucha
    Poziom 34  
    Witam
    Timo66 to chyba nie do mnie ta uwaga.
    Ja lubię Raspberry, sam mam kilka w różnych zastosowaniach i jestem zadowolony.
    DIY polega na własnoręcznym wykonaniu czegoś, jeden potrafi tłuc kamienie, drugi lutować, trzeci programować...
    Jednemu z kolegów się nie spodobało że temat jest na Raspberry, bo można zrobić to na Atmedze i na stykówce, więc spytałem go grzecznie czy LAN leż zrobi na stykówce i oprogramuje :)
    Zgadzam się z typowym pojęciem prac własnych :) gdzie młotkiem można wbijać gwoździe i rozbijać kamienie, ale same gwoździe lepiej kupić niż wyklepać tym młotkiem.
    Choć koledzy na elektrodzie robili złącza półprzewodnikowe to zgodzisz się chyba że zrobienie jakiegoś funkcjonalnego urządzenia na takich diodach mija się z celem.
    Dokupienie LAN do Atmegi powoduje że staje się ona droższa od Raspberry, dlatego koledze proponowałem by posumował ceny...
    Nie wspomnę o znacznych różnicach w pamięci, o wydajniejszym procesorze i zegarze szybszym niemal 100 razy.
    Na dodatek w językach wysokiego poziomu lepiej się programuje, w pewnej abstrakcji od sprzętu.
    Pozdrawiam
  • #17 15582242
    michalko12
    Specjalista - Mikrokontrolery
    PiotrPitucha napisał:
    Witam
    Władziowek coś Cie boli Raspberry jak widzę ....
    Ktoś następny spyta czemu Atmega skoro lepiej na PICu.
    A tak ogólnie to chciałbym widzieć jak robisz na płytce uniwersalnej serwer webowy z podłączeniem 81 termometrów DS18B20, chciałbym nawet zobaczyć jak rysujesz schemat serwera, tylko o zgrozo nie używaj gotowych płytek LAN do Arduino tylko zrób to też na płytce uniwersalnej.
    Potem wyciągnij kartkę i zsumuj ceny elementów, dodając oczywiście ceny przesyłek od wielu dystrybutorów....
    Nie używaj komputera ani kalkulatora do sumowania, możesz w końcu na tej Atmedze doprogramować kalkulator....
    I wszystko pisz w kodzie maszynowym, może już dość Assemblera, C, czy co gorsza Bascoma.
    Ktoś zrobił układ na Raspberry bo jest lepiej i taniej, inni to policzyli za Ciebie.
    Do takich zadań używam Raspberry, do Kodi też używam Raspberry, mógłbym oglądać TV na monitorze i wciskać w tym celu w zasilacz komputera 200W lub więcej, ale wystarcza mi 3W z zasilacza od komórki i mam to samo...
    Atmegi w wersji P i V używam do oszczędnych urządzeń zasilanych bateryjnie i najlepiej jak każde urządzenie ma swoją optymalną bazę.

    Tragiczne wywody kogoś, kto elektronikę traktuje jako hobby i nic poza tym. Świat elektroniki to nie tylko hobby i DIY, a poza tymi dwiema dziedzinami dla RPI nie ma miejsca.
    Z tego co napisałeś wynika, że producenci mikrokontrolerów to idioci, bo bez sensu jest produkowanie nowych procesorów z ethernetem, bo przecież RPi do wszystkiego jest najlepsze i najtańsze.
  • #18 15582284
    PiotrPitucha
    Poziom 34  
    Witam
    Chyba zanika umiejętność czytania ze zrozumieniem.
    Rozciąganie jednej dyskusji na złożoność świata nie ma najmniejszego sensu.
    Dyskusja tyczyła 81 termometrów DS18B20 podpiętych do Raspberry Pi i udostępnianie pomiarów w sieci.
    Nie dyskutuję na temat wyższości Świąt Wielkiej Nocy nad Świętami Bożego narodzenia tylko nad podpięciem 81 termometrów DS18B20 do Raspberry Pi i wyraziłem swoją opinię że w tym zastosowaniu Raspberry przewyższa Atmegę na płytce uniwersalnej i tyle w tym temacie.
    Jak będę robił miganie diodą to kupię migającą diodę :)
    Jak będę migał nietypowo to dam Attiny bo prościej trudno to zrobić.
    Z pewnością nie będę migał diodą przy pomocy Raspberry chyba że to będzie jedna z kilkudziesięciu funkcji jakiegoś projektu.
    Pozdrawiam
  • #19 15582465
    michalko12
    Specjalista - Mikrokontrolery
    PiotrPitucha napisał:
    Chyba zanika umiejętność czytania ze zrozumieniem.

    A może zanika umiejętność pisania?
    PiotrPitucha napisał:
    Dyskusja tyczyła 81 termometrów DS18B20 podpiętych do Raspberry Pi i udostępnianie pomiarów w sieci.
    PiotrPitucha napisał:
    I wszystko pisz w kodzie maszynowym, może już dość Assemblera, C, czy co gorsza Bascoma.

    A co takie ględzenie ma wspólnego z dyskusją o tym projekcie?
    PiotrPitucha napisał:
    Nie dyskutuję na temat wyższości Świąt Wielkiej Nocy nad Świętami Bożego narodzenia

    Za to zacząłeś wywodzić się nad wyższością RPi nad resztą świata.
    PiotrPitucha napisał:
    Ktoś zrobił układ na Raspberry bo jest lepiej i taniej, inni to policzyli za Ciebie.

    Pomiar z 81 DSów z funkcją serwera webowego da się zrobić za 15zł, a nie za 150zł i pewnie z mniejszym nakładem pracy. Ten projekt to nie jest kwestia kosztów tylko udowodnienie, że "da się". Zobacz jak ten projekt wygląda, Rpi i 81 czujników obok siebie. Zastanawiałeś się jak zachowywałby się ten "projekt", gdyby te 81 czujników rozłożyć na obiekcie, np. budynku mieszkalnym? O obiekcie przemysłowym nawet nie myślę, bo to przecież DIY.
  • #20 15583166
    PiotrPitucha
    Poziom 34  
    Witam
    Władziowek napisał
    Cytat:
    wymyślić, zrobić układ testowy, coś poprawić, coś zmienić, ale to w oparciu o atmege i płytkę uniwersalną, i szukać co zrobiłem źle, i powiedzieć że się uczę...

    Jak widać to nie ja zacząłem dyskusję o wyższości Atmegi na płytce uniwersalnej nad Raspberry.

    Michalko12 napisał
    Cytat:
    Pomiar z 81 DSów z funkcją serwera webowego da się zrobić za 15zł, a nie za 150zł i pewnie z mniejszym nakładem pracy. Ten projekt to nie jest kwestia kosztów tylko udowodnienie, że "da się". Zobacz jak ten projekt wygląda, Rpi i 81 czujników obok siebie. Zastanawiałeś się jak zachowywałby się ten "projekt", gdyby te 81 czujników rozłożyć na obiekcie, np. budynku mieszkalnym? O obiekcie przemysłowym nawet nie myślę, bo to przecież DIY.

    Trzymając się tematu to udowodnij że na Atmedze na płytce uniwersalnej zrobisz serwer webowy za 15zł przy mniejszym nakładzie pracy, dla porównania części kupuj u tego samego dostawcy co Raspberry.
    Chętnie kupię gotowe układy do obsługi 81 czujników po 17zł :)
    To czy zrobisz projekt na PC, Raspberry, PIC czy Atmedze nie ma zupełnie znaczenia do rozłożenia czujników, ograniczenia odległości wynikają z technologii 1-wire i do domu wystarczy, na obiekt przemysłowy nie za bardzo się nadaje z różnych względów.
    Do budynku mieszkalnego ludzie stosują DSy, wystarczy spojrzeć na projekty Domoticz czy też Nettemp.
    Pozdrawiam
    Pozdrawiam
  • #21 15583327
    tmf
    VIP Zasłużony dla elektroda
    @PiotrPitucha Na ATMega za 15 zł to może nie, ale za parę zł więcej przy podobnym albo mniejszym nakładzie pracy spokojnie zrobisz. W końcu są gotowe biblioteki, podobnie jak dla RPi. Ale to samo można zrobić za mniej niż 10zł, jeszcze mniejszym nakładem pracy np. na ESP8266. To tylko dla formalności takie wyjaśnienie. Co do zastosowań 1-wire w warunkach "przemysłowych" - np. w Dąbrowie Górniczej w aquaparku szafki są otwierane przez 1-wire, a jest ich pewnie grubo ponad tysiąc.
  • #22 15583628
    PiotrPitucha
    Poziom 34  
    Witam
    Tmf wszystko fajnie jak się bawimy teoretycznie. Widziałem serwer WWW na Atmelu 2051 podpięty na żywca do sieci bez żadnych układów pośrednich.
    Tak sobie myślę, że do procesora wypadałoby dopiąć jakiś moduł LAN, to już koło 75zł, prowadzenie kilkudziesięciu pomiarów po to by zerknąć i zapomnieć nie ma sensu, wypada zrobić bazę danych co wymaga niezłego kawałka pamięci.
    Załóżmy pomiar co 5 sekund i 80 czujników dla równego liczenia, daje nam to 1382400 próbek na dobę.
    Of korz można powiedzieć że zrobimy coś za 5zł, ale okaże się że do czytania i obsługi musimy postawić komputer za 2000zł.
    Wierzę że w aquaparku można poprowadzić 1-wire, ale mówiąc o obiektach przemysłowych miałem na myśli te w których pracowałem, czujniki odległe o kilkaset metrów, w kanałach setki kilometrów kabli i ogromny poziom zakłóceń.
    Pozdrawiam
  • #23 15583664
    michalko12
    Specjalista - Mikrokontrolery
    PiotrPitucha napisał:
    Trzymając się tematu to udowodnij że na Atmedze na płytce uniwersalnej zrobisz serwer webowy za 15zł przy mniejszym nakładzie pracy,
    Chętnie kupię gotowe układy do obsługi 81 czujników po 17zł :)


    Ja nie mam czasu na takie pierdoły, ale gwarantuję Ci, że na Arduino Nano + moduł ENC da się zrobić serwer webowy z obsługą tych czujników. Może być nawet ten sam dostawca - ebay, aliexpress. Z reszto nie wiem po co te kryteria odnośnie pochodzenia części, miało być "tanio". Tomasz napisał Ci, że może być jeszcze taniej.

    tmf napisał:
    Co do zastosowań 1-wire w warunkach "przemysłowych" - np. w Dąbrowie Górniczej w aquaparku szafki są otwierane przez 1-wire, a jest ich pewnie grubo ponad tysiąc.

    Pewnie, że się da, ale trzeba to zrobić jak należy, a nie bezpośrednio z portów procesora sterować. Nawet nie podjąłbym próby wykonania tego bez optoizolacji.
  • #24 15583675
    ghost666
    Tłumacz Redaktor
    michalko12 napisał:
    PiotrPitucha napisał:
    Trzymając się tematu to udowodnij że na Atmedze na płytce uniwersalnej zrobisz serwer webowy za 15zł przy mniejszym nakładzie pracy,
    Chętnie kupię gotowe układy do obsługi 81 czujników po 17zł :)


    Ja nie mam czasu na takie pierdoły, ale gwarantuję Ci, że na Arduino Nano + moduł ENC da się zrobić serwer webowy z obsługą tych czujników. Może być nawet ten sam dostawca - ebay, aliexpress. Z reszto nie wiem po co te kryteria odnośnie pochodzenia części, miało być "tanio". Tomasz napisał Ci, że może być jeszcze taniej.



    Po co Arduino? Można zrobić na samym ENC - to jest całkiem przyzwoity procesor, mocniejszy od tego w Arduino ;). Nie mówiąc już co można, jak wykorzysta się nowe ENC32 (nie wiem czy już jest w sprzedaży, było opisywane na Elce jakiś czas temu)

    michalko12 napisał:
    tmf napisał:
    Co do zastosowań 1-wire w warunkach "przemysłowych" - np. w Dąbrowie Górniczej w aquaparku szafki są otwierane przez 1-wire, a jest ich pewnie grubo ponad tysiąc.

    Pewnie, że się da, ale trzeba to zrobić jak należy, a nie bezpośrednio z portów procesora sterować. Nawet nie podjąłbym próby wykonania tego bez optoizolacji.


    Kilkudziesięcio lub nawet ponad 100 metrowe sieci 1-wire nie są typową rzeczą dla tego interfejsu, ale da się zrobić - tutaj znajdziemy notę aplikacyjną dla takich sieci: https://www.maximintegrated.com/en/app-notes/index.mvp/id/148 (dla zainteresowanych - mogę przetłumaczyć artykuł na Polski i umieścić w dziale Artykuły naszego forum, proszę o PW lub komentarz).
  • #25 15583684
    michalko12
    Specjalista - Mikrokontrolery
    PiotrPitucha napisał:
    Widziałem serwer WWW na Atmelu 2051 podpięty na żywca do sieci bez żadnych układów pośrednich.

    O jakich ty układach pośrednich mówisz? I na 2051? Wątpię, żeby to był serwer WWW, ktoś Ci bajek naopowiadał, a Ty w to uwierzyłeś.

    PiotrPitucha napisał:
    dopiąć jakiś moduł LAN, to już koło 75zł

    http://www.ebay.com/sch/i.html?_from=R40&_trk...TRC2.A0.H0.Xenc28.TRS0&_nkw=enc28j60&_sacat=0
    PiotrPitucha napisał:
    wypada zrobić bazę danych co wymaga niezłego kawałka pamięci.
    Karta uSD wystarczy. Takie bezsensowne te teoretyzowanie, bo i tak z tych wielkich raportów nic nie wynika i do niczego te dane nie są potrzebne. Co Ci po informacji jaka była temperatura tydzień temu w Twoim pokoju, czy nawet w szklarni. Co to zmieni że będziesz w posiadaniu takich informacji? W przyszłym roku bardziej ogrzewanie podkręcisz?

    Dodano po 4 [minuty]:

    ghost666 napisał:

    Po co Arduino? Można zrobić na samym ENC

    Nie o tym była mowa o czym myślisz. ENC28j60 i ESP8266, jedno procesor, a drugie nie. I była tu mowa o Ethernecie, a nie o WiFi.
    ghost666 napisał:
    dla zainteresowanych - mogę przetłumaczyć artykuł na Polski i umieścić w dziale Artykuły naszego forum, proszę o PW lub komentarz

    Myślę, że wielu osobom by się to przydało.
  • #26 15583756
    ghost666
    Tłumacz Redaktor
    michalko12 napisał:
    PiotrPitucha napisał:
    Widziałem serwer WWW na Atmelu 2051 podpięty na żywca do sieci bez żadnych układów pośrednich.

    O jakich ty układach pośrednich mówisz? I na 2051? Wątpię, żeby to był serwer WWW, ktoś Ci bajek naopowiadał, a Ty w to uwierzyłeś.

    PiotrPitucha napisał:
    dopiąć jakiś moduł LAN, to już koło 75zł

    http://www.ebay.com/sch/i.html?_from=R40&_trk...TRC2.A0.H0.Xenc28.TRS0&_nkw=enc28j60&_sacat=0
    PiotrPitucha napisał:
    wypada zrobić bazę danych co wymaga niezłego kawałka pamięci.
    Karta uSD wystarczy. Takie bezsensowne te teoretyzowanie, bo i tak z tych wielkich raportów nic nie wynika i do niczego te dane nie są potrzebne. Co Ci po informacji jaka była temperatura tydzień temu w Twoim pokoju, czy nawet w szklarni. Co to zmieni że będziesz w posiadaniu takich informacji? W przyszłym roku bardziej ogrzewanie podkręcisz?

    Dodano po 4 [minuty]:

    ghost666 napisał:

    Po co Arduino? Można zrobić na samym ENC

    Nie o tym była mowa o czym myślisz. ENC28j60 i ESP8266, jedno procesor, a drugie nie. I była tu mowa o Ethernecie, a nie o WiFi.
    ghost666 napisał:
    dla zainteresowanych - mogę przetłumaczyć artykuł na Polski i umieścić w dziale Artykuły naszego forum, proszę o PW lub komentarz

    Myślę, że wielu osobom by się to przydało.


    Rzeczywiście, pokiełbasiły mi się układy. Ale - ESP8266 / ESP32 są tańsze od ENC, WiFi jest tańsze w instalacji no i mamy procesor 'za darmo' w układzie. Nadal podtrzymuję moją opinię, że to najlepsza kostka do rozproszonych sieci sensorycznych a.k.a. IoT.
  • #27 15585094
    DarekMich
    Poziom 15  
    ghost666 napisał:

    Rzeczywiście, pokiełbasiły mi się układy. Ale - ESP8266 / ESP32 są tańsze od ENC, WiFi jest tańsze w instalacji no i mamy procesor 'za darmo' w układzie. Nadal podtrzymuję moją opinię, że to najlepsza kostka do rozproszonych sieci sensorycznych a.k.a. IoT.

    Potwierdzam, sam stosuje jako licznik elektroniczny i wskaźnik pboru prądu/mocy/częstotliwości w domu i po wstępnym opracowaniu samego protokołu komunikacji z modułem - bardzo stabilne, choć ich wada - pobór prądu, przy zasilaniu pobieranym np z sieci domowej jak najbardziej, przy bateriach pomysł nie trafiony



    michalko12 napisał:
    PiotrPitucha napisał:
    Trzymając się tematu to udowodnij że na Atmedze na płytce uniwersalnej zrobisz serwer webowy za 15zł przy mniejszym nakładzie pracy,
    Chętnie kupię gotowe układy do obsługi 81 czujników po 17zł :)


    Ja nie mam czasu na takie pierdoły, ale gwarantuję Ci, że na Arduino Nano + moduł ENC da się zrobić serwer webowy z obsługą tych czujników. Może być nawet ten sam dostawca - ebay, aliexpress. Z reszto nie wiem po co te kryteria odnośnie pochodzenia części, miało być "tanio". Tomasz napisał Ci, że może być jeszcze taniej.

    tmf napisał:
    Co do zastosowań 1-wire w warunkach "przemysłowych" - np. w Dąbrowie Górniczej w aquaparku szafki są otwierane przez 1-wire, a jest ich pewnie grubo ponad tysiąc.

    Pewnie, że się da, ale trzeba to zrobić jak należy, a nie bezpośrednio z portów procesora sterować. Nawet nie podjąłbym próby wykonania tego bez optoizolacji.


    Mogę powiedzieć, że ja podjąłem się próbyz arduino uno+ ethernet shield zarówno w opcji jako serwer oraz jako client WWW(gdzie post był robiony co 1s).

    dla zainteresowanych moge dać nawet źródło, problemem była inicjalizacja samego układu (czas kiedy wstawał sam w5100 był dłuższy niż Arduino) oraz limit pamięci (~30kB flash, oraz ok. 300 bajtów ram wolnego).

    W opcji serwera jest strona główna, wyświetlanie danych z wejsć analogowych, oraz wyświetlanie posazczególnych czujników przy pomocy ich adresu i temperatury jako dane json, albo jako tabela <table>. Stanąłemtroche przy konfiguracji sieciowej i brakło pamęci żeby zrobić serwer + klient (żeby móc konfigurować auto post co zadany czas pod wskazany adres). ale jest to jak najbardziej możliwe.

    Ciekawy pomysł z optoizolacją 1wire, wezmę to pod uwagę przy aktualnym projekcie.

    Spoiler:

    wersja client:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Wersja serwer:

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Obie wersje czysto koncepcyjne i ekperymentalne - projek nie skończony (póki co odłożony na półkę :( )
  • #28 15585333
    michalko12
    Specjalista - Mikrokontrolery
    DarekMich napisał:
    oraz limit pamięci (~30kB flash, oraz ok. 300 bajtów ram wolnego).

    No niestety, korzystanie z bibliotek arduino odpada jeśli chce się osiągnąć taką funkcjonalność przy 32kB flasha i 2kB ramu.
    DarekMich napisał:
    problemem była inicjalizacja samego układu (czas kiedy wstawał sam w5100 był dłuższy niż Arduino)

    A od kiedy to długość Arduino wyraża się w jednostkach czasu? ;)
    Raczej problemem było korzystanie z G wartych bibliotek i źle przemyślana struktura programu.
  • #29 15585362
    DarekMich
    Poziom 15  
    Zdaję sobie sprawę z uogólnień i uproszczeń jakie narzuca całe środowisko Arduino, tu się zgadzam w całej rozciągłości, co jak co bez większych przeszkód pozwala osiągać cel, ja niestety bardzo szybko doświadczyłem ograniczeń "tego środowiska" i zaczynam myśleć nad alternatywą.

    Z czasem tak czasem, nie chodzi tu o dodanie samego delay w setup (init) ale o fakt, że SPI startuje (chyba) w Arduino od razu po starcie procesora, rozwiązaniem okazuje się albo opóźnienie startu arduinoi (kondensator+rezystor na pin reset) albo dodatkowa linia resetująca w5100.

    Nie jest to duży problem (jestem tego świadom), ale póki co poszło na "półkę" nie do kosza :)
  • #30 15585387
    michalko12
    Specjalista - Mikrokontrolery
    DarekMich napisał:
    że SPI startuje (chyba) w Arduino od razu po starcie procesora,

    SPI samo nie startuje. Transmisja rozpocznie się w momencie, który wynika z programu. Jeśli czas resetu W5100 jest niedeterministyczny wtedy należy powtarzać sekwencję inicjalizacji aż do skutku.
REKLAMA