Skocz do zawartości

SIM 800l V2 z Wemos D1 mini. Czy sieć 2G ma jeszcze sens?


nebraska

Pomocna odpowiedź

Witam 

Chce użyć takiego modułu GSM z wemosem. Komunikacja przez Software serial.

Moduł ma obsługę logiczną 3-5V. 

Zasilając go 5V napięciem nie muszę robić żadnych dzielników na pinach tx do wemosa?

 

https://kamami.pl/moduly-gsmgprs/580381-zestaw-z-modulem-gprs-gsm-sim800l-v20-5906623458332.html

 

Edytowano przez nebraska
  • Lubię! 1
Link do komentarza
Share on other sites

Ok, sam sobie odpowiem może komuś się przyda.

Po sprawdzeniu trzeba na lini TX SIM800l --->> ESP gpioo dodać rezystor 1k podciągając go gnd i można bezpiecznie używać.

Zrobiłem rozeznanie odnośnie sieci 2G która niby jak to inni twierdzą ma być wyłączana.

Moduł, który podałem pracuje GPRS 2, 3G.

Z tego co się dowiedziałem u operatora sieci 3G będzie wyłączana, ale sieć 2G jeszcze do około 2030r ma funkcjonować ze względu na dużą ilość urządzeń które funkcjonują w obiegu. Myślę, że moduł który podałem można używać.

Link do komentarza
Share on other sites

esp8266 ma 5V tolerant na swoich GPIO ale dodanie konwertera nie zaszkodzi. Co do sieci, biorąc pod uwagę że każdy operator wyłącza według swojego harmonogramu lepiej od razu pójść w nowoczesne technologie. Moduły SIM7500 obsługują sieci 4G więc chyba niema co kombinować z przestarzałymi modułami? 

  • Lubię! 1
Link do komentarza
Share on other sites

13 minut temu, _LM_ napisał:

esp8266 ma 5V tolerant na swoich GPIO ale dodanie konwertera nie zaszkodzi. Co do sieci, biorąc pod uwagę że każdy operator wyłącza według swojego harmonogramu lepiej od razu pójść w nowoczesne technologie. Moduły SIM7500 obsługują sieci 4G więc chyba niema co kombinować z przestarzałymi modułami? 

Jesteś pewien że 5V tolerancji na gpioo ESP? Z tego co znalazłem 3.6V max.

To prawda, żeby uniknąć problemów najlepiej wejść w 4G, mam po prostu 4szt tych modułów dlatego chcę go wykorzystać.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

ESP8266 - 5V powinien wytrzymać według dokumentacji. ESP32 nie wytrzyma na pewno (w dokumentacji pogrubiona czerwona czcionka).

Ja bym tam dał konwerter i miał święty spokój.

  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)

Kupiłem moduł A7670 4G/LTE. Wczoraj przyszedł były małe problemy z uruchomieniem, ale ostatecznie się udało.

Napisałem krótki program będę go dalej rozbudowywał chce zrobić kilka opcji do obslugi przekaznika czasowa, bistabilna i gdy przekroczy temp.

Mam tylko mały problem z wysłaniem dłuższej wiadomości tekstowej np ponad 30 znaków.

Testując program na SIM800L jest ok, długie wiadomości przychodzą, ale na obecnym module urywa i dopisuje znaki specjalne.

Jednynie co zmieniłem w programie to prędkość z 9600 na 115200 ponieważ moduł na 4G działa na wyższej prędkośći.

Nie wiem gdzie może być przyczyna, że nie mogę wysłać dłuższej wiadomości.


#define RX_A7670E 4
#define TX_A7670E 5

#include <SoftwareSerial.h>
SoftwareSerial mySerial(RX_A7670E , TX_A7670E); // RX TX

#define RELAY 12  // Wyjście do sterowania przekaźnikiem.

String odebrane_Dane_Sim = "";

bool flaga = false;
bool flaga2 = false;
bool flaga3 = false;
bool flaga4 = false;
bool flaga5 = false;


String stan_Przekaznika = "Wylaczony";
String nr_Telefonu = "+48xxxxxxxxx";  // Tutaj Zmieniamy Okreslony nr z którego właczy sie przekaznik. Inne nr będą odrzucone.

//------- Zmiana Czasow Pracy Przekaznika ------------------------------------------------------------------------------------
unsigned long czas;
unsigned long czas_30min = 1800000;

unsigned long czas2;
unsigned long czas_60min = 3600000;

unsigned long czas3;
unsigned long czas_120min = 7200000;

unsigned long czas4;
unsigned long czas_180min = 10800000;
//-----------------------------------------------------------------------------------------------------------------------------

void setup() {
  pinMode(RELAY, OUTPUT);
  Serial.begin(115200);
  mySerial.begin(115200);
  delay(10000); //  10s CZas modułu GSM na Zalogowanie sie do sieci GSM.

  while (!mySerial.available()) {
    mySerial.println("AT");
    delay(1000);
    Serial.println("Connecting...");
  }
  Serial.println("Connected!");
  mySerial.println("AT+CMGF=1"); //Ustawiamy SMSy w tryb tekstowy
  delay(1000);
  mySerial.println("AT+CNMI=1,2,0,0,0"); //Procedura, która obsługuje nadchodzące wiadomości
  delay(1000);
  mySerial.println("AT+CMGL=\"REC UNREAD\""); // Komdenda odczytu nowych wiadomości
  delay(500);
}
void On_Off_SMS() {

  if (odebrane_Dane_Sim.indexOf(nr_Telefonu) > -1) {
    if (odebrane_Dane_Sim.indexOf("On") > -1) {
      flaga = false;
      digitalWrite(RELAY, HIGH);
      stan_Przekaznika = "Wlaczony";
      delay(1000);
      sendSMS();
      delay(200);
      odebrane_Dane_Sim = "";  
    }

    if (odebrane_Dane_Sim.indexOf(nr_Telefonu) > -1) {
      if (odebrane_Dane_Sim.indexOf("Off") > -1)  {
        flaga = false;
        digitalWrite(RELAY, LOW);
        stan_Przekaznika = "Wylaczony";
        delay(1000);
        sendSMS();
        delay(200);
        odebrane_Dane_Sim = "";  
      }
      if (odebrane_Dane_Sim.indexOf(nr_Telefonu) > -1) {
        if (odebrane_Dane_Sim.indexOf("Stan") > -1)  {
          flaga = false;
          delay(1000);
          sendSMS();
          delay(200);
          odebrane_Dane_Sim = "";  
        }
        if (odebrane_Dane_Sim.indexOf(nr_Telefonu) > -1) {
          if (odebrane_Dane_Sim.indexOf("Kasuj") > -1)  {
            delay(1000);
            mySerial.println("AT+CMGDA=\"DEL ALL\"");
            Serial.println("Kasuj SMS-Y");
            delay(200);
            odebrane_Dane_Sim = "";  
          
            }
          }
        }
      }
    }
  
  //delay(1000);
  // Tutaj kasujemy wiadomości w modemie, aby oszczędzać pamięć
  if (flaga == false) {
    flaga = true;
    delay(1000);
    mySerial.println("AT+CMGDA=\"DEL ALL\"");
    Serial.println("Kasuj SMS-Y");
    delay(200);
    odebrane_Dane_Sim = "";  
  }
}

void loop() {

  if (mySerial.available()) {
    delay(100);

    // Serial Buffer
    while (mySerial.available()) {
      odebrane_Dane_Sim = mySerial.readString();

    }
    delay(10);

    Serial.println(odebrane_Dane_Sim);
    //odebrane_Dane_Sim.toUpperCase(); // Zmiana wszystkich liter na wielkie w odebranej wiadomości

    On_Off_SMS();

  }
}
// Funkcja SMS
void sendSMS() {
  Serial.println("Sending SMS...");
  mySerial.print("AT+CMGF=1\r");
  delay(100);
  mySerial.print("AT+CMGS=\"+48xxxxxxxx\"\r");  // Wpisujemy nr tel na ktory beda wysylane smsy
  delay(500);
  mySerial.print("Przekaznik " + stan_Przekaznika);       // Wpisujemy Tresc wiadomosci
  delay(500);
  mySerial.print((char)26);// (required according to the datasheet)
  delay(500);
  mySerial.println();
  Serial.println("text");
  delay(500);
}

Przykładowy SMS na więcej znaków 

Screenshot_2024-07-23-11-15-58-686_com.google.android.apps.messaging.jpg

Edytowano przez nebraska
Link do komentarza
Share on other sites

55 minut temu, nebraska napisał:

Nie wiem gdzie może być przyczyna, że nie mogę wysłać dłuższej wiadomości.

Musisz włączyć tryb PDU, nie wiem dokładnie jak robi to biblioteka której używasz, trzeba w przykładach i dokumentacji poszukać

Link do komentarza
Share on other sites

(edytowany)
39 minut temu, _LM_ napisał:

Musisz włączyć tryb PDU, nie wiem dokładnie jak robi to biblioteka której używasz, trzeba w przykładach i dokumentacji poszukać

Dziękuję za pomoc przynajmniej będę wiedział gdzie kopać. Rozumiem, że też jakąś komenta AT się włącza ten tryb?

Ja tu nie używam biblioteki.

Edytowano przez nebraska
Link do komentarza
Share on other sites

To nie tylko włączenie trybu PDU. Ponieważ w tym trybie następuje zupełnie inne formatowanie wiadomości, możesz to sprawdzić w terminalu: 
 

AT+CNMI=2,2,0,1 // wyl buforowanie na SIM
// odpowiedz OK
AT+CMGF=0 // zal PDU
// OK
  

Teraz wyślij na swój numer smsa

Powinieneś dostać w terminalu odpowiedź
 

+CMT: ,xx//ile znaków
  
  

A później zakodowaną wiadomość wraz z numerem telefonu.
To tak na szybko z moich notatek 🙂

  • Lubię! 1
Link do komentarza
Share on other sites

Samo dekodowanie tych wiadomości jak i wysyłanie to temat rzeka, raczej szukałbym gotowców po necie, bo napisanie do tego biblioteki wymaga nieco gimnastyki. 

Przydatne linki:
https://www.diafaan.com/sms-tutorials/gsm-modem-tutorial/online-sms-pdu-decoder/

https://medium.com/appiko/non-blocking-library-for-sim800-module-dfbaff02f697 

EDIT: Zobacz jeszcze te linki
https://github.com/Makerfabs/ESP32-S3-4G-LTE-CAT1-A7670X
https://www.robotics.org.za/ESPA7670
https://wiki.makerfabs.com/ESP32_S3_4G_LTE_CAT1.html
 

Edytowano przez _LM_
  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Ok, spróbuję coś poszukać.

Faktycznie nie masz sensu wyważać otwartych drzwi, pewnie jakaś biblioteka się znajdzie która to obsłuży.

Od kilku lat cos tam lepilem na modułach GSM i działają do dziś, ale nawet nie wiedziałem o istnieniu pdu i formacie tego typu wiadomości.

Pewnie dlatego, że robiłem na sim800l i tam ten problem nie występował.

 

Link do komentarza
Share on other sites

800L też ten tryb wykorzystuje 😉 PDU daje też fajną opcję wiadomości typu FLASH czyli wyświetlanych bezpośrednio na ekranie telefonu coś jak wiadomości sieciowe. Tak pół roku temu robiłem coś na modemach sim7XXX ale ostatecznie po przeliczeniu wyszło że taniej jest kupić małe modemy GSM - WiFi i do nich łączyć się zp esp.   

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.