Jump to content
ArturK

Automatyka w przyczepie w oparciu o Arduino

Recommended Posts

ArturK

Witajcie,
jest to mój pierwszy post na tym forum, więc korzystając z okazji chciałem z Wami wszystkimi bardzo ładnie się przywitać. Zaglądam tutaj już od dłuższego czasu, natomiast nie zakładałem konta ponieważ wszystko co trzeba było dotychczas napisać, pisała moja Żona  - Ewa0208.

Zmobilizowałem się dopiero teraz, gdy natrafiłem na wątek o automatyzacji w przyczepie:

http:// https://forum.karawaning.pl/topic/15618-raspberry-pi-a-przyczepy-i-kampery/

Jestem bardzo ciekawy, czy autorowi udało się zrealizować swój pomysł, niestety wątek dawno temu się urwał.
Jak wielu z Was mam nieustającą potrzebę wprowadzania ulepszeń w moich przyczepach i każda kolejna otrzymuje coraz większy pakiet tuningowy. Podobnie jest z obecną przyczepą, którą kupiliśmy na zakończenie sezonu 2016. Przygotowując ją do sezonu w 2017 roku zacząłem od zamontowania stałego zbiornika na wodę, bo w przyczepie był taki mały 20 litrowy na kółkach. W bakiście zrobiłem osobny zbiornik na wodę do spłuczki w WC, przy okazji rozwiązałem mój odwieczny problem z koncentratem. Problem polegał na tym, że czasem zdarzało mi się przygotować za słaby roztwór i dolewanie koncentratu niewiele pomagało, bo opadał on na dno zbiornika i był od razu zasysany przez pompkę. Robiąc nowy, niefabryczny zbiornik wrzuciłem do niego dwie pompki. Jedna jest do spłuczki, a druga do mieszania koncentratu w zbiorniku :). Zamontowałem bezprzewodową kamerę cofania i oświetlenie LED w szafach. Przy okazji tych prac rozprowadzałem w przyczepie okablowanie sygnałowe do systemu który powoli projektowałem w głowie.
Ale po kolei :)
Podobnie jak kolega roblat jestem pasjonatem informatyki i elektroniki. Od jakiegoś czasu fascynują mnie mikrokontrolery, więc w ramach nauki i zabawy kupiłem kilka płytek Arduino  https://pl.wikipedia.org/wiki/Arduino i do domowego akwarium zacząłem konstruować urządzenie, które miało min. sterować oświetleniem i utrzymywać stałą temperaturę wody w oparciu o ogniwa Peltiera. Udało mi się przygotować całą część programistyczną, natomiast zabrakło mi motywacji do zlutowania elektroniki. Była to jednak okazja do przyswojenia języka C (wcześniej nie miałem potrzeby korzystania z niego) i zapoznania się z możliwościami platformy Arduino.
Wiedząc już, że przy Arduino ogranicza mnie głównie wyobraźnia, zacząłem wymyślać jego zastosowania w przyczepie.
Chciałem zebrać wszystkie informacje w jednym miejscu. Pierwsza funkcjonalność urządzenia miała być następująca:
- pomiar temperatury w przyczepie i na zewnątrz,
- pomiar ilości wody w zbiorniku głównym,
- pomiar ilości gazu w butli,
- pomiar stężenia gazów (w bakiście propan-butan, w przyczepie tlenek węgla)
- sygnalizacja stanu zasilania 230V/12V
- data, godzina :)

Z czasem pojawiły się pomysły na:
- pomiar temperatury skraplacza lodówki i chłodzenie lodówki wiatraczkami w zależności od temp.
- sterowanie ogrzewaniem podłogowym w trybie manualnym i automatycznym
- automatyczne poziomowanie przyczepy za pomocą żyroskopu i 4 silników bezszczotkowych (ten pomysł prawdopodobnie nigdy nie zostanie zrealizowany)

System miał być obsługiwany za pomocą dotykowego panelu LED.

Takie były pomysły i na sezon 2018 zostały zrealizowane (poza tym jednym). 

Po drodze popełniałem sporo błędów, wybierałem niewłaściwe rozwiązania, paliłem moduły, miło spędzałem wieczory przy rozwiązywaniu problemów :)
W ubiegłym roku demonstrując swoje dzieło, jako przykład możliwości podałem sterowanie SMSami oświetleniem przyczepy. Był to luźny przykład, ale miałem cały rok na poprawki w elektronice i oprogramowaniu, więc czemu nie?
Na sezon 2019 dodałem komunikację z przyczepą poprzez SMS. Można odczytywać wszystkie dane z czujników, zapalać i gasić światło przed przyczepą, sterować ogrzewaniem podłogowym.

To tak tytułem wstępu. W kolejnych postach postaram się opisać Wam po kolei etapy tworzenia mojego systemu.

Share this post


Link to post
Share on other sites
seba222

Trzymam kciuki za Ciebie i twój projekt. Ja doszedłem do pewnego momentu i .... brakło czasu :( Tutaj opisywałem swoje boje:

 

 

Mam nadzieję, że Ty dokończysz dzieła. Mój komputer leży w szafie i się kurzy niestety :(

Share this post


Link to post
Share on other sites
ArturK

Jakoś nie przyszło mi wcześniej do głowy, żeby szukać tutaj podobnych projektów.

Przypadkiem Google podpowiedziało mi link do tematu z malinką :)

Przestudiuję dokładnie to co udało się Tobie zrobić :) Widzę, że wiatraczki do lodówki zrobiłeś na mostku H. Ja też tak zacząłem, a ostatecznie skończyłem na przekaźnikach półprzewodnikowych.

Share this post


Link to post
Share on other sites
ArturK

Opis zacznę od platformy sprzętowej.
Niektóre linki będę podawał do polskich sklepów. Nikogo nie reklamuję, podaję tylko link do miejsca do produktu z bardzo dobrej jakości opisem i specyfikacją.
Sercem systemu jest płytka Arduino Mega. Wybrałem ją ze względu na wielkość pamięci i dużą ilość wejść/wyjść.
https://botland.com.pl/pl/arduino-moduly-glowne/1062-arduino-mega-2560-rev3-a000067-8058333490083.html
Interfejs użytkownika wykonany na 5" wyświetlaczu LCD
https://www.itead.cc/nextion-nx8048t050.html
Bardzo fajny chiński produkt, z możliwością programowania i bardzo dobrą dokumentacją: https://nextion.itead.cc/resources/documents/
Całość interfejsu tworzymy samemu, rysujemy wygląd poszczególnych ekranów i w łatwy sposób wgrywamy do wyświetlacza.
Pierwsze próby uruchomieniowe wyglądały tak:20180223.thumb.jpg.2f913cc7c0e5f04c0af435ee174b8225.jpg

Share this post


Link to post
Share on other sites
automaciek

No to czekam na c.d. Sam na ardu skonstruowałem już :
-4 strefowy termostat ogrzewania domu (nextion + RTC + MEGA)
- podzielnik kosztów gazu i wody (co + wu + cwu) na dwa mieszkania.
- automat składania lusterek (Kia Rio)
- jakis termoregulator (program własny)
Faktycznie można sobie pół otoczenia zautomatyzować, ile tylko wyobraźnia podpowie.

Share this post


Link to post
Share on other sites
byry007

Jak dokonasz tego poproszę też takie coś ja miałem w planach pomiar temp lodówki, temp w środku i na zewnątrz przez net ale Ty idziesz ostro.

Share this post


Link to post
Share on other sites
seba222
8 godzin temu, ArturK napisał:

Jakoś nie przyszło mi wcześniej do głowy, żeby szukać tutaj podobnych projektów.

Przypadkiem Google podpowiedziało mi link do tematu z malinką :)

Przestudiuję dokładnie to co udało się Tobie zrobić :) Widzę, że wiatraczki do lodówki zrobiłeś na mostku H. Ja też tak zacząłem, a ostatecznie skończyłem na przekaźnikach półprzewodnikowych.

Już kilka osób tutaj podchodziło do wykonania "centrum sterowania". Sposoby były różne, niestety żaden z projektów (chyba) nie został doprowadzony do końca :( Ja sam najwięcej zrobiłem wtedy, kiedy zwichnąłem nogę i dwa tygodnie siedziałem w domu !

Jeżeli chcesz i potrzebujesz jakiś kawałek kodu, schemat itp. pisz śmiało. Co wiem, to pomogę :) 

 

7 godzin temu, ArturK napisał:

Opis zacznę od platformy sprzętowej.
Niektóre linki będę podawał do polskich sklepów. Nikogo nie reklamuję, podaję tylko link do miejsca do produktu z bardzo dobrej jakości opisem i specyfikacją.
Sercem systemu jest płytka Arduino Mega. Wybrałem ją ze względu na wielkość pamięci i dużą ilość wejść/wyjść.
https://botland.com.pl/pl/arduino-moduly-glowne/1062-arduino-mega-2560-rev3-a000067-8058333490083.html
Interfejs użytkownika wykonany na 5" wyświetlaczu LCD
https://www.itead.cc/nextion-nx8048t050.html
Bardzo fajny chiński produkt, z możliwością programowania i bardzo dobrą dokumentacją: https://nextion.itead.cc/resources/documents/
Całość interfejsu tworzymy samemu, rysujemy wygląd poszczególnych ekranów i w łatwy sposób wgrywamy do wyświetlacza.
Pierwsze próby uruchomieniowe wyglądały tak:

Arduino MEGA jest .... mega :) Pamiętaj o jednym, że wybierasz sprzęt droższy i przez to całość będzie dużo kosztować (jak zliczysz wszystko). Ideą jest wg. mnie pozostawienie funkcjonalności przy zdecydowanym ograniczeniu kosztów - stąd u mnie UNO. Widzę również, że korzystasz z gotowych modułów / układów. Też tak chciałem, ale później okazało się, że po prostu szukanie, który kabelek się odpiął, gdzie coś nie styka to droga przez mękę - stąd projekt płytki i upakowanie wszystkiego na jednej "platformie", co ma znaczenie później, gdy będziesz upychał wszystko w jedna obudowę!

PS. widzę, że jesteś z Krakowa, więc może spotkamy się kiedyś na jakimś wyjeździe w okolicy i możemy wtedy podyskutować nad projektem :)

Share this post


Link to post
Share on other sites
ArturK
Posted (edited)
16 godzin temu, seba222 napisał:

Arduino MEGA jest .... mega :) Pamiętaj o jednym, że wybierasz sprzęt droższy i przez to całość będzie dużo kosztować (jak zliczysz wszystko).

Arduino traktuję jak hobby, a na ciekawe hobby można wydać kilka złotych 😀. Korzystam z klonów, więc jest trochę taniej. Zawsze mam kilka różnych płytek, Mega, Uno, Leonardo każda jest dobra do czego innego. W przyczepie tak jak mówiłem potrzebowałem sporej ilości wejść/wyjść.

To tylko część kabelków, które trzeba było podłączyć:

20180503_204226.thumb.jpg.347bdca8197dd44335e7c2705cc1346d.jpg

Jak zauważyłeś używam gotowych modułów, bo jest to jedyny sposób żebym doprowadził coś do końca. Sterownik do akwarium chciałem zrobić tak jak Ty, specjalnie zaprojektowany układ, płytka.. Program był już gotowy, przetestowany, części kupione i... leżą w szafie 😀.

Sterownik do przyczepy postanowiłem oprzeć o gotowe moduły, uruchomić, przetestować i dopiero wtedy myśleć o rozwiązaniu dedykowanym. Mam w planach na bazie doświadczeń z Arduino przygotować coś na mikrokontrolerze  ATmega2560. 

PS. Mamy przed sobą cały sezon, więc jest szansa gdzieś się spotkać. Zawsze może to być Smoczy 🙂

 

 

W dniu 2.07.2019 o 22:17, automaciek napisał:

No to czekam na c.d. Sam na ardu skonstruowałem już :
-4 strefowy termostat ogrzewania domu (nextion + RTC + MEGA)
- podzielnik kosztów gazu i wody (co + wu + cwu) na dwa mieszkania.
- automat składania lusterek (Kia Rio)
- jakis termoregulator (program własny)
Faktycznie można sobie pół otoczenia zautomatyzować, ile tylko wyobraźnia podpowie.

Powiem Ci, że różne rzeczy wymyślałem, ale automat składania lusterek mnie zaskoczył 🙂

Fajnie jest jak coś się zrobi i to później ma jakieś praktyczne zastosowanie.

Edited by ArturK (see edit history)

Share this post


Link to post
Share on other sites
ArturK

Poczytałem trochę o wcześniejszych projektach i widzę, że w większości do pomiaru temperatury używane były termometry cyfrowe DS18B20.

Ja również od nich zacząłem, ale ostatecznie wybrałem analogowe, ponieważ na DS18B20 pomiar temperatury trwa ok. 700ms, dla mnie to było za długo.

Pomiar ilości wody też robiłem na kilka sposobów, zanim wybrałem docelowe rozwiązanie. Zacząłem od czujnika ultradźwiękowego, który mierzył odległość od lustra wody.

Po odpowiednim skalibrowaniu podawał dosyć precyzyjne wyniki pomiarów, można było nawet próbować obliczać ilość wody w litrach. Niestety testy robiłem na takim czujniku

https://botland.com.pl/pl/ultradzwiekowe-czujniki-odleglosci/1420-ultradzwiekowy-czujnik-odleglosci-hc-sr04-2-200cm-5903351241366.html

który miał odpowiedni zakres pomiarowy (2-200cm), ale nie był wodoodporny. Jak już wszystko przetestowałem, to zacząłem poszukiwania czujnika wodoodpornego i tu spotkała mnie niemiła niespodzianka. Zakres pomiarowy w czujnikach wodoodpornych zaczynał się od 20cm, czyli gdybym chciał mierzyć poziom wody w pełnym zbiorniku, to czujnik powinien być min. 20cm nad nim.

https://botland.com.pl/pl/ultradzwiekowe-czujniki-odleglosci/7266-ultradzwiekowy-czujnik-odleglosci-jsn-sr04t-20-450cm-z-sonda-woodoporna.html

Znalazłem więc inne rozwiązanie, będę mierzył czujnikiem odbiciowym IR! 🙂 Wyglądał na wodoodporny i znalazłem taki z odpowiadającym mi zakresem pomiarowym

https://botland.com.pl/pl/analogowe-czujniki-odleglosci/23-sharp-gp2y0a41sk0f-analogowy-czujnik-odleglosci-4-30cm.html?search_query=sharp&results=47

Do zbiornika włożyłem rurę kanalizacyjną fi50 z dekielkiem.

rura-kanalizacyjna.jpg.95bdaac614a34db84d478d29128c888a.jpg

 

W dekielku zamontowałem czujnik, a do rury wrzuciłem piłeczkę pigpongową 😀 Wyglądało na genialne rozwiązanie, ale... Pomiar był zbyt czuły, wystarczyło przejść się po przyczepie, rozhuśtać wodę w zbiorniku i głupio wyglądało jak ilość wody na wyświetlaczu ciągle się zmieniała. Zmodyfikowałem program tak, żeby go trochę "znieczulić" ale nie byłem zadowolony z takiego rozwiązania, ponieważ procesor niepotrzebnie zajmował się uśrednianiem pomiaru, zamiast robić coś innego. Zacząłem szukać innego rozwiązania.

Ostatecznie w sklepie żeglarskim zakupiłem taki analogowy czujnik:

https://zefir.sklep.pl/czujniki-i-plywaki/3427-czujnik-poziomu-paliwa-25cm.html

i to jest moje rozwiązanie docelowe. Wskazania ilości wody mam podane w procentach co 10 i dla mnie jest to wystarczająca precyzja. Zaletą tego czujnika jest bardzo szybki i prosty do "obrobienia" w programie analogowy pomiar.

W następnym etapie opiszę Wam moje boje z pomiarem ilości gazu w butli 🙂

 

Share this post


Link to post
Share on other sites
automaciek

Może niepotrzebnie stosujesz tak częste próbkowania (czy to temperatury, czy poziomu). Uśrednianie wyników pomiaru do wizualizacji też można przeprowadzać co sekundę, a nie w głównej pętli programu.

Share this post


Link to post
Share on other sites
Michalc3

Względem tego pomiaru w rurze kanalizacyjnej ;) Nie myślałeś może o zmniejszeniu fizycznego dopływu wody do rury pomiarowej? Wtedy ruchy w przyczepie nie wplywały by tak znacząco na pomiar. Pomiar na piłeczkę pingpongową, ale dopływ wody do rury przez jakiś ogranicznik przepływu? Tak sobie gdybam...

Share this post


Link to post
Share on other sites
ArturK
Posted (edited)
14 godzin temu, automaciek napisał:

Może niepotrzebnie stosujesz tak częste próbkowania (czy to temperatury, czy poziomu). Uśrednianie wyników pomiaru do wizualizacji też można przeprowadzać co sekundę, a nie w głównej pętli programu.

Właściwie nie mam głównej pętli programu 😉 Korzystam z biblioteki Timers.h - tworzy takie pseudo wątki jak w normalnych systemach operacyjnych. Poszczególne pomiary wykonuję w osobnych wątkach, np. czas co 2s, poziom wody co 4s, ilość gazu co 11s, test zasilania co 3,5s. Walcząc o każdy mA zoptymalizowałem program tak, żeby procesor nie był niepotrzebnie obciążony. Dodatkowo jak sterownik wykryje przejście zasilania na 12V, to zatrzymuje niektóre wątki np. obsługę ogrzewania podłogowego, bo ono działa i tak tylko na 230V, obsługę wiatraczków lodówki, bo przełączam ją wtedy na gaz, moduł GSM przechodzi w sleep mode.

Czujnik optyczny miał czasem bardzo losowe wskazania, zwłaszcza gdy próbowałem wykonać tylko jeden pojedynczy pomiar. Dlatego robiłem 10 pomiarów, odrzucałem 2 skrajne wartości i liczyłem średnią. Dodatkowo nie zmieniałem wskazań gdy wynik nie różnił się więcej niż o 5% od wcześniejszego. Uznałem, że taka zabawa jest bez sensu i zastosowałem czujnik pływakowy.

Odczyt to jedna linijka

wodaValue = analogRead(woda_pin);

Potem już tylko porównanie z tablicą wartości rezystancji dla poszczególnych poziomów wody i viola. Jeden cykl zegarowy 😀

Dlatego lubię czujniki analogowe 😉

Przykład do Timers.h - http://forum.arduinopolska.pl/watek-biblioteka-timers-koniec-z-uciążliwym-delay

 

 

10 godzin temu, Michalc3 napisał:

Względem tego pomiaru w rurze kanalizacyjnej ;) Nie myślałeś może o zmniejszeniu fizycznego dopływu wody do rury pomiarowej? Wtedy ruchy w przyczepie nie wplywały by tak znacząco na pomiar. Pomiar na piłeczkę pingpongową, ale dopływ wody do rury przez jakiś ogranicznik przepływu? Tak sobie gdybam...

Tak się nie uda, w naczyniach połączonych ciecz zawsze wyrówna swój poziom.

10 godzin temu, Michalc3 napisał:

Względem tego pomiaru w rurze kanalizacyjnej ;) Nie myślałeś może o zmniejszeniu fizycznego dopływu wody do rury pomiarowej? Wtedy ruchy w przyczepie nie wplywały by tak znacząco na pomiar. Pomiar na piłeczkę pingpongową, ale dopływ wody do rury przez jakiś ogranicznik przepływu? Tak sobie gdybam...

Jak przemyślałem Twój pomysł, to mogłoby to zadziałać, tylko rura musiałaby być szczelnie wklejona w zbiorniku żeby przepływ odbywał się tylko przez ten ogranicznik😀

Edited by ArturK (see edit history)

Share this post


Link to post
Share on other sites
automaciek

Nie do końca słuszna opinia jeżeli w pionowej rurze, od góry otwartej, a od dołu zamkniętej zrobisz w dnie mały otwór to poziom cieczy w rurze nie będzie zależny od falowania cieczy w zbiorniku głównym.@michalc3 ma rację.

Share this post


Link to post
Share on other sites
ArturK

Racja. U mnie jednak wpływ poruszania przyczepą był za bardzo widoczny bez "obrobienia" tego w programie.

Share this post


Link to post
Share on other sites
GregPower
W dniu 3.07.2019 o 06:14, seba222 napisał:

Arduino MEGA jest .... mega :) Pamiętaj o jednym, że wybierasz sprzęt droższy i przez to całość będzie dużo kosztować (jak zliczysz wszystko). Ideą jest wg. mnie pozostawienie funkcjonalności przy zdecydowanym ograniczeniu kosztów - stąd u mnie UNO. Widzę również, że korzystasz z gotowych modułów / układów. Też tak chciałem, ale później okazało się, że po prostu szukanie, który kabelek się odpiął, gdzie coś nie styka to droga przez mękę - stąd projekt płytki i upakowanie wszystkiego na jednej "platformie", co ma znaczenie później, gdy będziesz upychał wszystko w jedna obudowę!

PS. widzę, że jesteś z Krakowa, więc może spotkamy się kiedyś na jakimś wyjeździe w okolicy i możemy wtedy podyskutować nad projektem :)

Ciekawy jestem jak to wszystko będzie działało. Bawiłęm się kiedyś Arduino ale nie myślałem o  instalacji w przyczepie. Fajny pomysł  i projekt i sam bym pomyślał nad jakimś projektem.

Powodzenia

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...