Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

81 termometrów DS18B20 podpiętych do Raspberry Pi

ghost666 04 Apr 2016 16:36 20535 32
SterControl
  • 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:

    Code: python
    Log in, to see the code


    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

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    ghost666
    Translator, editor
    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.
    ghost666 wrote 11043 posts with rating 9365, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • SterControl
  • #2
    władziowek
    Level 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
    PiotrPitucha
    Level 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
    tOOmki
    Level 11  
    Jaki wyszedł rozrzut temp. pomiędzy poszczególnymi DS'ami.

    Nie zauważałem że autorem testu nie był autor posta.
  • #6
    Krzysiek16
    Level 24  
    Co obrazuje wykres przedstawiony na końcu pierwszego posta? Nie mogę się nigdzie doszukać oznaczenia osi odciętych, jakiejś jednostki, czegokolwiek...
  • SterControl
  • #7
    Sam Sung
    Level 32  
    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
    tmf
    Moderator of Microcontroller designs
    @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
    michalko12
    MCUs specialist
    Sam Sung wrote:
    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
    michcior
    Level 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
    gulson
    System Administrator
    władziowek wrote:
    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
    ghost666
    Translator, editor
    michcior wrote:
    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
    tmf
    Moderator of Microcontroller designs
    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
    timo66
    Level 23  
    @PiotrPitucha Jak chcesz to tak rzeczowo "porównać" to powinieneś Raspberry Pi też zmontować na stykówce ;)
  • #16
    PiotrPitucha
    Level 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
    michalko12
    MCUs specialist
    PiotrPitucha wrote:
    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
    PiotrPitucha
    Level 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
    michalko12
    MCUs specialist
    PiotrPitucha wrote:
    Chyba zanika umiejętność czytania ze zrozumieniem.

    A może zanika umiejętność pisania?
    PiotrPitucha wrote:
    Dyskusja tyczyła 81 termometrów DS18B20 podpiętych do Raspberry Pi i udostępnianie pomiarów w sieci.
    PiotrPitucha wrote:
    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 wrote:
    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 wrote:
    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
    PiotrPitucha
    Level 33  
    Witam
    Władziowek napisał
    Quote:
    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ł
    Quote:
    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
    tmf
    Moderator of Microcontroller designs
    @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
    PiotrPitucha
    Level 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
    michalko12
    MCUs specialist
    PiotrPitucha wrote:
    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 wrote:
    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
    ghost666
    Translator, editor
    michalko12 wrote:
    PiotrPitucha wrote:
    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 wrote:
    tmf wrote:
    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
    michalko12
    MCUs specialist
    PiotrPitucha wrote:
    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 wrote:
    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 wrote:
    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 wrote:

    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 wrote:
    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
    ghost666
    Translator, editor
    michalko12 wrote:
    PiotrPitucha wrote:
    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 wrote:
    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 wrote:
    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 wrote:

    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 wrote:
    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
    DarekMich
    Level 15  
    ghost666 wrote:

    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 wrote:
    PiotrPitucha wrote:
    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 wrote:
    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:
    Code: c
    Log in, to see the code


    Wersja serwer:

    Code: c
    Log in, to see the code


    Obie wersje czysto koncepcyjne i ekperymentalne - projek nie skończony (póki co odłożony na półkę :( )
  • #28
    michalko12
    MCUs specialist
    DarekMich wrote:
    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 wrote:
    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
    DarekMich
    Level 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
    michalko12
    MCUs specialist
    DarekMich wrote:
    ż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.