• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z kodem - nie dzwoni na podany numer
#10
Już się poprawiam.

1. Schemat w załączniku. Mam nadzieje, że czytelny i taki wystarczy.
2. Z tego co znalazłem w internecie status diody wygląda następująco:

Nie świeci - moduł nie jest uruchomiony
Świeci 64ms w odstępach 800ms - moduł nie zarejestrował się do sieci (zaraz po włączeniu)
Świeci 64ms w odstępach 3000ms - moduł zarejestrował się do sieci (po krótkiej chwili)
Świeci 64ms w odstępach 300ms - aktywne połączenie GPRS

Z tego wynika, że mój moduł zarejestrował się do sieci jednak nic nie wysyła.

3. Właśnie je poznaję i spróbuję połączyć się tak jak radzicie poprzez port szeregowy w IDE i sprawdzić czy jest komunikacja z modułem. Niestety nie mogę skompilować w swoim IDE programu, który komunikuje się z modułem. Gotowy kod pobrałem z internetu jednak przy próbie weryfikacji dostaję błąd:

"'void loop()' previously defined here
exit status 1
redefinition of 'void setup()'"


Kod:
   #include <SoftwareSerial.h>
   
   SoftwareSerial gsm(11, 12); // Piny 11 i 12 do komunikacji z SIMxxx
   
   String atCommand;
   
   void setup()  
   {
     pinMode(LED_BUILTIN, OUTPUT);
     digitalWrite(LED_BUILTIN, HIGH);
     delay(500);
     digitalWrite(LED_BUILTIN, LOW);
   
     // Ustawiamy transmisje na 9600 bodow Arduino--PC
     Serial.begin(9600);
   
     // Czekamy na inicjalizacje
     while (!Serial) {
     }
   
     // Ustawiamy transmisje na 9600 bodow SIMxxx-Arduino
     gsm.begin(9600);
   }
   
   void loop()
   {
     // Jesli SIMxxx wysyla nam dane, odbieramy i wysylamy na port szeregowy
     if (gsm.available())
     {
       Serial.write(gsm.read());
     }
   
     // Odczytujemy nasze polecenie
     while (Serial.available())
     {
       delay(10);
       if (Serial.available() > 0)
       {
         char c = Serial.read();
         atCommand += c;
       }
     }
   
     // Jesli jest polecenie, wyslij do moduly GSM
     if (atCommand.length() > 0)
     {
       gsm.println(atCommand);
       atCommand = "";
     }  
   }

4. Przyznaję się bez bicia.
5. Rzeczywiście posiadam jedynie miernik.

Czy kod na połączenie szeregowe z modułem jest poprawny? Jeśli tak to dlaczego nie mogę go skompilować?

EDIT: Już mi się udało skompilować. Spróbuję się połączyć z modułem i napiszę jakie przyniosło to rezultaty.

EDIT2: 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 SIM800 jest źle podpięty czy ja źlę coś wpisuję?

Próbowałem np. AT+CPIN? oraz AT+COPS? i nic się poniżej nie wyświetla, tylko pusta strona.

EDIT3: Moduł poprawnie reaguje na komendy AT i wysyła informacje zwrotne. Problemem był Brak masy między SIM800 a Nano. Testuję dalej.


Załączone pliki Miniatury
   
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Problem z kodem - nie dzwoni na podany numer - przez mojojek - 11-07-2018, 14:52

Skocz do:


Przeglądający: 1 gości