Skocz do zawartości

Pomiar temperatury za pomocą kilku niezależnych czujników


Pomocna odpowiedź

Napisano

Cześć,
Opiszę co jest do zrobienia i mój pomysł na to:

Mam duże pomieszczenie (hale) w której chce odczytywać temperaturę w kilku miejscach co np. 30minut. Z racji tego, że to duży obiekt, nie będę tego łączył przewodami, tylko chce to zrobić bezprzewodowo.

Pomyślałem, żeby zrobić kilka modułów WiFi z czujnikiem temperatury(WiFi ESP-01 ESP8266 + DS18b20), które będą wysyłały dane jednego arduino z wyświetlaczem LCD. Nie mam tam dostępu do internetu aby zrobić to w chmurze.

Nie miałem wcześniej styczności z modułem WiFi. Teraz moje pytania:

Czy takie moduły do temperatury to dobre rozwiązanie, które wytrzyma długo na jednej baterii? Czytałem, że ESP8266 nie ma możliwość 'wyłączenia" się na jakiś czas, więc wszystko działało by cały czas, a dla mnie wystarczy odczyt raz na 20/30minut.

Czy jest możliwe, aby Arduino z ESP8266 otrzymywało dane z kilku modułów?

Może zamiast modułów WiFi użyć czegoś innego, tylko czy wtedy koszt się nie zwiększy?

Przeglądając aliexpress wpadłem jeszcze na inne konfigurację tych modułów:

Arduino Pro Mini/Nano + NRF24L01 + DS18b20

NodeMCU v2 z wbudowanym ESP8266 + ma już w sobie termometr - tylko nie wiem czy to już nie za duża kobyła i praktycznie nic nie wiem o tej płytce.

Chce aby było wydajnie pod względem zasilania oraz wykonane jak najmniejszym kosztem.

Może macie jakiś inne pomysły. Chętnie ich wysłucham.

Z góry dziękuje za odpowiedzi,
Mirek

Chyba im prostszy projekt tym więcej możliwości jego realizacji. Nie twierdzę, że ten Twój jest łatwy, tylko że jego funkcje są proste. Nie podałeś tu zakresów pomiarów i co to znaczy, że ma długo pracować z baterii. Czy miesiąc to długo? A rok? A 5 lat?

Być może największym problemem będzie tu łączność radiowa. W zależności od tego z czego jest zbudowana i czy ma jakieś istotne elementy wewnętrzne (maszyny, suwnice, konstrukcję dachu, przegrody itp.) i gdzie chcesz te czujniki umieszczać, być może będziesz musiał trochę z niektórymi pochodzić by dostać pewną łączność. No i pasmo. Na 2.4GHz anteny są małe, ale i zasięgi (przy tych samych mocach) są mniejsze. Wg mnie optymalne do takich zastosowań jest pasmo ISM 868MHz.

Wszelkie skomplikowane płytki procesorów i moduły radiowe są kosztowne: zarówno energetycznie jak i finansowo. Ja bym wziął na pierwsze testy wspomnianą przez Ciebie płytkę Arduino Pro Mini - to goły procesor i niskomocowy stabilizator napięcia, do tego jakiś prosty moduł radiowy np. RFM12 i.. koniec 🙂 ATmega328 która jest na pokładzie Nano ma już wbudowany czujnik temperatury w chip. Nie jest co prawda jakiś świetny i gdybyś chciał mieć dokładności lepsze niż 2-3°C to nie obejdzie się bez kalibracji każdej sztuki osobno, ale może nie jest to problem. Na pewno lepszym byłoby dodanie jakiegoś taniego czujnika zewnętrznego, np. analogowego (i taniego) MCP9700. Oddaje on napięcie proporcjonalne do temperatury, pracuje w szerokim zakresie i możesz go mierzyć bezpośrednio za pomocą ADC w Arduino. Każdy cyfrowy (w tym magapopularny DS18B20) będzie wielokrotnie droższy a wcale nie wygodniejszy.

A teraz czas pracy. Praca takiego modułu będzie składała się z czasu uśpienia (będziesz musiał zapoznać się z trybami obniżonych poborów mocy procesorów AVR) i czasu pracy. W przypadku takiego projektu, w czasie aktywności głównym pożeraczem prądu będzie nadajnik radiowy. Procesor to co najwyżej 1-2mA. Robisz bilans energii w czasie jednego cyklu (np. 29min58s z prądem 50uA i 2s z prądem 30-50mA), liczysz średni pobór prądu i sprawdzasz ile to wytrzyma na danym typie baterii znając ich katalogowe pojemności. Dajesz margines 30-50% na spadki pojemności w zimie (jeśli hala jest nieogrzewana) i masz wynik. Zrób sobie arkusz i podstawiaj różne czasy pracy i prądy np. modułu WiFi od zimnego startu do wysłania ramki i nadajników w pasmach ISM. Moim zdaniem od razu wyjdzie, że WiFi jest dobre do szybkiego przesyłania większych ilości danych. Przy kilku bajtach narzut protokołu i zmarnowana na to energia są nieakceptowalne.

Kluczowym jest by wybrany moduł radiowy dawał się bardzo głęboko usypiać albo będziesz musiał zrobić mu odcinanie zasilania. Procesor może wchodzić w power-down (to najgłębszy sen z zatrzymanym oscylatorem) z pracujących watchdogiem skonfigurowanym na zgłaszanie przerwań zamiast RESETów. Coś takiego będzie budziło się autonomicznie np. co 8 sekund, odmierzało czas i ew. odpalało pomiar i transmisję radiową.

Dziękuje za tak obszerną odpowiedź.

Hala, ma około 80m2. Będą w niej przechowywane ziemniaki w skrzyniach. W środku nie ma elementów metalowych, nie licząc dwuteownika przy dachu i jednej ściany zbudowanej z płyty warstwowej. Czujniki będą przy ziemi (pewnie 4) dodatkowo dwa położone w skrzyni, aby wiedzieć jaka temperatura jest wyżej.

Czy jest jakaś wielka różnica między Pro Mini, a Nano (oczywiście oprócz złącza USB)?

Moduł NRF24L01 jest o wiele tańszy od wspomnianego przez Ciebie RFM12. Myślisz, że może być problem z komunikacją na 2,4Ghz przy takich 'łagodnych" warunkach? 🙂

Znalazłem projekt w którym ktoś już zrobił coś podobnego opartego o ESP8266. Pytanie czy ten moduł WiFi ma tryb o obniżonego poboru mocy.

https://tzapu.com/minimalist-battery-powered-esp8266-wifi-temperature-logger/

2.4GHz to jest akurat ta częstotliwość, która jest najlepiej pochłaniana przez wodę — dlatego właśnie stosuje się ją w kuchenkach mikrofalowych i dlatego została ona rzucona jako ochłap do amatoskiego wykorzystania. Ziemniaki składają się głównie z wody. Są wręcz idealnym tłumikiem dla fal 2.4GHz.

Pomieszczenie o tej powierzchni, jeśli ma sensowne proporcje, nie jest duże. Ja raczej wyobrażałem sobie halę przemysłową 30x80m pełną sprzętów i rusztowań. W Twoim magazynie i na takich odległościach, przy widoczności anten zadziała chyba wszystko. Problemem jest tylko to zagrzebywanie w ziemniakach. Nie umiem z góry powiedzieć, czy dwa metry kartofli załatwią łączność na 2.4GHz. Albo czy przestaniesz słyszeć swój moduł na głębokości 20 czy 80cm. Tak jak napisał deshipu, ta częstotliwość marnie działa w obecności wody a rachityczne antenki wbudowane w moduły 24L01 na pewno nie pomogą.

Na dodatek antena działa dobrze jedynie w warunkach do jakich została zaprojektowana. Zwykle zakłada się, że najbliższym otoczeniem anteny jest powietrze i bardzo dużo uwagi zwraca się we wszelkich wytycznych dot. stosowania modułów radiowych właśnie na to, by blisko anteny nic nie było. Skoro zawalić sprawę (tj. zmniejszyć zasięg np. 10-krotnie) potrafi niefortunnie umieszczona głupia bateria czy wyświetlacz LCD z metalową ramką, to ziemniaki w ilościach hurtowych zrobią to z przyjemnością.

To ostatnie nie dotyczy jedynie 2.4GHz, bo nie mówię tu o tłumieniu i propagacji już wypromieniowanej fali, ale o samym działaniu anteny. To samo będzie dotyczyło pasm 868 i 433MHz. Oczywiście ludzie nauczyli się projektować tego typu rzeczy. Przecież anteny (i to kilka) ma każdy smartfon działający tuż przy kilkulitrowym pojemniku na mózg czy "sportowa" opaska na rękę, ale to jest trudne, kosztowne a i tak wychodzi zwykle marnie. Na dodatek wymaga bardzo drogiego oprogramowania do symulacji EM, dużej wiedzy, praktyki i bez badań modelowych się nie objedzie. Nie na darmo w ostatnich latach nastąpił wysyp literatury o "ubieralnych" urządzeniach IoT i ich antenach. Ja, nawet mając trochę sprzętu i szczątkowej wiedzy nie umiem zaprojektować lub wykonać anteny dobrze działającej np. w kieszeni. U Ciebie będzie to samo. Bardziej przypomina mi to projekt łączności radiowej z łodzią podwodną niż zabawę w temperatury. Z drugiej strony nie ma co się bać, to nie łączność z Księżycem, nie trzeba stawiać stacji na całym obwodzie Ziemi. Jeżeli masz szansę wykonania prostych eksperymentów, zrób je. Modułów jakie mam nie zagrzebię w ziemniakach, bo garaż jest cały zajęty przez mojej rowery i nie gromadzę zapasów na zimowe frytki. Sklecenie dwóch małych Arduinów z 24L01 to robota na jeden wieczór, programy testowe są dostępne wraz z biblioteką. Mrugaj zdalnie diodką i zakop gdzieś takie cudo, drugie trzymając w ręku. Odpowiedź dostaniesz w ciągu kilku minut i szybko wyczujesz na co te moduły stać w takich warunkach.

Jak rozumiem, w ziemniakach nie mogą się plątać jakieś antenkowe druty na niższe pasma więc tam dodatkową trudnością jest zrobienie małej i sprawnej anteny na falę 70 lub 34cm, mieszczącej się w pudełku. A podstawowe prawo mówi, że antena im mniejsza tym gorsza. Osobiście bym tu postawił na anteny tzw. chipowe. Są wąskopasmowe i także się odstrajają (co przy ich wąskim paśmie jest bardzo niedobre), ale są małe i przy odrobinie inwencji może dałoby je umieścić w obudowie tak, by do najbliższego ziemniaka miały z 8-10cm? Wtedy jest szansa, że to zadziała. Takie antenki są spokojnie dostępne na pasma 433 i 868MHz. W sumie obudowy czujników nie powinny być zbyt małe, żeby potem ktoś nie znalazł ich w zupie. Może nawet powinny być pomarańczowe i odporne na przekopywanie ciężkimi narzędziami? Laminaty? Kompozyty?

O samym WiFi już swoje zdanie napisałem - pomijając wady pasma 2.4GHz w tym zastosowaniu będzie to przerost formy nad treścią i znaczne marnotrawstwo energii.

Pamiętaj, że każdy scalak musisz zasilić. W Mini Pro nie masz nic zbędnego a programowanie robisz przez konwerter USB/UART, który zabierasz ze sobą do domu. W obudowie obok baterii ma zostać tylko to co niezbędne do działania czujnika w warunkach "bojowych". Z powodu zarówno kosztów (powielanych kilkadziesiąt razy) jak i energetyki.

Wtrącę swoje trzy grosze, jako, że mam doświadczenie z nRF24L01+. Po pierwsze, to chyba jedna z lepszych opcji na Arduino jeśli chodzi o dostępność oprogramowania, przykładów i opisów, co nie działa i dlaczego. Po drugie da się je usypiać. Jeśli chodzi o zasięg, to tylko te kartofle mogą stanąć na przeszkodzie, ale to już najlepiej jak sprawdzisz to w praktyce. Dużo do stracenia nie masz, bo moduły kosztują 5-10zł. Chociaż w sumie z góry wiadomo, że jakieś 433MHz będą działać lepiej.

Teraz jeśli chodzi o wady, to jest jedna rzecz, o której jeszcze nie wspomniano - zasilanie. Te standardowe tanie moduły nRF24L01+ wymagają całkiem stabilnego zasilania, lepszego niż to, co masz w Arduino. W moim przypadku do Arduino Uno po prostu wstawiałem dodatkowy kondensator 10uF i jakoś to działało, ale mam przeczucie, że przy Arduino Pro Mini taka fuszerka może nie wystarczyć i będziesz musiał mieć dodatkowy moduł zasilający. Niby do przeżycia, ale jednak zawsze to dodatkowe rzeczy do łączenia.

Teraz jeśli chodzi o wady, to jest jedna rzecz, o której jeszcze nie wspomniano - zasilanie. Te standardowe tanie moduły nRF24L01+ wymagają całkiem stabilnego zasilania, lepszego niż to, co masz w Arduino. W moim przypadku do Arduino Uno po prostu wstawiałem dodatkowy kondensator 10uF i jakoś to działało, ale mam przeczucie, że przy Arduino Pro Mini taka fuszerka może nie wystarczyć i będziesz musiał mieć dodatkowy moduł zasilający. Niby do przeżycia, ale jednak zawsze to dodatkowe rzeczy do łączenia.

Skoro ten NRF24 to jedyna rzecz podłączona do tego pro mini, to nie bardzo widzę co miałoby to zasilanie podawane z baterii destabilizować. Co innego jak masz robota z silnikami/serwami, a co innego gdy tylko mały czujnik temperatury.

1. Jeśli w hali masz dostępną instalację 230 V 50Hz to stabilizowany zasilacz też będzie OK.

2. Rozmiary hali nie są tak ogromne, żeby nie dało się połączyć przewodami.

3. Jeśli jednak chcesz skorzystać z komunikacji bezprzewodowej to anten nie musisz trzymać w kartoflach. Wykorzystałbym moduły z możliwością przyłączenia zewnętrznych anten i zamontowałbym je tak "aby się widziały".

To w takim razie po co w ogóle radio? Wystarczy przecież sieć pasywnych, dwuprzewodowych czujników temperatury (np. z taniej serii KTY, droższe PT100, PT1000 itp - wszystko zależy od zakładanej precyzji) podłączonych do jednej "centralki" przybitej gdzieś do ściany i zasilanej z sieci 230VAC. 10 czy 15 metrów przewodu nie stanowi przecież problemu w pomiarze, ale z jakiegoś powodu autor o kablach nie wspomina.

Witam.

Wg mnie użycie ESP8266 jest jak najbardziej dobrym pomysłem. Możesz obejrzeć serię filmików Andreas Spiess na Youtube o tym module, na guziku zegarkowym czas pracy 17dni. Ja na starym ogniwie (3 równolegle) z demontażu baterii laptopa osiągam 2 miesiące przy odczycie co 15minut. Wysłanie co godzinę teoretycznie czas x4. Potrzebny jednak jest sam moduł ESP 12E lub 12F lub 07 jeśli chcesz mieć antenkę (wg mnie nie trzeba na hali 8x10m, a ten 07 ma LED, który żre 2mA), bo same peryferia na płytce NodeMCU (konwerter UART i stabilizatory) zjadają 50mA i uśpienie ESP nic nie da. Ja bym kupił sam chip ESP8266 12E (Allegro 10zł) płytkę gdzie to można przylutować dla wygody (2,5zł, szukaj w google esp-12 adapter plate), płytkę Witty za 20zł z fotorezystorem i LED RGB bo pasuje pinowo do tej za 2,5, zdejmujesz górę z tej Witty, wkładasz po kolei swoje polutowane i łatwo programujesz. Do płytki trzeba dodać jakiś kondensator ceramiczny/SMD kilka uF. Program wyposażasz w OTA i kolejne wersje wgrywasz ONLINE przez WIFI. Przy usypianiu trzeba sobie dorobić niestety jakiś przycisk do resetu i drugi przycisk wprowadzenia modułu w pętlę, na której będzie czekał na soft z WIFI. Nie ma WIfi, ale za 100zł kupuję router z obsługą modemu USB GSM, modem GSM za 50 i zamawiam darmową kartę VIRGIN, uruchamiam pakiet Freemium i dostaję co miesiąc za FREE 300MB - do takiej ilości danych powinno wystarczyć. Czy to zadziała - można sprawdzić czy jest zasięg w telefonie, w końcu zamawiasz za Free z dostawą do domu, no raz na rok doładować za 5zł i pilnować by przedłużyć pakiet Freemium co 6 miesięcy. Mi akurat Virgin nie działa, muszę się bawić PLUSem i kosztuje trochę więcej. Dane wrzucasz na Thinkspeak - konto darmowe. Jak nie ma GSM to trzeba na jednym zrobić Accespoint i on musi być zasilany albo z dużego aku albo z sieci bo średnio pobiera 50mA, ogniwo 18500 nowe starczyło by na 1,5 dnia może, a pozostałe ESP ciężko byłoby tak zsynchronizować by wybudzały się w tej samej minucie co 1h. Komunikację można między nimi zrobić na tej samej zasadzie jak do wysyłania na Thinkspeak, tylko na Accespointcie musi być jakiś serwer postawiony, który będzie odbierał i parsował te dane, przedstawiał na wyświetlaczu, ewentualnie zapisywał na kartę SD. Modułów nie umieszczałbym w ziemniakach, tylko dociągnął przewód z czujnikiem DS, przecież można go puścić w stalowej/plastikowej rurce i na szczycie rury przymocować moduł ESP, tak żeby nawet szpadlem ciężko to było uszkodzić (w razie czego 5zł w plecy).

Stan baterii ESP może sobie sam odczytywać i wysyłać razem z temp., jak spadnie poniżej 3V to można go uśpić na amen by nie zepsuł ogniwa. Teoretycznie ESP można zasilać z 3,3+-10%, jednak jeszcze żadnego nie zepsułem zasilając ESP8266 w zakresie 3-5V. Sam producent przyznał, że ESP toleruje 5V, jednak USB może dać i 5,5V. Najgorszy jest moment programowania, bo z laptopa poleci napięcie USB i trzeba sprawdzić jakimś USB doktorem czy nie przekracza 5V, niestety płytka Witty ma osobne stabilizatory dla programatora i osobne dla shield'a z ESP. Podłączając swoją płytkę bez stabilizatora (by oszczędzić prądu później podczas pracy) można uszkodzić ESP i port USB (może podłączyć do lekko obciążonego HUBa USB?).

Tak wygląda podgląd z jednego ESP:

Zużycie prądu podczas pracy samego ESP to około 50mA, w czasie uśpienia 10uA. Teoretycznie powinien działać na pakiecie 6000mA 300dni, a nie dwa miesiące, ale to zużyte ogniwa, jest tam zimno i pewnie same się rozładowują, do tego jak nie złapie WIFI to próbuje za parę sekund ponownie, kondensator też ma jakieś samo-rozładowanie.

Miłej zabawy.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...