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

Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?

10 Lip 2018 20:35 1050 46
  • Poziom 18  
    Witam

    Mam mały problem z kodem. Zmajstrowałem (a w zasadzie trochę zmodyfikowałem) kod, który po przyciśnięciu przycisku zapala czerwoną diodę a po jego zwolnieniu powinien gasić czerwoną i zapalać zieloną. Zamiast przycisku użyłem kontaktronu.

    Niestety coś pokręciłem i przy zwolnieniu pali się zielona (tak jak chcę) a po przyciśnięciu palą się obie. Czy mógłby ktoś mnie poprawić? :)
    Dodatkowo chciałbym dodać do kodu funkcję, która będzie wykonywać połączenie telefoniczne po zwolnieniu przycisku na podany numer. Jak to zrobić?

    Oto mój kod:
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • PCBway
  • Użytkownik usunął konto  
  • Poziom 18  
    Dziękuję. Z diodami poradziłem sobie w ten sposób (nie wiem czy poprawny) i zachowują się tak jak chcę a mianowicie. Po przystawieniu kontaktrona (zamknięty obwód) zapala się czerwona dioda, po odsunięciu gaśnie czerwona i zapala się zielona.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Teraz chciałem zmodyfikować program i dodać opcję aby przy zapaleniu czerwonej diody wykonywane było połączenie telefoniczne na mój numer ewentualnie przy każdej zmianie stanu pinu D2 (tam jest podpięty kontaktron) było wykonywane jedno połączenie i kończone po powiedzmy 20 sekundach. Niestety nie wiem jak dodać do programu tę komendę:

    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Użytkownik usunął konto  
  • PCBway
  • Poziom 18  
    Dziękuję, ma Pan oczywiście rację. Może zacznę od początku i wkleję kod, który powinien wysyłać smsa testowego po podpięciu zasilania. Proszę o sprawdzenie czy tutaj wszystko jest poprawnie (może jest jakiś problem z komunikacją). Wczoraj przy próbach tego kodu dostałem smsa praktycznie od razu po podpięciu zasilania a dziś już nie.

    Dla jasności moje połączenia Nano oraz SIM800 wyglądają tak:

    TXD-D11
    RXD-D12
    D4-zielona dioda przez rezystor 220Ohm
    D3-czerwona dioda przez rezystor 220Ohm
    D2-kontaktron
    GND-kontaktron
    GND-obie diody

    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Użytkownik usunął konto  
  • Poziom 18  
    Mam nadzieję, że taki schemat wystarczy i będzie czytelny.
    Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?

    Spróbuję połączyć się szeregowo z modułem i sprawdzę czy poprawnie reaguje na komendy AT.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Po wgraniu tego programu i włączeniu monitora portu szeregowego w IDE nic się nie dzieje. Wpisuję komendy, zatwierdzam enterem ale nie pojawiają się poniżej (puste okno). Przy zatwierdzaniu komendy mignie zielona dioda w Arduino więc program jest chyba poprawny. Czy coś jest źle podpięte czy ja źle wpisuję?
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 18  
    Nano V3 zasilane jest bezpośrednio z USB laptopa, GSM natomiast ma zewnętrzny zasilacz. Podłączałem również Nano V3 oraz GSM pod ten sam zasilacz i nie było żadnej zmiany.

    Rozumiem, że mam podłączyć pin GND SIM (UART TTL - ten jeden wolny) z pinem GND w Arduino?

    Tak jak na schemacie będzie poprawnie?

    Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 18  
    Bardzo dziękuję, w końcu jakiś postęp. Moduł poprawnie reaguje na komendy AT i zwraca odpowiedzi. Siła sygnału "21" - nie wiem czy prawidłowa.
    Wszystko leży póki co na stole "na pająka" ale docelowo mam już przygotowaną małą obudowę i myślałem o montażu na jakichś dystansach.

    Potestuje najpierw jakieś gotowe programy do wysyłania smsów i rozmów czy działa to poprawnie.

    Odnośnie docelowego programu. Czy moja pierwotna koncepcja jest prawidłowa czy może wykorzystać jakiś inny pomysł? W programie z diodami pomyślałem aby sprawdzany był stan pinu, pod którym podpięty jest kontaktron i np. przy stanie niskim (kiedy obwód jest przerwany) aby wykonywane było jedno połączenie na mój numer. Jeśli numer zajęty lub niedostępny niech wykonuje połączenie ponownie aż do skutku. Po odebraniu lub odrzuceniu połączenia niech czeka do następnej zmiany na pinie i tak w kółko.
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 18  
    Zrobiłem i testuję program z diodami. Przy starcie systemu dostaję poprawną wiadomość SMS. Przy zwartym kontaktronie jest zapalona zielona dioda i nic się nie dzieje. Kiedy kontaktron jest otwarty gaśnie zielona, zapala się czerwona i dostaję bez przerwy nowe wiadomości "Alarm". Rozumiem, że spowodowane jest to tym, iż program wykonuje wtedy pętlę? Jak w takim wypadku zrobić aby wysyłana była tylko jedna wiadomość po rozwarciu kontaktrona, po zwarciu aby nic nie robił i po rozwarciu znów jedna wiadomość?

    Za co odpowiadają literki "r" oraz "n" przy komendach AT?

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Przepraszam, nie zauważyłem Twojego postu.
  • Użytkownik usunął konto  
  • Poziom 18  
    Teraz to już chyba wygląda tak jak powinno - proszę o ocenę lub jakieś sugestie (kod zaczerpnięty z internetu oraz zmodyfikowany).
    Mam jednak jeden mały problem. Jak zmodyfikować kod aby pamiętał, że stan wysoki diody podpiętej pod pin 4 ma być tylko wtedy kiedy jest zamknięty kontaktron a stan diody podpiętej pod pin 3 ma być tylko wtedy niski?

    Jeśli kontaktron jest rozwarty i wepnę zasilanie to działa tak jak chcę i kolor diod zmienia się wraz ze stanem. Niestety jak włączę zasilanie przy zwartym kontaktronie to diody będą świeciły na odwrót (zamienione kolory - na starcie zawsze zielona ma HIGH a czerwona LOW).

    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Użytkownik usunął konto  
  • Pomocny post
    Poziom 36  
    paawelx napisał:



    Jeśli kontaktron jest rozwarty i wepnę zasilanie to działa tak jak chcę i kolor diod zmienia się wraz ze stanem. Niestety jak włączę zasilanie przy zwartym kontaktronie to diody będą świeciły na odwrót (zamienione kolory - na starcie zawsze zielona ma HIGH a czerwona LOW).


    Co zdaje się nie jest zupełną prawdą...
    Przeanalizuj jeszcze raz swój program(!). Jeżeli to konieczne (dla ułatwienia) - sporządź ‘Truth Table’ stnów logicznych diod oraz zasadniczych zmiennych w zależności od fazy programu w obydwu aspektach załączania :
    a). normalna pozycja kontaktronu (otwarty) ,oraz
    b). zwarty kontaktron, tak jak w próbie.....
    Zgodnie z twoim załaczonym programem: Stan początkowy diod jest ustalony w sekcji: ‘void Setup() {}’ niezaleznie od odczytanych i ustalonych wyników zmiennych ‘State’ oraz ‘LastState’i nie zmienią się też w sekcji ‘Void loop()’ do momentu aktywności /zmiany zmiennej ‘State” powodowanej aktywnościa kontaktronu. Niezależnie od pozycji kontaktronu podczas ‘power-up’, diody otrzymają jednakowe wysterowanie.
    Przypadek o którym piszesz może wystąpic w sytuacji gdy rozewrzesz styki kontaktronu zaraz (*) po ‘power-up’ ( (*)jest tam delay 1 sec co nie rozwiązuje problemu), inaczej mówiąc wymusisz aktywnośc na kontaktronie. Twój program w tym aspekcie nie rozróżnia rodzaju aktywności: czy jest otwierany, czy tez jest zamykany. Przy alarmach to ma zasadnicze znaczenie i musi byc jednoznaczne.

    Właczenie zasilania utożsamiaż z uzbrojeniem alarmu niezależnie od przypakowych stanów sensorów, które winny wyzwolic alarm przy określonym ich stanie a nie samej zmianie stanu. Jest to przypadek uzbrojania alarmu przy ewentualnie otwartych oknach...
    Jak to ma działac w przypadku włamania? Chyba wtedy gdy intruderzy opuszczajac okradzioną posesję, zamkają niepoatrznie za sobą okna, które wcześniej były otwarte .....
    Kod trzeba będzie‘przerobic’ lub napisac nowy od początku , z opcją uzbrojenia alarmu zawierającą prevencje uzbrojenia na wypadek gdyby sensor/sensory nie były w stanie ‘home’.

    e marcus
  • Poziom 18  
    Dziękuję bardzo za sugestie. Postaram się (jeśli dam radę) dodać 'Truth Table', bo rzeczywiście to powinno działać znacznie lepiej. Od kolegi z innego forum otrzymałem taki kod, to chyba będzie to o czym piszesz:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Póki co stwierdziłem, że nie będę zapisywał i odczytywał zmiany stanów, bo przy takiej dużej ilości operacji mógłbym szybko zajechać kość.

    Mam natomiast jeszcze pytanie odnośnie zasilania modułu SIM800L v2.2. Producent podaje, że powinien działać z napięciem 5V. Zmierzyłem zasilacz, do którego jest podpięty i z niego napięcie wychodzi 5,2V. Konieczna jest regulacja, czy przy takiej wartości nie ma znaczenia? W razie czego myślałem o puszczenia zasilania przez stabilizator L78S05 (mam taki pod ręką).
  • Użytkownik usunął konto  
  • Poziom 18  
    Witam,

    Mam problem z modułem. Prawdopodobnie jest to kwestia zasilania. U mnie w domu (miasto) moduł potrafi działać bez problemów (loguje się do sieci, wysyła smsy bez żadnego restartu). Zabrałem moduł na wieś i w tej samej konfiguracji moduł restartuje się przy próbie logowania do sieci (raz chyba udało mu się zalogować do sieci ale przy próbie wysłania smsa - restart). Oczywiście wszystko podłączam do zasilacza komórkowego 5V 2A (sam moduł GSM, arduino zasilam z laptopa).

    Przeorałem internet i znalazłem przypadek, że ktoś miał ten sam problem. Podobno przy gorszym zasięgu sieci moduł potrafi pobierać większy prąd. W tamtym wypadku sprawę rozwiązał kondensator 4700uF 6,3V. Mam pod ręką 4 kondensatory 1000uF 6.3V i proszę o weryfikację czy takie podłączenie będzie poprawne.
    Zastanawiałem się też nad przewodami - może te cienkie druciki do płytek stykowych są za małe na taki prąd albo sam styk na pinach SIM800L jest nieprawidłowy?

    Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?
  • Użytkownik usunął konto  
  • Poziom 18  
    W manualu producenta, na stronie 20 jest opisane aby zastosować low ESR 100uF oraz 33pF, 10pF i diodę zenera na końcu. Nie wiem tylko czy tyczy się to również wersji 2.2 modułu (tak jest w tytule dokumentu a w tekście podane napięcia do wersji SIM800L). Poza tym czego dotyczy ten "VBAT"? Mam rozumieć, że jest to moje "5VIN" na płytce?

    https://simcom.ee/documents/SIM800H/SIM800H&SIM800L_Hardware%20Design_V2.02.pdf

    Rozumiem, że najlepiej zastosować 2 x 1000uF i resztę to co podaje producent - nie powinno to zaszkodzić mojemu SIM800 v2.2?

    Najchętniej polutowałbym to na normalnych przewodach bezpośrednio do modułu. Problem w tym, że nie chcę mieć problemów z ewentualną gwarancją i zwrotem modułu jeśli nie dam rady ogarnąć tego zasilania.
  • Użytkownik usunął konto  
  • Poziom 18  
    nowyARM napisał:

    Gdzie można kupować moduły tak, ze jak nie uda mi sie ich opanować to mogę je zwrócić?


    Zgodnie z ustawą mam prawo do zwrotu do 14 dni. Poza tym kupuję gotowca i przy odpowiednim zasilaniu (takim jakie zaleca producent/sprzedawca) powinno to działać.

    Czy na powyższym schemacie takie podpięcie kondensatorów będzie poprawne?
  • Użytkownik usunął konto  
  • Pomocny post
    Poziom 36  
    paawelx napisał:

    Zgodnie z ustawą mam prawo do zwrotu do 14 dni. Poza tym kupuję gotowca i przy odpowiednim zasilaniu (takim jakie zaleca producent/sprzedawca) powinno to działać.

    Czy na powyższym schemacie takie podpięcie kondensatorów będzie poprawne?


    Tak, będzie poprawne, tylko że patrząc 'z drugiej strony'; jeżeli masz faktycznie 2-Amperowy zasilacz i powiedzmy 1000uF nie spełnia warunków na poprawne zasilanie, i uzyskanie dostatecznie mocnego sygnału, to i 4 takie kondensatory nie gwarantują poprawy.
    Byc moze twoja cellular siec, z która sie komunikujesz ma zbyt słaby odbiór z tego miejsca, a w takiej sytuacji znalezienie innej lokacji ( na przykład na zewnątrz budynku) może rozwiazac tymczasowy problem do czasu powrotu do domu gdzie te trudności nie występują.
    Bułoby też wskazane sprawdzenie dobrego kontaktu anteny z płytką , jak tez grubośc przewodów zasilających może miec w 'jakimś tam' stopniu negatywny wpływ na pogorszenie zasilania.

    Odnośnie zwrotu modułu do sprzedawcy:
    W jaki sposób możesz umotywowac powód zwrotu, jeżeli wczesniej pisałes że z miejskiej lokacji nie ma problemu z komunikacją?
    Gwarancja na produkt nie obejmuje kiepskich warunków kommunikacyjnych z siecią...

    Powróciłbym do napięcia zasilania:Molduły te pracują przy zalecanym zasilaniu 3.7V do 4.2V. Akceptują zasilanie z 5.0V gdyż w układzie mają właczoną diodę na której gubi się 0.7V, co niektórzy utożsamiają to z regulatorem napięcia(???!!!)
    Jezeli twój zasilacz daje wyższe napięcie niż te 5V i nie jest ono reguloweane/stabilizowane, to możesz doświadczyc z tego tytułu pewne błędy.

    e marcus
  • Poziom 18  
    nowyARM napisał:
    14 od sprzedaży, przesyłka w jedną, druga daje w najlepszym wypadku 10 dni. I kolega chce wszystkie funkcje sprawdzić w 10 dni? Chyba w 10 miesięcy. 10 dni byłoby realne jak jest się biegłym w tych sprawach a nie jak się dopiero zaczyna przygodę z GSM.


    Trochę nie rozumiem do czego zmierzasz i co niby mam sprawdzać? Mam jeszcze ponad tydzień na poinformowanie sprzedającego o zwrocie. Korzystam z przysługujących mi praw konsumenta, koniec i kropka.
    Zależało mi na czasie i bezproblemowym działaniu więc wziąłem drogiego gotowca. Gdybym miał czas i chęci to wziąłbym za 2$ z Chin i sobie dłubał...

    emarcus napisał:

    Tak, będzie poprawne, tylko że patrząc 'z drugiej strony'; jeżeli masz faktycznie 2-Amperowy zasilacz i powiedzmy 1000uF nie spełnia warunków na poprawne zasilanie, i uzyskanie dostatecznie mocnego sygnału, to i 4 takie kondensatory nie gwarantują poprawy.
    Byc moze twoja cellular siec, z która sie komunikujesz ma zbyt słaby odbiór z tego miejsca, a w takiej sytuacji znalezienie innej lokacji ( na przykład na zewnątrz budynku) może rozwiazac tymczasowy problem do czasu powrotu do domu gdzie te trudności nie występują.
    Bułoby też wskazane sprawdzenie dobrego kontaktu anteny z płytką , jak tez grubośc przewodów zasilających może miec w 'jakimś tam' stopniu negatywny wpływ na pogorszenie zasilania.

    Odnośnie zwrotu modułu do sprzedawcy:
    W jaki sposób możesz umotywowac powód zwrotu, jeżeli wczesniej pisałes że z miejskiej lokacji nie ma problemu z komunikacją?
    Gwarancja na produkt nie obejmuje kiepskich warunków kommunikacyjnych z siecią...
    e marcus


    Nie korzystam z "gwarancji" a prawa do zwrotu bez podania przyczyny.

    Odnośnie zmiany lokalizacji modułu niestety to niemożliwe. Ma działać na wsi, w pomieszczeniu i tam jest problem. Jeśli już jakimś cudem się zalogował do sieci to przy próbie wysyłania SMSa robił restart. Obecnie moduł postawiłem u mnie w domu (miasto) i sobie chodzi bez restartów ale nie tutaj ma to działać. Spróbuję jeszcze z tymi kondensatorami - jak będzie chodzić poprawnie to zostawię. Najgorsze tylko, że dowiem się czy to działa dopiero jak znów pojadę na wieś (40km) :)
  • Użytkownik usunął konto  
  • Poziom 18  
    Moduł w konsoli szeregowej zgłasza się jako SIM800L. Instrukcję serwisową otrzymałem od kolegi emarcus:

    https://simcom.ee/documents/SIM800H/SIM800H&SIM800L_Hardware%20Design_V2.02.pdf

    W opisie jest podane, że dotyczy to niby modułu V2.2 jednak w samej instrukcji wszędzie występują napięcia pokrywające się z modułem SIM800L (wersja pierwsza). Dlatego nie wiem czy to dotyczy również mojego modułu. Na stronie producenta nie ma takiego modułu jak mój (końcówka V2.2 - niebieska płytka. Podejrzewam, że jest to zmodyfikowany SIM800L)

    Dokładne zdjęcia modułu:

    Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?Nano V3 + SIM800L v2 - 2 diody + call - dlaczego świecą obie?

    Dziś zauważyłem, że pomimo braku restartów nie chciał wysyłać smsów. Podpiąłem poprzez port szeregowy i moduł poprawnie reaguje na komendy AT oraz był poprawnie zalogowany do sieci. Siłę sygnału dziś pokazał CSQ: 11. Po tym wgrałem z powrotem wcześniejszy program jednak przy zmianie stanu kontaktrona zaczął się restartować. W konsoli szeregowej pojawiło się:

    Kod: java
    Zaloguj się, aby zobaczyć kod


    Wnioskuję, że próbował wysłać smsa i się zaczął restartować. Dodam tylko, że ostatnio jak się nim bawiłem to siła sygnału CSQ wynosiła 21 i nie było żadnych problemów z zasilaniem. Potwierdzałoby to chyba teorię z innego forum, że przy słabym sygnale nie wyrabia z zasilaniem.
  • Użytkownik usunął konto