Elektroda.pl
Elektroda.pl
X
Computer ControlsComputer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Karta przekaźnikowa WiFi na ESP8266

tomek10861 26 Mar 2016 14:29 11100 28
  • Karta przekaźnikowa WiFi na ESP8266
    Witam wszystkich i życzę na wstępie wesołych świąt :D Chciałem wam zaprezentować kartę przekaźnikową WiFi. Karta jest 8 kanałowa wykorzystuje 3 porty GPIO modułu ESP (GPIO0 GPIO2 i Rx) do sterowania rejestrem przesuwnym. Rejestr ten steruje układem ULN a on przekaźnikami. Łączy się ona co około 1s z serwerem sterowania i sprawdza zmianę stanów.

    Karta przekaźnikowa WiFi na ESP8266

    Karta została zaprojektowana w programie KiCAD, a program napisany w środowisku Arduino. Karta ta będzie wykorzystywana do sterowania światełkami on-line (teraz możecie sobie posterować koszykiem wielkanocnym). Koszt karty nie przekracza 100zł. Jeśli macie jakieś pytania zapraszam do ich zadawania oraz do testowania karty na stronie www.sterowanie24.pl

    Karta przekaźnikowa WiFi na ESP8266 Karta przekaźnikowa WiFi na ESP8266 Karta przekaźnikowa WiFi na ESP8266 Karta przekaźnikowa WiFi na ESP8266 Karta przekaźnikowa WiFi na ESP8266

    EDIT
    Ze względu na to że dostawałem prośby na PW umieszczam kod, który jest w karcie. Oraz schemat w postaci pliku graficznego :)
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Karta przekaźnikowa WiFi na ESP8266

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    tomek10861
    Poziom 27  
    Offline 
    http://www.youtube.com/user/tomek10861 Zapraszam na mój kanał YouTube.
    Zwiastun mojego kanału: http://www.youtube.com/watch?v=f9wNn3MorKs
    Specjalizuje się w: komputery hardware, komputery software, programowanie
    tomek10861 napisał 1370 postów o ocenie 184, pomógł 13 razy. Jest z nami od 2007 roku.
  • Computer ControlsComputer Controls
  • #2
    radex324
    Poziom 23  
    Jedyne co, to przekaźniki mógł kolega zrobić osobno wtedy nie było by problemu z prowadzeniem przewodów od włączników itp. chyba, że to steruje tylko światełkami co są obok siebie.
    Karta przekaźnikowa WiFi na ESP8266 Karta przekaźnikowa WiFi na ESP8266
  • Computer ControlsComputer Controls
  • #3
    tomek10861
    Poziom 27  
    To miała być scalona karta i ma obsługiwać 8 kanałów które są obok siebie ;) Na święta takich kart będzie zapewne 3 albo 4. :) 8 kanałów zostało dobrane po to ponieważ to była najoptymalniejsza liczba :P Btw zawsze można pociągnąć kabelek z 230V bo takie przekaźniki to trochę taki pająk :P
  • #4
    radex324
    Poziom 23  
    Za to wchodzą do puszki pod włącznik, i doprowadza się tylko 3 przewody - mase, zasilanie i sygnał.
  • #8
    xamrex
    Poziom 28  
    Można prosić o schemacik?
  • #10
    Duch__
    Poziom 31  
  • Computer ControlsComputer Controls
  • #11
    tomek10861
    Poziom 27  
    Dzięki :) Wsad to najzwyczajniejsze zastosowanie biblioteki ESP8266HTTPClient.h zgodnie z opisem z przykładu :P Łączę się tam z serwerem sterowania i pobieram stan przekaźników do tablicy. A potem już zapis do rejestru :P
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Ze względów bezpieczeństwa wolę nie publikować całego kodu, a najwyżej jego fragmenty :P
  • #12
    igorrr
    Poziom 15  
    Fajna sprawa.
    No dobra, a powie mi ktoś, jak ja budując taką kartę mam nią sterować? Może mi ktoś to wyjaśnić, może być tak w skrócie, aby moderatora nie denerwować. :)
  • #15
    komatssu
    Poziom 28  
    Co się dzieje z przekaźnikami tuż po włączeniu zasilania modułu ESP?
  • #16
    tomek10861
    Poziom 27  
    Mają losowy stan co wynika z charakterystyki pracy rejestru przesuwnego (zwykle jest to 00000000, czasami jeden max dwa z przekaźników się załączą). W moim przypadku karta steruje oświetleniem więc chwilowy losowy stan nie stanowi problemu. W przypadku sterowania jakąś automatyką trzeba dodać na samym początku programu (przed internalizacją WiFi) pętlę zapisującą zera do rejestru.
  • #17
    razorxx100
    Poziom 11  
    Jestem ciekaw jednej rzeczy, co sie stanie gdy przykladowo router sie zresetuje, a esp dalej jest uruchomione? Po zerwaniu polaczenia samo polaczy sie ponownie?
    Nie widze tego w kodzie, albo moze w bibliotekach jest to wbudowane.
  • #19
    razorxx100
    Poziom 11  
    Mogles tutaj uzyc esp-07, ma 9 wyjsc wiec ekspander wypada,dodatkowo masz mozliwosc podlaczenia antenki. Na 9 pin dalbym na twoim miejscu wtedy jakis przelacznik ktorym mozna zmienic tryb na esp,jeden stan to jako client(glowne dzialanie), a drugi to serwer do ustalenia id i haslo do wi-fi,moze jakis apikey czy id kazdego przekaznika.Wtedy urzadzenie bedzie bardziej mobilne. Co o tym myslisz?
  • #20
    piotr411
    Poziom 22  
    Jako ekspander, dać AVR ATM8, sposób komunikacji z AVR dowolny, i2c, RS, 1w, lub każdy inny. Dodatkowo można łączyć równolegle i dostać kolejne 24 GPIO :-) Tak mam wykonaną szafkę na części gdzie pod każdym pudełkiem są półki podświetlane w jest półka, po wpisaniu na tablecie części. Baza danych części napisana dla Androida w Mintoris Basic, pliki jako CSV, sofy dla ESP07 w ESP Basic, dla AVR'ów Bascom.
  • #21
    tomek10861
    Poziom 27  
    razorxx100 napisał:
    [...] a drugi to serwer do ustalenia id i haslo do wi-fi,moze jakis apikey czy id kazdego przekaznika.Wtedy urzadzenie bedzie bardziej mobilne. Co o tym myslisz?
    W sumie to jest myśl bo na chwilę obecną przy zmianie parametrów sieci WiFi musze zmieniać soft (a wgrywanie trochę to trwa przy prędkości 9800). Może nie koniecznie zwieranie pinu do masy tylko wgrywanie danych po UART, albo wykorzystanie sieci WiFi którą sam tworzy ESP.

    Piotr411 po co do tak prostego układu mam dawać drugi mikrokontroler (i to o dużo gorszych parametrach od tego w ESP). Do rejestru przesuwnego też można podłączyć szeregowo drugi i mamy 16 GPIO można podłączyć 4 rejestry to mamy 32, itd. W moim przypadku jednak kart ma być kilka (żeby nie ciągnąc tyle kabli) być może będzie nawet dla nich separowane WiFi.

    Poza tym rejestr przesuwny jako ekspander to jeden z najtańszych rozwiązań a i bardzo łatwych w obsłudze. Rejestr mogę nawet przetestować czy działa bez ESP dwoma kawałkami przewodów. Z AVR czy jakimś ekspanderem po I2C tak łatwo nie ma.
  • #22
    piotr411
    Poziom 22  
    AVR, ma zalety jakich nie mają rejestry czy ekspandery, cena atm8 jak poszukasz w firmach odzyskujacych elementy elektroniczne, wynosi przy 100szt, 99gr. Nie jest ważne jakie ma AVR parametry w porównaniu z ESP, tylko jak łatwo i tanio można rozbudować ESP. Pojedynczy przekaźnik też można wyposażyć w Attiny13 i odbiorniki, tanie na 433mhz. ESP był by tylko routerem WiFi - 433mhz. Opcji jest wiele podobnie jak sposobów wykonania, jednak stosując układy programowalne mam duży komfort konfiguracji i zmian, a nawet komunikacji 2 kierunkowej, jeśli takowa jest potrzebna. Mając też na uwadze ceny ESP8266-12 lub 13 rodzi się inne pytanie, jaki sens ma ekspander? przy cenie 2$ szkoda zabawy w dodatki zupełnie zbędne jeśli na jednym Esp8266 mamy 11GPIO. Do tego jeszcze chyba najciekawszy język programowania w postaci Basic ESP, gdzie modyfikujemy oprogramowanie po WIFI, czyli w przypadku modyfikacji nie trzeba demontować i podłączać konwerterów czy kabli do ESP.
  • #23
    razorxx100
    Poziom 11  
    tomek10861 napisał:
    razorxx100 napisał:
    [...] a drugi to serwer do ustalenia id i haslo do wi-fi,moze jakis apikey czy id kazdego przekaznika.Wtedy urzadzenie bedzie bardziej mobilne. Co o tym myslisz?
    W sumie to jest myśl bo na chwilę obecną przy zmianie parametrów sieci WiFi musze zmieniać soft (a wgrywanie trochę to trwa przy prędkości 9800). Może nie koniecznie zwieranie pinu do masy tylko wgrywanie danych po UART, albo wykorzystanie sieci WiFi którą sam tworzy ESP.

    Piotr411 po co do tak prostego układu mam dawać drugi mikrokontroler (i to o dużo gorszych parametrach od tego w ESP). Do rejestru przesuwnego też można podłączyć szeregowo drugi i mamy 16 GPIO można podłączyć 4 rejestry to mamy 32, itd. W moim przypadku jednak kart ma być kilka (żeby nie ciągnąc tyle kabli) być może będzie nawet dla nich separowane WiFi.

    Poza tym rejestr przesuwny jako ekspander to jeden z najtańszych rozwiązań a i bardzo łatwych w obsłudze. Rejestr mogę nawet przetestować czy działa bez ESP dwoma kawałkami przewodów. Z AVR czy jakimś ekspanderem po I2C tak łatwo nie ma.

    No wlasnie chodzilo mi o to zeby np przy uruchomieniu esp bylo sprawdzenie czy jest wcisniety przycisk, jezeli tak to przechodzi w tryb serwera gdzie on jest wtedy hotspotem i na esp jest postawiona strona www gdzie mozna wszystko skonfigurowac. Ponowne uruchomienie esp bez wcisnietego przycisku spowoduje poprostu uruchomienie w trybie client, czyli w glownym.
  • #24
    piotr411
    Poziom 22  
    igorrr napisał:
    Fajna sprawa.
    No dobra, a powie mi ktoś, jak ja budując taką kartę mam nią sterować? Może mi ktoś to wyjaśnić, może być tak w skrócie, aby moderatora nie denerwować. :)


    Np piszą prostą aplikację dla Androida w Mintoris Basic
    Program steruje 3 listwami po 2 przekaźniki.
    Można rozbudować o dowolną ilość listew i przekaźników, zmienić nazwy poleceń, etc........
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod



    Można pójść dalej i dodać np presety, timers, czli np dopisać godzinę włączenia odpowiedniego przekaznika lub jego wyłączenie, np po włączeniu automatycznie po zadanym czasie wyłączy się. Zrobić TEST, czyli informacje od przekaźników wszystkich, ze wszystkich listew, jaki mają aktualny stan. np włącz wszytkie lub wyłącz wszystkie, np toggle, etc......... :) ale potrzba nie expander ów czy rejestrów przesuwu, a jako elementy końcowe do wykonawczych uC
  • #25
    madejpm
    Poziom 10  
    tomek10861 napisał:
    W sumie to jest myśl bo na chwilę obecną przy zmianie parametrów sieci WiFi musze zmieniać soft (a wgrywanie trochę to trwa przy prędkości 9800).


    A po co się tak męczysz. Wypróbuj większe prędkości. Ja ustawiłem 1M i jest tylko błysk. :)
  • #26
    tomek10861
    Poziom 27  
    Oj nie kupuję Atmeg w ilości 100 sztuk. :P Rejestr przesuwny kosztuje 50 - 70 gr za układ.

    Co do tego wciśniętego przycisku - trochę zabawy z kodem :P Nie wiem też jak to wpłynie na stabilność układu.


    madejpm - prędkość zmieniam zmieniając w kodzie szybkość UART? Po zmianie wgrywam już z dowolną prędkością czy musze coś innego modyfikować w tym ESP? :)
  • #27
    razorxx100
    Poziom 11  
    tomek10861 napisał:
    Oj nie kupuję Atmeg w ilości 100 sztuk. :P Rejestr przesuwny kosztuje 50 - 70 gr za układ.

    Co do tego wciśniętego przycisku - trochę zabawy z kodem :P Nie wiem też jak to wpłynie na stabilność układu.


    madejpm - prędkość zmieniam zmieniając w kodzie szybkość UART? Po zmianie wgrywam już z dowolną prędkością czy musze coś innego modyfikować w tym ESP? :)

    Dla mnie to 10 min, dla ciebie pewnie to bedzie 5.
    Nie ma tutaj nic skomplikowanego,oraz nie ma szans zeby wplynelo to na stabilnosc ukladu.
    Wystarczy w setup dac sprawdzenie czy jest wcisniety przycisk(wtedy masz pewnosc ze tylko przy ponownym uruchomieniu jest mozliwosc zmiany trybu), jezeli jest to do zmiennej przypisac jakis stan, jezeli nie to nic.W petli sprawdzasz zmienna i tam ustalasz czy esp ma dzialac jako client czy serwer ;) Postawic stronke na esp tez jest banalnie ( masz nawet przyklad WiFiWebServer).I na koniec zapisanie do eeprom.Banalnie proste a moze nie jeden raz uratowac zycie :D
  • #28
    madejpm
    Poziom 10  
    Nic na ESP nie konfigurowałem. Po prostu do esptool (nim ładuje soft) podaje jako parametr żądaną prędkość i leci.
  • #29
    tomek10861
    Poziom 27  
    Mi Arduino Studio nie chce wgrywać z inną jak 9800 na tym module, na module z innym softem szło na dużo większej.

    Co do kodu z setup przemyśle to - mogę wykorzystać pin GPIO, który steruje rejestrem. I na nim sprawdzać najpierw stan. Karta to na razie prototyp - właściwe karty potrzebne są na grudzień :)