Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

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

Kontrola temperatury przez internet na Ardunio + ENC28J60 + TMP36

Daro1003 30 Lip 2017 10:10 795 12
  • #1 30 Lip 2017 10:10
    Daro1003
    Poziom 16  

    Witam
    Na poczatku proszę o wyrozumiałość gdyż dopiero zaczynam z Ardunio i mikrokontrolerami.
    Chciałbym zbudować monitorowanie temperatury przez internet dla swojej kolumny reaktyfikacyjnej.
    Zakupiłem więc:
    1. Moduł Ardunio UNO
    2. Moduł sieciowy Ethernet ENC28J60
    3. Czujki temperatury TMP36
    4. Moduł zasilania do płytek stykowych 5V 3,3V MB102
    5. Płytkę stykowa do testów + przewody i zworki połączeniowe

    6. Kurs Arduino od podstaw z Wydawnictow Sytrefa Kursów gdyż jest tam właśnie temat odnośnie budowy systemu monitoringu temperatury.

    Połączyłem wszystko wg instrukcji pobrałem odpowiednie programy. Otwieram gotowy już dodany do kursu projekt 26 i gdy przeprowadzam weryfikacje mam jakiś błąd. Czy ktoś z kolegów budował taki system lub wie co za błąd i jak go naprawić. Proszę o pomoc.
    Kontrola temperatury przez internet na Ardunio + ENC28J60 + TMP36

  • #2 30 Lip 2017 20:00
    zster

    Poziom 17  

    Czy to jedyny pojawiający się błąd? Zainstalowałeś wszystkie wymagane ( użyte ) w przykładzie biblioteki ?
    Czemu zabierasz się za trudne programy, nie znając podstaw ?

  • #3 10 Sie 2017 22:16
    Daro1003
    Poziom 16  

    zster napisał:
    Czemu zabierasz się za trudne programy, nie znając podstaw ?

    Ponieważ potrzebuje zrobić monitorowanie temperatur przez internet oraz na wyświetlaczu LCD.

  • #4 10 Sie 2017 22:33
    zster

    Poziom 17  

    Skoro nie chcesz udzielić odpowiedzi na pytania to znaczy że już to ogarnąłeś. Powodzenia.

  • #5 10 Sie 2017 23:29
    Daro1003
    Poziom 16  

    Daro1003 napisał:
    Skoro nie chcesz udzielić odpowiedzi na pytania to znaczy że już to ogarnąłeś

    No niestety nie ogarnąłem ;/.
    zster napisał:
    Czy to jedyny pojawiający się błąd? Zainstalowałeś wszystkie wymagane ( użyte ) w przykładzie biblioteki ?

    Błąd tak jedyny ale nie znalazłem odpowiedniej biblioteki wg instrukcji z filmu z kursu ponieważ niema juz na tej stronie do pobranie biblioteki która w filmie jest podpisana TCPIPstock. Próbowałem szukać coś podobnego i wgrywać ale jeszcze gorzej pojawiało się coraz więcej błędów w końcu straciłem komunikacje z płytką Arduino, więc zainstalowałem ponownie środowisko Arduino z tym że zgodnie jak na filmie starsza wersje 1.0.5-r2 więc obecnie nie posiadam biblioteki do Ethernet ENC28J60. Wszystko stanęło w miejscu a ja bawię się płytką i migającymi diodami :)

    Ogólnie mój cel to jak pisałem zbudowanie układu do monitorowania temperatury przez internet. Fajne byłoby dołożyć jeszcze wyświetlacz do tego układu.

    PS. Kolego zster jesteś z moich okolic (60km) liczę że pomożesz :)

  • Pomocny post
    #6 11 Sie 2017 00:01
    zster

    Poziom 17  

    Bez biblioteki nie dziwne, że pojawiają się błędy. Wklej tutaj proszę caly kod, który próbujesz uruchomić, zobaczymy czego na tym kursie uczą ;)

    I nie bardzo rozumiem, jak to możliwe, że do przykładowego kodu w takim kursie, nie dołączono wymaganych bibliotek ... Bo jeśli dobrze rozumiem, pobrałeś ten kurs lub masz go na CD/DVD, czy tak ?

  • #7 11 Sie 2017 00:11
    Daro1003
    Poziom 16  

    Jest jakaś biblioteka dodana do kursu EncEthernet-20101229 ale po dodaniu jej i zmianie w pliku enc28j60 z include "Wconstans.h na Arduino nic nie daje. Ta zmiana jest wg instrukcji z kursu.

    Okazuje się iż błędów jest dużo więcej. Zainstalowałem na nowo środowisko dodałem ta bibliotekę dodaną do kursu i nic błędów mnóstwo.

    Kod: jezyk_programowania
    Zaloguj się, aby zobaczyć kod


    Ok udało się kompiluje się poprawnie. Skopiowałem wszystkie rozpakowane biblioteki dodane do kursu zrestartowałem program. Otworzyłem szkic dałem kompiluj i poszło. Więc teraz zepnę jeszcze raz wszystko na nowo i spróbuje działać.

    zster napisał:
    Bo jeśli dobrze rozumiem, pobrałeś ten kurs lub masz go na CD/DVD, czy tak

    Tak kurs mam pobrany na dysku. W filmie w kursie pokazane jest jak pobiera się biblioteki z strony arduinosolutions gdzie obecnie strona wygląda inaczej niż w kursie i niema tam biblioteki. Instruktor pokazuje jak ją pobrać i importować. W plikach kursu są biblioteki ale nie wiedziałem że można je skopiować normalnie do folderu libraries to nigdzie nie było napisane tylko doczytałem w sieci.

    Dzięki za wskazówkę uświadomiłeś mnie że coś nie tak mam z bibliotekami i zacząłem kombinować po czym się udało.

    Czy jest możliwość budowy układu z modułem ENC28J60 i wyświetlaczem LCD ?
    Czy czujki TMP36 są dobrym rozwiązaniem czy lepiej byłoby to zrobić na DS18B20 ?

  • #8 11 Sie 2017 00:45
    zster

    Poziom 17  

    W załączniku masz bibliotekę. Rozpakuj ją i dodaj folder w którym znajdują się pliki do folderu, gdzie znajdują się wszystkie biblioteki arduino - zwykle jest to /Dokumenty/Arduino/libraries

    Z tym kodem :

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Wszystko kompiluje się bez błędów na IDE 1.8.2
    Czy działa? Nie wiem, nie sprawdzałem, kod sprawdzony tylko pobieżnie. Kompiluje się bez błędów więc powinno działać.

  • #9 11 Sie 2017 08:03
    Daro1003
    Poziom 16  

    Dzięki za wskazówkę uświadomiłeś mnie że coś nie tak mam z bibliotekami i zacząłem kombinować z bibliotekami dodanymi do kursu jak pisałem wcześniej nie widziałem że można je normalnie skopiować, po czym się udało.

    Czy jest możliwość budowy układu z modułem ENC28J60 i wyświetlaczem LCD ?

    Czy czujki TMP36 są dobrym rozwiązaniem czy lepiej byłoby to zrobić na DS18B20 ?

  • Pomocny post
    #10 11 Sie 2017 09:01
    zster

    Poziom 17  

    Właśnie dla tego dobrze jest zacząć jakąkolwiek naukę od prostych przykładów i poznania całego "otoczenia" środowiska programistycznego ;)

    Oczywiście, że można dołączyć LCD. W przykładach w środowisku Arduino masz przykłady do biblioteki LiquidCrystal ( ta bilbioteka powinna być już zainstalowana ).

    Jeśli chodzi o wybór czujnika - zależy od tego, co potrzebujesz. Jakiej rozdzielczości i dokładności pomiaru. I poniekąd jaka odległość będzie dzieliła czujnik od Arduino.

  • #11 11 Sie 2017 15:02
    Daro1003
    Poziom 16  

    1. Przewód łączący czujki a płytkę Arduino nie przekroczy 3,5 metra. I tutaj pytanie czy powinienem zastosować jakiś ekranowany przewód i ekran wpiąć jako masę ?

    2. Kontrola temperatury będzie dosyć dokładna w zakresie 60,0C - 99,9C głównie chodzi o dziesiętne stopnia ponieważ każda zmiana o 0,1 dziesiąte jest ważna a zmiana o 0,4 dziesiąte stopnia jest bardzo ważna. Czyli jak mam temp 78,2 stopnia a zmieni się na 78,6 to już muszę odpowiednio zareagować. Jedna czujka będzie tylko pilnować temperatury wody i pracować w zakresie 30 - 70 stopni i tutaj tylko zmiany 2-3 stopnia są ważne.

    TMP36 chyba się nie nada ponieważ podłączyłem LCD i ten czujnik temp ma wahnięcia przy temp pokojowej 22.27 - 22.75 i ciągle się waha, pracuje więc nie stabilnie więc jak dla mnie to słabo trzeba spróbować na DS18B20 tylko nie posiadam do niej bibliotek oraz nie wiem jaki powinien być dla niej kod.

    3. Jaki maksymalnie wyświetlacz mogę podpiąć ? Kupiłem na AliExpress jeden 20*4 i drugi większy 128x64 chciałbym podpiąć większy aby była przejrzystość i opisy temperatur.

  • #12 14 Sie 2017 18:38
    zster

    Poziom 17  

    Musisz porównać dwa parametry czujników - Dokładność i rozdzielczość. DS są ok. łatwe w obsłudze z poziomu bibliotek do Arduino. W razie problemów pisz a pomogę z nimi.

    Co do wyświetlaczy : to są dwa różne wyświetlacze. 4x20 to wyświetlacz alfanumeryczny. Dość prosty w obsłudze z Arduino. Drugi to wyświeltacz graficzny - potrzebuje znacznie więcej pinów i jest trudniejszy w obsłudze - gotowe biblioteki zajmują znacznie więcej RAM i FLASH oraz czasu procesora. Przy układzie z ETHERNETEM mogą być trudności w poprawnej pracy dla początkującego. Sugeruję jednak zostać przy 4x20 , na początek.

  • #13 14 Sie 2017 21:07
    Daro1003
    Poziom 16  

    TMP36 widzę że są nie stabilne chyba że da się to jakoś skonfigurować.

    Zacząłem więc działać z DS18B20.
    Trochę poczytałem w sieci i udało mi się zrobić coś takiego:

    1.Udało się zainstalować bibliotekę OneWire i DallasTemperature oraz odczytuje temperaturę i numer czujki z portu szeregowego.

    2.Udało się również podłączyć wyświetlacz, który podłączyłem od pinu 0 do 5 aby mieć porządek w wejściach.

    3.Czujkę podłączyłem pod kolejny pin 6 następnie dołączyłem równolegle drugą czujkę.

    4. Przy pomocy google skleciłem kod:

    [

    Kod: jezyk_programowania
    Zaloguj się, aby zobaczyć kod


    Obecnie gdy podgrzeję ręką drugą czujkę zmienia się temp co 0,5 stopnia mnie interesują wartości 0,1 lub nawet jeśli możliwe wartości setne 0,00 wtenczas dokładnie widziałbym czy temp. ma tendencje wzrostowa czy spadkową.

    Czujka na pozycji pierwszej pokazuję dokładnie co widać na poniższym filmie dlaczego się tak dzieje ? Czujka 1 jest bez obudowy natomiast czujka 2 jest już w obudowie i z przewodami.

    Potrzebuje pomocy przy modyfikacji kodu aby zwiększyć rozdzielczość wyświetlanie temperatury oraz stworzyć odpowiednie adresacje czujek których będzie 4 sztuki rozumiem że wszystkie wpinam równolegle.

    Napis w drugiej linii mruga dlaczego się tak dzieje ? Dołożyłem zewnętrzny zasilacz ale to nic nie pomogło. Jak to poprawić ?

    Wygląda to tak:

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME