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

Moduł przekaźnikowy sterowany SMS

aragog 08 Kwi 2014 18:50 33702 66
  • Moduł przekaźnikowy sterowany SMS
    Witam chciałbym przedstawić wam projekt na którym pracowałem ostatnim czasem.

    Funkcje i przeznaczenie.


    Ciężko to konkretnie nazwać ale powiedzmy że jest to jak w tytule Moduł przekaźnikowy sterowany SMS :D. Pomysł na taki moduł zrodził się w okresie świąt gdy trzeba było wychodzić na balkon aby włączyć lampki, jednak dopiero niedawno wpadł mi w rękę odpowiedni telefon. Do czego to służy? Otóż dzięki temu urządzonku mogę w zasadzie globalnie sterować za pomocą SMS’a 3 przekaźnikami. Pozostałe funkcje to:

    - Ustalanie czasu podświetlenia wyświetlacza i jego jasność (sterowanie PWM),
    - automatyczne jak i ręczne włączanie/wyłączanie ładowania telefonu,
    - ręczne włączanie/wyłączanie przekaźników,
    - wyświetlanie na LCD godziny, poziomu naładowania baterii oraz aktualnej temperatury.

    W planach mam jeszcze dodanie do programu:

    - Wysłanie na żądanie SMS’a informacyjnego zawierającego temperaturę, stany przekaźników itd,
    - Dodawanie i usuwanie kolejnych numerów z których będzie można sterować,
    - Czasowe włączenie przekaźników,
    - Opcja „termostatu”,
    - I co tam mi jeszcze przyjdzie ciekawego do głowy :D

    Zasada działania.

    W pierwszej wersji miało być to sterowanie za pomocą kodów DTMF(Więcej na ten temat kiedyś opiszę), jednak przypadkiem dowiedziałem się o znacznie lepszej możliwości jakim są komendy AT. Pewnie sporo osób wie o co chodzi więc tylko w skrócie tylko powiem że są to komendy wysyłane przez UART dzięki którym możemy w zasadzie całkowicie kontrolować nasz telefon. Podłączenie Atmega => Telefon jest poprzez diodę zenera 3.3V gdyż telefon pracuje na takim napięciu i wolałem nie puszczać na niego 5V :D. Gdy na telefon przychodzi SMS o konkretnej treści wysyłana jest informacja do mikro-kontrolera który ją odczytuje i wykonuje zadanie jakie tej komendzie jest przypisane np. zmienia stan przekaźnika. Cały układ jest zasilany z oryginalnej ładowarki telefonu, która służy także do ładowania telefonu gdy bateria jest rozładowana poniżej 10%.

    Płytka wykonana jest metodą foto-chemiczną (mój pierwszy raz) i pocynowana ręcznie w celu ochrony miedzi. Jestem zadowolony z uzyskanego efektu jednak mogłem wybrać większe pola lutownicze przy zworkach gdyż wiertło 1mm je "usunęło" i musiałem przylutowywać do ścieżek.





    Poniżej załączam schemat oraz zdjęcia projektu, w wolnym czasie dodam jeszcze filmik z działania. Kodu programu atmegi nie udostępniam ponieważ jest on jeszcze nie skończony.
    Moduł przekaźnikowy sterowany SMS Moduł przekaźnikowy sterowany SMS Moduł przekaźnikowy sterowany SMS Moduł przekaźnikowy sterowany SMS Moduł przekaźnikowy sterowany SMS


    Fajne!
  • Arrow Multisolution Day
  • #2 08 Kwi 2014 19:42
    szczodros
    Poziom 18  

    Myślał kolega nad dodaniem alarmu o niskim stanie konta? (w przyszłościowym dodaniu wysyłania sms)

  • #3 08 Kwi 2014 19:44
    radek02pl
    Poziom 1  

    Czy to jest takie trudne na jakie to wygląda? Osobiście lubię takie rzeczy ale liznąłem na lekcjach(technikum informatyczne) same bramki oraz nieco suchej wiedzy o opornikach, tranzystorach i rezystorach(?).

  • Arrow Multisolution Day
  • #4 08 Kwi 2014 19:50
    szczodros
    Poziom 18  

    radek02pl napisał:
    Czy to jest takie trudne na jakie to wygląda? Osobiście lubię takie rzeczy ale liznąłem na lekcjach(technikum informatyczne) same bramki oraz nieco suchej wiedzy o opornikach, tranzystorach i rezystorach(?).

    Jak się w tym.siedzi dłuższy czas to trudne nie jest. Jak kolega chce zacząć to niech zacznie od prostych efektów świetlnych, których w internecie pełno. A jeśli migająca LED wydaje się nudna to proponuje i tak od niej zacząć. Prosty układ łatwo naprawić w razie błędu i nie zniechęci się kolega w przypadku problemu. A radość jak mrugnie LED - bezcenna :D
    koniec offtopu

  • #5 08 Kwi 2014 19:53
    aragog
    Poziom 10  

    szczodros napisał:
    Myślał kolega nad dodaniem alarmu o niskim stanie konta? (w przyszłościowym dodaniu wysyłania sms)


    Myślałem o tym, ale zapomniałem dzięki za przypomnienie dziś sobie dodam taką funkcję :D

  • #6 08 Kwi 2014 21:15
    grala1
    Specjalista grupy V.A.G.
  • #7 08 Kwi 2014 21:20
    aragog
    Poziom 10  

    Kod napisany w bascomie, SMS'y są obsługiwane w trybie TEXTowym

  • #8 08 Kwi 2014 22:11
    dondu
    Moderator Mikrokontrolery Projektowanie

    Skąd masz taki symbol gniazda ISP? To bardzo mylący symbol w szczególności dla osoby, która patrzy na niego jak na gniazdo gotowe na płytce. Wyrzuć ten symbol do kosza i zdefiniuj prawidłowy:

    Moduł przekaźnikowy sterowany SMS

    Nigdy nie podłączaj pinu 3 gniazda ISP do masy, ponieważ niektóre programatory niezgodne ze standardem wykorzystują ten pin do różnych celów. Może więc dojść do sytuacji, że programator w jakiejś części może ulec uszkodzeniu.

    Dlaczego masy kierujesz do góry, a Vcc w dół, podczas gdy powinno być odwrotnie?
    Taki schemat koszmarnie się "czyta". Cała część dot. przekaźników powinna być odwrócona o 180 stopni.

    Kolejne schematy rysuj już blokowo i nie ciągnij tych "makaronów": http://mikrokontrolery.blogspot.com/2011/04/jak-projektowac-czytelne-schematy.html

    Symbole tranzystorów Q2-Q5 nie odpowiadają typowi zastosowanego tranzystora.

    Generalnie projekt fajny :)

  • #9 08 Kwi 2014 22:28
    aragog
    Poziom 10  

    Dzięki za uwagę dotyczące gniazda i rysownia schematów. Co do tranzystorów to jestem świadomy tego że mają zły symbol ponieważ akurat biblioteki użytego tranzystora nie miałem a ten miał pasujące wyprowadzenia. Schemat był ogólnie robiony tylko i wyłącznie w celu zaprojektowania płytki więc nie przykładałem się zbytnio do jego wykonania. Niestety moje lenistwo mnie kiedyś wykończy...

  • #11 09 Kwi 2014 06:32
    Duch__
    Poziom 31  

    Brakuje mi w tym układzie wejść logicznych które mogły by informować o różnych zdarzeniach tak jak np. w nadajniku GPRS-T2 firmy Satel - sorry zboczenie zawodowe :P. Mimo błędów w schemacie i tak + za chęci!

  • #12 09 Kwi 2014 06:52
    rsikon
    Poziom 26  

    Nie wiem czy dobrze widzę ale jest jeden podstawowy problem nie opisany:

    A co gdy telefon "padnie" i się wyłączy? Jak kolega go aktywuje na nowo?

    Pytam bo bawiłem się w podobne rozwiązania, jak dobrze pamietam to Siemensem C35 - tam jest możliwość włączenia aparatu kombinacją danych i napięciem ładowania.

    Radek

  • #13 09 Kwi 2014 07:11
    kindlar
    Poziom 38  

    Kolego mam pytanie do ładowania z 5V. Czy masz możliwość sprawdzenia przy jakim minimalnym napięciu telefon wykrywa ładowanie? Pytam gdyż ładowarka sieciowa ma około 6V a T610 nie chciało ładować mi z USB. Taż staram się sklecić podobny układ. Może pokażesz kod źródłowy?

  • #14 09 Kwi 2014 07:29
    Montrres
    Poziom 21  

    Jak to tak w praktye wygląda? Nie potrafię tego zrozumieć... Telefon otrzymuje SMS'a i co dalej... SMS to jakaś konkretna "instrukcja" czy wystarczy np. coś mniej więcej takiego "Załącz P1"?
    O ile chodzi o komendy DTMF to jest to dla mnie względnie zrozumiałe, to nie wiem jak mielibyśmy poprzez to sterować.
    Przepraszam za laickie pytanie ale bardzo mnie to zaintrygowało, a nie siedzę w temacie telefonów.
    Telefon poznaję to SE T610. Zastanawiam sie czy K800i może zrealizować coś podobnego (to samo gniazdo)... mam taki jeszcze działający i jeśli to też zadziała to się za to wezmę.
    Pozdrawiam!

  • #15 09 Kwi 2014 08:26
    kindlar
    Poziom 38  

    Pozwolę sobie odpowiedzieć w imieniu autora projektu. Najłatwiej użyć telefonu który obsługuje tryb tekstowy (odpadają problemy z dekodowanim PDU, trybu, który każdy telefon obsługuje). Można sprawdzić to w terminalu łącząc się z telefonem przez MAX232 poprzez RS232 (port COM komputera) komendą z terminala AT+CMGF=? jeśli otrzymasz 1,0 to znaczy że są obsługiwane oba tryby, jeżeli 0 to tylko PDU. Jednak są na forum projekt z takimi telefonami. Telefon otrzymując SMS zgłasza to i można takiego sms odczytać w kontrolerze i program odpowiednio zareaguje. Można w programie ustawić numer telefonu z którego się komunikujemy i na który smsy zwrotne są wysyłane. Składnia smsa jest taka jaką sobie wymyślisz, trzeba ją potem "odfiltrować" i reagować na nią jakąś czynnością programu. Wczytaj się w forum to znajdziesz projekty dokładnie opisane. https://www.google.pl/search?q=atmega+i+telef...BIeVhQeRu4HAAg&ved=0CEQQsAQ&biw=1600&bih=1040

  • #16 09 Kwi 2014 12:35
    Montrres
    Poziom 21  

    Baqrdzo dziękuje!
    Czyli jest tak: telefon odbiera sms'a i zgłasza to. W tym momencie kontroler może odczytać tę wiadomość i na podstawie treści stosownie się "zachować". To jak zareaguje kontroler zależy od programu jaki napiszemy i jak sobie zdefiniujemy komendy.
    Jesli moje rozumowanie jest prawidłowe to jeszcze dzisiaj idę szukać mojego K800i.
    Pozdrawiam!

  • #17 09 Kwi 2014 13:48
    galica7
    Poziom 26  

    Montrres napisał:
    Zastanawiam sie czy K800i może zrealizować coś podobnego (to samo gniazdo)... mam taki jeszcze działający .

    Jeżeli chodzi o samo wejście to k800i posiada złącze ''fastport''

  • #18 09 Kwi 2014 14:08
    aragog
    Poziom 10  

    Duch__ napisał:
    Brakuje mi w tym układzie wejść logicznych które mogły by informować o różnych zdarzeniach

    W układzie są jeszcze 3 wolne piny które są własnie na takie sprawy.

    rsikon napisał:
    A co gdy telefon "padnie" i się wyłączy? Jak kolega go aktywuje na nowo?

    Z tym mam własnie problem, samo podanie napięcia ładowania nie włącza telefonu tylko wchodzi w stan ładowania a komendy "wciskające" przycisk power nie działają.

    kindlar napisał:
    Kolego mam pytanie do ładowania z 5V. Czy masz możliwość sprawdzenia przy jakim minimalnym napięciu telefon wykrywa ładowanie? Pytam gdyż ładowarka sieciowa ma około 6V a T610 nie chciało ładować mi z USB. Taż staram się sklecić podobny układ. Może pokażesz kod źródłowy?

    Moja ładowarka daje dokładnie 5V i nie ma problemu z ładowaniem potem sprawdzę przy jakim minimalnym napięciu ładuje. Kod źródłowy mogę podać ewentualnie na PW.

    galica7 napisał:
    Montrres napisał:
    Zastanawiam sie czy K800i może zrealizować coś podobnego (to samo gniazdo)... mam taki jeszcze działający .

    Jeżeli chodzi o samo wejście to k800i posiada złącze ''fastport'

    K800i nie posiada portu szeregowego(UART) a nie wiem czy można inaczej wysyłac komendy AT, słyszałem jeszcze coś o bluetooth ale do takiego projektu jest to mało opłacalne :D

  • #19 09 Kwi 2014 20:39
    rsikon
    Poziom 26  

    Niestety, z mojego punktu widzenia moduły komunikacji GSM instaluje się w urządzeniach oddalonych, mających być w 100% pewnymi - np. ze względu na brak dostępu do nich.

    Brak samoczynnego "podnoszenia" się po zaniku zasilania, rozładowaniu się itp. w sumie dyskwalifikuje rozwiązanie do sensownego użytku.

    Powodzenia w kombinowaniu.

  • #20 09 Kwi 2014 20:50
    grala1
    Specjalista grupy V.A.G.
  • #21 09 Kwi 2014 21:12
    Montrres
    Poziom 21  

    grala1 napisał:
    Wydaje mi się że zamiast telefonu można użyć modemu SIM900 w tym przypadku i problem po braku zasilania chyba zniknie.


    Ha... ja o tym samym pomyślałem... A w połączeniu z jakimś uC i wyświetlaczem LCD można zaprojektować bardzo fajny "telefon" własnej i niepowtarzalnej konstrukcji.

    Co do projektu to jeśli mnie pamięć nie myli gdzieś powinien się walać nawet mój poczciwy T610.

    Pozdrawiam!

  • #22 09 Kwi 2014 21:29
    faziil
    Poziom 15  

    Jak mogę sprawdzić przy pomocy specyfikacji telefonu, który obsługuje komunikacje uart? Chcę jakiś wylicytować i móc się bawić z komendami AT.

  • #23 09 Kwi 2014 21:40
    aragog
    Poziom 10  

    grala1 napisał:
    Wydaje mi się że zamiast telefonu można użyć modemu SIM900 w tym przypadku i problem po braku zasilania chyba zniknie
    Zniknie ale SIM900 kosztuje koło 70zł z tego co patrze a to trochę wykracza poza mój wkład finansowy w ten czysto hobbistyczny projekt :D W ostateczności jeśli nie będzie się dało tego rozwiązać programowo dołożę po prostu tranzystor lub przekaźnik zwierający włącznik telefonu i po kłopocie :D

    faziil napisał:
    Jak mogę sprawdzić przy pomocy specyfikacji telefonu, który obsługuje komunikacje uart?

    Sprawdź jego wyprowadzenia i jeśli znajdziesz piny TXD i RXD to znaczy że obsługuje uart

  • #24 09 Kwi 2014 22:34
    mgiro
    Poziom 22  

    Ciekawy pomysł projektu. Jakie modele telefonu najłatwiej można wykorzystać w tego typu projektach? Który modele obsługują tryb tekstowy?

  • #25 10 Kwi 2014 07:18
    kindlar
    Poziom 38  

    Wygodne jest aby oprócz obsługi trybu tekstowego sms potrafił otrzymane smsy wysłać bezpośrednio do terminala zewnętrznego (procesora). Robią to telefony które na komendę AT+CNMI=? odpowiadają 3,3,2,1,0. Jeśli odpowiedz jest 2,2,... to możemy uzyskać informację z telefonu o nadejściu nowego smsa z jego numerem i trzeba ten numer odfiltrować aby go odczytać i później skasować.

  • #26 10 Kwi 2014 20:07
    Tomekddd
    Poziom 23  

    Witaj, własnie siedzę z takim samym projektem i jako że jestem kompletnie zielony mam pare pytań.

    1) Jaki to dokładnie model telefonu?

    2) Skąd wiesz że dostałeś sms? Czy telefon powiadamia jakoś procesor?

    3) Jak sprawdzasz od kogo jest sms i jakiej treści?

    4) Czy mógłbyś podesłać kod źródłowy? Nawet jeśli jest niekompletny. Chciałbym zobaczyć jak to sie je programowo.

    5) Czy telefon musi mieć ładowanie? Ja planuje swój zasilać bezpośrednio z zasilacza.

    6) Czy masz możliwość wysłania smsa z układu z danymi takimi jak siła sygnału gsm, stan któregoś wejścia procesora itp?

    7) Skąd wiesz po włączeniu telefonu że jest zalogowany do sieci i może wysyłać/odbierać smsy?

    8) Gdzie trzymasz treść smsów i numer nadawcy?

    9) Co robisz z odebranym smsem? Kasujesz go czy trzymasz w pamięci. Jeśli kasujesz to jak?


    Co do SIM900 z któregoś postu to znalazłem tańszy około 40zł Link Nadał by się?

    Z grubsza to tyle, przepraszam za tyle pytań ale chce być przygotowany teoretycznie zanim wpakuję sie po uszy :) Pozdrawiam Tomek

  • #27 10 Kwi 2014 21:58
    mgiro
    Poziom 22  

    Tomekddd a przesyłka ile kosztuje?

  • #28 10 Kwi 2014 22:37
    Tomekddd
    Poziom 23  

    Przesyłka friko :D tylko trzeba czekać około 3 tyg. Zwykle jak zamawiam to po 2 tyg dociera.

  • #29 10 Kwi 2014 22:43
    aragog
    Poziom 10  

    1. SE T610
    2. Komenda AT+CNMI=2,3,0,0,0 ustawia przesłanie sms bezpośrednio do telefonu w formacie

    Code:
    +CMT: <TEKST>, <DŁUGOŚĆ> <CR><LF> <TRYB PRACY>
    .Po wykryciu komendy na buforze odczytuje konkretne informacje i wykonuje dane działanie.
    3. Patrz punkt 2.
    4. Napisz na PW. Kod będzie przepisywany na C więc aktualnego nie będę kończył.
    5. Teoretycznie możesz podłączyć ładowanie na stałe ale nie wiem jak to zniesie bateria.
    6. Tak, po prostu w komendzie umieszczona jest dana zmienna.
    7. Można to sprawdzić komendą AT+CSQ
    8. Aktualnie we flash procesora, bardziej optymalnym rozwiązaniem jest eeprom
    9. Nie jest zapisywany tylko od razu wysyłany do procesora. Punkt 2.

    Załączam jeszcze opis komend AT z którego korzystałem może się przyda.

  • #30 10 Kwi 2014 22:50
    Tomekddd
    Poziom 23  

    Baterii nie zamierzam używać bo po zaniku zasilania procek i tak padnie więc sterownik nie musi nic odbierać, ewentualnie caly sterownik zasilę z jakiegoś akumulatora w tym również telefon.