Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Fibaro Fibaro
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Arduino - sterownik uprawy

lukasz_ankiewicz 10 Cze 2016 00:16 1494 10
  • #1 10 Cze 2016 00:16
    lukasz_ankiewicz
    Poziom 3  

    Arduino Leonardo które zamierzam wykorzystać będzie korzystało z yun shieldu, 6 czujników temperatury ds18B20 jednego DHT22, dwóch modułów 4 przekaźników podłączonych do wyjść PCF8574 oraz z modułu PCA9685 do sterowania 12 driverami power led DW8501 i 4 modułami mosfet do obsługi 3 kanałów wentylatorów i pompy wody, oraz moduł zegara RTC3231, całość zasilana z zasilacza ATX

    Mimo że wcześniej nie miałem z elektroniką czy programowaniem nic wspólnego udało mi zakończyć pierwszą część tzn doprowadzić do tego że arduino po wpisaniu "komendy" w serial monitorze przesyła wynik pomiaru bądź, ustawia wybrane wyjście zadaną wartością np. wpisując:

    a4096 - "ustawia" wybrany kanał power ledów aby świeciły z pełną mocą :)
    e2058 - zasilanie silnika pomp na 6V
    l1 -zwraca odczyt jednego z termometrów
    h - wilgotność powietrza, itp:

    powstało to jako zlepek kilku podpatrzonych przykładów/tutoriali etc i mimo że pewnie nie wygląda zbyt ciekawie o dziwo działa.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Niestety nie wiem jak zabrać się za drugą część tzn właściwy sterownik po stronie Yun.

    Zależało by mi na pomocy tzn nakierowaniu na jakieś materiały jak to zrealizować aby tym zarządzać.
    chiałbym aby program działający na linuksie przy pomocy serial monitora:
    -zbierał odczyty
    - przedstawiał je na stronie www
    - sprawdzał je na podstawie wartości zadanych (i możliwych do zmiany z poziomu www)
    - ustawiał wyjścia na podstawie odczytów
    tzn np. włączał światło o odpowiedniej godzinie czy wentylatory po przekroczeniu jakiejś temperatury.

    Będę bardzo wdzięczny za jakiekolwiek sugestie.
    i pomoc w wybraniu języka / programu do zrealizowania projektu. (dla laika,dyletanta, profana :) )

    Chciałbym się również dowiedzieć ile może kosztować zlecenie takiego projektu.

    0 10
  • Fibaro
  • Pomocny post
    #2 10 Cze 2016 11:01
    tmf
    Moderator Mikrokontrolery Projektowanie

    @lukasz_ankiewicz Jeśli piszesz o zleceniu, to po prostu kup PLC, np. Siemensa - za 400-600 masz profesjonalnym moduł o możliwościach jakie potrzebujesz, do tego banalny do oprogramowania w Logo.
    Jeśli chcesz to zrobić sam, to:
    - IMHO Arduino to porażka jeśli chodzi o poważinejsze serwowanie www,, można protezować wykorzystując np. ESP8266, chociaż lepiej byłoby wykorzystać Adruino do generacji i przesyłania danych, a na jakimś minikomputerze, np. RPi postawić serwer www z prawdziwego zdarzenia. Oczywiście proste stronki można zrobić i na Arduino.
    - czeka cię poważniejsza nauka i zacząłbym od podstaw, a nie rzucania się na głęboką wodę,
    - pokaż też schemat, nie wiem na ile znasz elektronikę, ale jeśli nie czujesz się na 100% pewny, to forumowicze zapewne dużo pomogą czy zasugerują w tek kwestii.

    0
  • Fibaro
  • #3 10 Cze 2016 12:44
    lukasz_ankiewicz
    Poziom 3  

    @tmf Dzięki za zainteresowanie. Co do faktu, że rzuciłem się na głęboką wodę w 100% zdaję sobie z tego sprawę :)
    Tak jak wspomniałeś arduino leonardo chciałbym wykorzystać tylko do zbierania danych, ich przesyłania oraz sterowania elementami wykonawczymi na podstawie danych otrzymanych i to jak dotychczas udało mi się uzyskać.
    Do sterowania tym procesem chciałbym wykorzystać: mikroprocesor znajdujący sie na płytce Yun shilda:
    Procesor Linux: Atheros AR9331
    Architektura: MIPS 400 MHz
    Napięcie zasilania: 3,3 V
    Ethernet IEEE 802.3 10/100Mbit/s
    WiFi IEEE 802.11b/g/n
    Pamięć RAM: 64 MB DDR2
    Pamięć Flash: 16 MB
    Gniazdo USB Typ-A 2.0
    Czytnik kart Micro-SD

    oba elementy komunikowały by się przez serial monitor.
    chciałbym pozyskać jakieś informacje na temat programowania tego mikroprocesora i pomocy w doborze najprostszego języka i programu do tego celu.
    Z góry dzięki :)

    0
  • Fibaro
  • Pomocny post
    #4 10 Cze 2016 13:27
    tmf
    Moderator Mikrokontrolery Projektowanie

    Nie zauważyłem, że w tym arduino siedzi taki potwór. Jednak jeśli mogę coś zasugerować to porzuciłbym to Arduino Yun, które jak widzę cenę ma kosmiczną, na rzecz jakiejś wersji RPi. Pomijam cenę, bo to przy jednostkowej sprawie ma drugorzędne znaczenie, ale na RPi masz po pierwsze normalne GNU/Linux i tony oprogramowania, w tym serwery www,, języki skryptowe i wszystko co potrzebujesz. Implementacja www i tego typu interfejsu na RPi ze względu na gotowce jest banalna.
    Co do komunikacji - jak rozumiem chodzi o komunikację płytak Arduino (małe) - Arduino Yun? Komunikacja przez serial monitor, cokolwiek pod tym pojęciem rozumiesz to raczej zbędna komplikacja. Do wymiany danych użyj zwykłego RS232/RS485, lub WiFi na module ESP8266, które może pracować jako bezprzewodowy most dla RS232.

    0
  • #5 10 Cze 2016 14:18
    lukasz_ankiewicz
    Poziom 3  

    Yun shild jest właśnie nakładką na leonardo zawierającą ten mikroprocesor kosztuje ok 30 USD wiec bez tragedii.
    Komunikuje sie z leonardo przez serial RX,TX
    Właśnie nie bardzo wiem jak rozumieć ten serial monitor :) tzn obecnie jak wpisuje w serial monitorze IDE Arduino "komendę" arduino reaguje ustawiając wyjścia lub zwracając wyniki pomiarów. Chciałbym aby tą czynność robił za mnie właśnie mikroprocesor yun shilda, ale nie jestem pewien czy jest to możliwe (prawdopodobnie tak) i jak czym najłatwiej go zaprogramować.

    0
  • Pomocny post
    #6 10 Cze 2016 18:39
    K13
    Poziom 17  

    Trochę poza tematem, co autor zamierza hodować ?:)

    0
  • #7 10 Cze 2016 18:56
    lukasz_ankiewicz
    Poziom 3  

    Całoroczna uprawa truskawek :)

    0
  • Pomocny post
    #8 12 Cze 2016 11:56
    94075
    Usunięty  
  • #9 29 Cze 2016 03:03
    lukasz_ankiewicz
    Poziom 3  

    Albert bardzo dziękuję za odpowiedź i podesłane linki.

    Troszkę poczytałem i potrzebne mi kolejne nakierowanie :)
    tj. ze względu na to że po wgraniu bibliotek i określeniu prostej metody komunikacji po stronie arduino Leonardo mam zajęte prawie 85% flasha program sterujący chciałbym umieścić po stronie A Yun.
    Czy możliwe jest aby
    - po włączeniu Yun automatycznie odpalał program napisany np w Pytonie,
    - Ten przesyłał by komendę do A leonardo i pobrał odczyty,
    - później pobrałby "ustawienia" z bazy danych np sqlite,
    - Na podstawie obu zestawów danych ustawiłby wyjścia A leonardo
    - Zapisałby "ustawienia" i "odczyty" w bazie danych
    i z opóźnieniem np 0,5 sek. działał sobie w funkcji loop podobnej do tej z C arduino?

    jednocześnie skrypt np php pobierał "odczyty" z bazy danych i wyświetlał na stronie
    inny pobierał "ustawienia" wybrane przez klienta www i zapisywał w bazie danych.

    Nie wiem na ile to co napisałem jest czytelne starałem się jak mogłem :)
    Chciałbym na razie skupić się na takim modelu i jeśli ktoś widzi w nim jakieś błędy byłbym bardzo wdzięczny za wskazówki.

    Kolejny problem dotyczy faktu, że z tego co czytałem sqlite blokuje plik podczas zapisu danych ale nie jestem pewien czy blokuje go również podczas odczytu, czy jest jakiś trik żeby to obejść myślałem np o 2 plikach BD jeden do "odczytów" drugi do "ustawień". Boje się że nie uda mi się tego zsynchronizować i pojawią się błędy gdy baza nie będzie dostępna dla któregoś z procesów ;/
    Ewentualnie czy w Pytonie da się zrobić jakąś taką konstrukcję

    while baza dostępna
    loop


    Po raz kolejny będę bardzo wdzięczny za rady/materiały.

    0
  • Pomocny post
    #10 01 Lip 2016 11:10
    94075
    Usunięty  
  • Pomocny post
    #11 01 Lip 2016 12:39
    piotr411
    Poziom 22  

    albertb napisał:
    ..... Na PC znajdziesz więcej dokumentacji i gotowców......
    Albert


    To najrozsądniejsza podpowiedź.
    Możesz skorzystać z miniPC lub platform na ARM, Odroid lub podobnych.
    Wiele komponentów masz gotowych za rozsądne pieniądze, do tego pomyśl o dozownikach, albo nawet o uprawie fertygacyjnej.

    Tak czy siek, Arduino to mało rozwojowy pomysł dla takich projektów.
    Nawet stwierdził bym, ze sztuka dla sztuki.

    Wykonałem wiele instalacji w pawilonach szklarnianych i wiem, że AVR, a zwłaszcza programowanie w środowisku ARDUINO, to bardzo zły pomysł, wtym przypadku. Co do truskawek i całorocznej uprawy, to nie będzie łatwo, bo to rośliny o owocowaniu sezonowym. Jeśli chcesz to robić komercyjnie trzeba mieć co najmniej 3 osobne pawilony z różnymi odmianami.
    Do takiej uprawy nie nadaja sie też wszytkie gatunki truskawek. Dobra jest Maxima, Polka, i inne odmiany np z Azji. Ogólnie temat morze ;)
    Nawet Holendrzy uciekają od takich upraw :) komercyjnie mało opłacalne, lepiej wychodzi się na roślinach ozdobnych.

    Jak masz warunki to próbuj, np z borówkami, nowością czyli agrestokiwi :)
    Mając powyższe na uwadze Arduino jako środowisko do zabawy Blink LED, jest skazane na porażkę :) Przy czujnikach środowiskowych szybko zabraknie pamięci i wydajności, a mizerne referencje ograniczą programowanie.

    Do projektu dodaj obsługę dozowników nawozów, truskawki w uprawie szklarniowej należy regularnie nawozić, inaczej lipton z tego będzie, nie wspomne o oświetleniu właściwym. Nie jestem pewien czy Ledowe oświetlenie wystarczy. Lampy neonowe lepiej się sprawdzają i są dedykowane do upraw.

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo