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

81 termometrów DS18B20 podpiętych do Raspberry Pi

ghost666 04 Kwi 2016 16:36 17358 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
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • TermoPasty.pl
  • #2 04 Kwi 2016 18:54
    władziowek
    Poziom 20  

    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 04 Kwi 2016 19:24
    PiotrPitucha
    Poziom 33  

    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 04 Kwi 2016 19:55
    tOOmki
    Poziom 11  

    Jaki wyszedł rozrzut temp. pomiędzy poszczególnymi DS'ami.

    Nie zauważałem że autorem testu nie był autor posta.

  • TermoPasty.pl
  • #6 04 Kwi 2016 20:11
    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 04 Kwi 2016 20:47
    Sam Sung
    Poziom 31  

    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 04 Kwi 2016 21:58
    tmf
    Moderator Mikrokontrolery Projektowanie

    @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 04 Kwi 2016 22:57
    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 04 Kwi 2016 23:52
    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 05 Kwi 2016 11:36
    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 05 Kwi 2016 12:22
    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 05 Kwi 2016 12:56
    tmf
    Moderator Mikrokontrolery Projektowanie

    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 05 Kwi 2016 16:56
    timo66
    Poziom 23  

    @PiotrPitucha Jak chcesz to tak rzeczowo "porównać" to powinieneś Raspberry Pi też zmontować na stykówce ;)

  • #16 05 Kwi 2016 17:58
    PiotrPitucha
    Poziom 33  

    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 05 Kwi 2016 18:47
    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 05 Kwi 2016 19:10
    PiotrPitucha
    Poziom 33  

    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 05 Kwi 2016 20:11
    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 06 Kwi 2016 00:25
    PiotrPitucha
    Poziom 33  

    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 06 Kwi 2016 07:45
    tmf
    Moderator Mikrokontrolery Projektowanie

    @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 06 Kwi 2016 10:58
    PiotrPitucha
    Poziom 33  

    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 06 Kwi 2016 11:19
    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 06 Kwi 2016 11:26
    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 06 Kwi 2016 11:35
    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 06 Kwi 2016 11:59
    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 06 Kwi 2016 21:17
    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
    Zaloguj się, aby zobaczyć kod


    Wersja serwer:

    Kod: 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 06 Kwi 2016 22:14
    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 06 Kwi 2016 22:20
    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 06 Kwi 2016 22:26
    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.