Skocz do zawartości

Ardu i SIM800l, ogólna dyskusja...


farmaceuta

Pomocna odpowiedź

@farmaceuta przede wszystkim zapisujesz napisy (ciągi znaków) a nie jakieś Stringi.

Zakładajac, że pojedynczy numer zajmuje 16 bajtów policz ile ich zmieścisz.

Zrób to samo zakładając, ze potrafisz operować na półbajtach i wystarczy 6 bajtów na numer.

A teraz olej to wszystko, zrób po swojemu i zastanów się, jak wyjaśnisz klientowi że niemożność zapisania numeru ciotki z Londynu i wujka z Berlina to nie bug tylko feature.

 

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

Aha, jeszcze jedno: jakbyś się bał że eeprom za mały to informuję, że mój ulubiony sklep na Aledrogo sprzedaje 24256 po złotówce. A 32 kB to chyba wystarczy żeby zrobić książkę telefoniczną całej rodziny włącznie z nazwiskami, nickami, uprawnieniami i numerami butów 😉

 

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

4 godziny temu, ethanak napisał:

@farmaceuta

Zakładajac, że pojedynczy numer zajmuje 16 bajtów policz ile ich zmieścisz.

Zrób to samo zakładając, ze potrafisz operować na półbajtach i wystarczy 6 bajtów na numer.

Używam 9 cyfrowych liczb więc uint32 mi wystarcza w zupełności...

4 godziny temu, ethanak napisał:

jakbyś się bał że eeprom za maly  😉

O to akurat się nie boję 😉

4 godziny temu, ethanak napisał:

 😉

 

 

4 godziny temu, ethanak napisał:

@farmaceuta

A teraz olej to wszystko, zrób po swojemu i zastanów się, jak wyjaśnisz klientowi że niemożność zapisania numeru ciotki z Londynu i wujka z Berlina to nie bug tylko feature.

 

A no tu masz rację...o tym nie pomyślałem, no ale póki co będzie wersja PL, a jak by mi ktoś marudził to i z innymi nr sobie poradze 

Generalnie kod działa tak jak chciałem, jeszcze mi zostaje dopracować potwierdzenia i takie tam duperele estetyczne, ale jest ok

Link do komentarza
Share on other sites

(edytowany)

mam sobie taki kod do wysylania sms..ktory nie dziala,

void wyslij_sms(uint32_t x) {
  String nr = (String)x;
  simWJAZD.println("AT+CMGF=1");
  simWJAZD.println("AT+CMGS=\"+48333725272\"");
  simWJAZD.print("OK"); 
  simWJAZD.write(26);

tutaj mamprayklad ktory dziala... 

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L Tx & Rx is connected to Arduino #3 & #2

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  
  //Begin serial communication with Arduino and SIM800L
  mySerial.begin(9600);

  Serial.println("Initializing..."); 
  delay(1000);

  mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
  updateSerial();

  mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
  updateSerial();
 mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
  updateSerial();
  mySerial.print("Last Minute Engineers | lastminuteengineers.com"); //text content
  updateSerial();
  mySerial.write(26);
}

void loop()
{
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

ale on tez nie bedzie dzialal bez funkcji updateSerial()...dlaczego?? bo ja nie chce uzywac Seriala u siebie 

Edytowano przez farmaceuta
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

Już znalazłem rozwiązanie lecz nie kapuje co się tam dzieje...wystarczyło wepchnąć delay'a przed .write(26) i działa choć trochę nie rozumiem jak...to znaczy że muszę poczekać z tym końcowym znakiem..ktoś ma pomysł czemu tak jest (dałem delay 1000) 

void wyslij_sms(uint32_t x) {
  String nr = (String)x;                simWJAZD.println("AT+CMGS=\"+48883325272\"");
  simWJAZD.print("OK");
  delay(1000);
  simWJAZD.write(26);

 

Link do komentarza
Share on other sites

4 godziny temu, SOYER napisał:

to jak będziesz wysyłał komendy do sim?

Przez uart'y SIM...generalnie te komendy od połączeń SMS trzeba wysłać tylko raz z setup i później działa...w przykładzie jest delay500 po każdym wysłaniu komend więc pewnie to nie ma nic wspólnego z Serial'em (może go nie być) no ale trochę nie kapuje co on tam robi🤔

Link do komentarza
Share on other sites

Ponieważ za niedługo być może również będę się mierzył z tymi modułami, tym razem z transmisją gprs zacząłem szukać jakichś fajnych libsów. Co prawda mam jedną bardzo dobrze napisaną (komercyjną) ale żeby nie było nic ciekawego open source? No i jest, czy ktoś testował? https://medium.com/appiko/non-blocking-library-for-sim800-module-dfbaff02f697 lub przeportował na STM32 lub esp?

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

No i tak...czasem zdarza się że moduł nie reaguje na dzwonienie/SMS i trzeba mu zasilanie ponownie załączyć mimo że ma sieć...resetowal bym je przez pin rst (hard reset) no ale nie mam pojęcia jakich komend użyć żeby stwierdzić że taki restart jest potrzebny skoro mam sieć...ktoś coś kojarzy w temacie??

Link do komentarza
Share on other sites

19 godzin temu, farmaceuta napisał:

No i tak...czasem zdarza się że moduł nie reaguje na dzwonienie/SMS i trzeba mu zasilanie ponownie załączyć mimo że ma sieć...resetowal bym je przez pin rst (hard reset) no ale nie mam pojęcia jakich komend użyć żeby stwierdzić że taki restart jest potrzebny skoro mam sieć...ktoś coś kojarzy w temacie??

@SOYER a Ty miałeś u siebie takie problemy?  Czy raczej moduły chodzą Ci bez zarzutu..? (Gdy jest sieć to zawsze reagują)

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.