GSM sim800L volanie ked stlacim tlacidlo
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
GSM sim800L volanie ked stlacim tlacidlo
Ahojte som tu novy a nedari sa mi spravit jednoducha konfiguracia podreboval by som ked jednim tlacidlom uskutocnit hovor na 2-3 telefone cisla najpr jedno potom druhe ale nedari sa mi skombinovat tieto dva kody sms nepotrebujem potrebujem iba cisto hovor ..samotne kody funguju dobre ale dokopy ich nevime dat
// Tlacitko
#include <SoftwareSerial.h>
SoftwareSerial sim(10, 11);
int tlacPin = 2; // číslo pinu připojeného tlačítka
int ledPin = 3; // číslo pinu připojené LED diody
int stavTlac = 0; // proměnná stavu tlačítka
void setup() {
// nastavení LED jako výstup
pinMode(ledPin, OUTPUT);
// nastavení tlačítka jako vstup
pinMode(tlacPin, INPUT);
}
void loop() {
// načtení stavu tlačítka a uložení do proměnné
stavTlac = digitalRead(tlacPin);
// kontrola stisku tlačítka
// pokud je stisknuto tlačítko, stav je HIGH - log. 1
if (stavTlac == HIGH) {
// zapne LED diodu
digitalWrite(ledPin, HIGH);
}
// pokud není stisknuto tlačítko, stav je LOW - log. 0
else {
// vypne LED diodu
digitalWrite(ledPin, LOW);
}
}
#include <SoftwareSerial.h>
SoftwareSerial sim(10, 11);
int _timeout;
String _buffer;
String number = "+cislo"; //-> change with your number
void setup() {
delay(7000); //delay for 7 seconds to make sure the modules get the signal
Serial.begin(9600);
_buffer.reserve(50);
Serial.println("Sistem Started...");
sim.begin(9600);
delay(1000);
Serial.println("Type s to send an SMS, r to receive an SMS, and c to make a call");
}
void loop() {
if (Serial.available() > 0)
switch (Serial.read())
{
case 's':
SendMessage();
break;
case 'r':
RecieveMessage();
break;
case 'c':
callNumber();
break;
}
if (sim.available() > 0)
Serial.write(sim.read());
}
void SendMessage()
{
//Serial.println ("Sending Message");
sim.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000);
//Serial.println ("Set SMS Number");
sim.println("AT+CMGS=\"" + number + "\"\r"); //Mobile phone number to send message
delay(1000);
String SMS = "Hello, how are you?";
sim.println(SMS);
delay(100);
sim.println((char)26);// ASCII code of CTRL+Z
delay(1000);
_buffer = _readSerial();
}
void RecieveMessage()
{
Serial.println ("SIM800L Read an SMS");
delay (1000);
sim.println("AT+CNMI=2,2,0,0,0"); // AT Command to receive a live SMS
delay(1000);
Serial.write ("Unread Message done");
}
String _readSerial() {
_timeout = 0;
while (!sim.available() && _timeout < 12000 )
{
delay(13);
_timeout++;
}
if (sim.available()) {
return sim.readString();
}
}
void callNumber() {
sim.print (F("ATD"));
sim.print (number);
sim.print (F(";\r\n"));
_buffer = _readSerial();
Serial.println(_buffer);
}
// Tlacitko
#include <SoftwareSerial.h>
SoftwareSerial sim(10, 11);
int tlacPin = 2; // číslo pinu připojeného tlačítka
int ledPin = 3; // číslo pinu připojené LED diody
int stavTlac = 0; // proměnná stavu tlačítka
void setup() {
// nastavení LED jako výstup
pinMode(ledPin, OUTPUT);
// nastavení tlačítka jako vstup
pinMode(tlacPin, INPUT);
}
void loop() {
// načtení stavu tlačítka a uložení do proměnné
stavTlac = digitalRead(tlacPin);
// kontrola stisku tlačítka
// pokud je stisknuto tlačítko, stav je HIGH - log. 1
if (stavTlac == HIGH) {
// zapne LED diodu
digitalWrite(ledPin, HIGH);
}
// pokud není stisknuto tlačítko, stav je LOW - log. 0
else {
// vypne LED diodu
digitalWrite(ledPin, LOW);
}
}
#include <SoftwareSerial.h>
SoftwareSerial sim(10, 11);
int _timeout;
String _buffer;
String number = "+cislo"; //-> change with your number
void setup() {
delay(7000); //delay for 7 seconds to make sure the modules get the signal
Serial.begin(9600);
_buffer.reserve(50);
Serial.println("Sistem Started...");
sim.begin(9600);
delay(1000);
Serial.println("Type s to send an SMS, r to receive an SMS, and c to make a call");
}
void loop() {
if (Serial.available() > 0)
switch (Serial.read())
{
case 's':
SendMessage();
break;
case 'r':
RecieveMessage();
break;
case 'c':
callNumber();
break;
}
if (sim.available() > 0)
Serial.write(sim.read());
}
void SendMessage()
{
//Serial.println ("Sending Message");
sim.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000);
//Serial.println ("Set SMS Number");
sim.println("AT+CMGS=\"" + number + "\"\r"); //Mobile phone number to send message
delay(1000);
String SMS = "Hello, how are you?";
sim.println(SMS);
delay(100);
sim.println((char)26);// ASCII code of CTRL+Z
delay(1000);
_buffer = _readSerial();
}
void RecieveMessage()
{
Serial.println ("SIM800L Read an SMS");
delay (1000);
sim.println("AT+CNMI=2,2,0,0,0"); // AT Command to receive a live SMS
delay(1000);
Serial.write ("Unread Message done");
}
String _readSerial() {
_timeout = 0;
while (!sim.available() && _timeout < 12000 )
{
delay(13);
_timeout++;
}
if (sim.available()) {
return sim.readString();
}
}
void callNumber() {
sim.print (F("ATD"));
sim.print (number);
sim.print (F(";\r\n"));
_buffer = _readSerial();
Serial.println(_buffer);
}
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: GSM sim800L volanie ked stlacim tlacidlo
- 2 kody které jsi jen dal pod sebe - takto to nefunguje
- první kod podle stisku tlačítka rosvítí LED
- druhý kod podle zaslaného znaku přes Serial buď pošle SMS nebo telefonuje atd.
Co s tím ?
- kody nelze takto zkopírovat pod sebe
- začni prostudováním základů - struktura programu (deklarace proměnných, knihoven Setup(), Loop() ),
až toto pochopíš, stačí přečíst, můžeš začít "skládat" výsledný kod z několika jiných
Rádi ti tu pomůžeme
PS: nebo najít projekt "Arduino push to button call sim800L" nebo tak nějak (netlemte se ostatní, já jsem 50+ a učil jsem se jen rusky)
http://www.hobbyrobot.cz/wp-content/upl ... matora.pdf
- první kod podle stisku tlačítka rosvítí LED
- druhý kod podle zaslaného znaku přes Serial buď pošle SMS nebo telefonuje atd.
Co s tím ?
- kody nelze takto zkopírovat pod sebe
- začni prostudováním základů - struktura programu (deklarace proměnných, knihoven Setup(), Loop() ),
až toto pochopíš, stačí přečíst, můžeš začít "skládat" výsledný kod z několika jiných
Rádi ti tu pomůžeme
PS: nebo najít projekt "Arduino push to button call sim800L" nebo tak nějak (netlemte se ostatní, já jsem 50+ a učil jsem se jen rusky)
http://www.hobbyrobot.cz/wp-content/upl ... matora.pdf
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: GSM sim800L volanie ked stlacim tlacidlo
viem ze to neni dobre to mal byt priklad zatlacenim zavolam hovor, hlad som priklady ale vecsina je na SMS ja to potrebujem pre babku k posteli ked zatlaci zvoncek zavola to mne ostatnim na telefon bohuzial nevidi tak sa snazim tu najst niekoho kto mi stym pomoze
Nasiel som funkcne posielanie SMS zmenil som mySerial.println("AT+CMGS=\"+421901100314\"\r"); na mySerial.println("ATD+421901100314;");
tak vyzera to ze to funguje ale nedari sa mi pridat este 1 cislo ked nezdvihnem hovor alebo ho nezrusim aby zavolal na dalsie cislo
Tu mam vysledny kod co mam donho doplnit aby ked nedvihnem hovor volal na dlasie cislo? ale ked hovor zrusim tak nevolaj na dalsie cislo?
Nasiel som funkcne posielanie SMS zmenil som mySerial.println("AT+CMGS=\"+421901100314\"\r"); na mySerial.println("ATD+421901100314;");
tak vyzera to ze to funguje ale nedari sa mi pridat este 1 cislo ked nezdvihnem hovor alebo ho nezrusim aby zavolal na dalsie cislo
Kód: Vybrat vše
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
char msg;
char call;
int buttonpin=2;
void setup()
{
pinMode(buttonpin,INPUT);
mySerial.begin(9600); // Setting the baud rate of GSM Module
Serial.begin(9600);// Setting the baud rate of Serial Monitor (Arduino)
Serial.println("press button");
}
void loop()
{
if(digitalRead(buttonpin)==HIGH)
{
Serial.println("button pressed");
delay(2000);
SendMessage();
}
if (mySerial.available()>0)
Serial.write(mySerial.read());
}
void SendMessage()
{
mySerial.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000); // Delay of 1000 milli seconds or 1 second
mySerial.println("AT+CMGS=\"+421901100314\"\r"); // Replace x with mobile number
delay(1000);
mySerial.println("LOW CGPA DUDE....");// The SMS text you want to send
delay(100);
mySerial.println((char)26);// ASCII code of CTRL+Z
delay(1000);
}
Kód: Vybrat vše
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
char msg;
char call;
int buttonpin=2;
void setup()
{
pinMode(buttonpin,INPUT);
mySerial.begin(9600); // Setting the baud rate of GSM Module
Serial.begin(9600);// Setting the baud rate of Serial Monitor (Arduino)
Serial.println("press button");
}
void loop()
{
if(digitalRead(buttonpin)==HIGH)
{
Serial.println("button pressed");
delay(2000);
zavolaj();
}
if (mySerial.available()>0)
Serial.write(mySerial.read());
}
void zavolaj()
{
mySerial.println("ATD+421901100314;");
}
Naposledy upravil(a) lojzo2000 dne 31 říj 2020, 11:40, celkem upraveno 1 x.
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: GSM sim800L volanie ked stlacim tlacidlo
myšlenoked zdvihnem hovor zavolaj na dalsie cislo
- volám na první číslo
- nikdo to nezdvihá
- na základě tohoto se po nějaké době hovor zruší a zavolá na jioné číslo ?
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: GSM sim800L volanie ked stlacim tlacidlo
Ano presne to potrenujem
respektive ked prve cislo zdvihne hovor alebo odmietne hovor(zrusi hovor prvi cislo) aby uz nevolal na dalsie čislo ak sa to da takto logicky spravit by to bolo super
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: GSM sim800L volanie ked stlacim tlacidlo
řeší se to pomocí milis()
hledejte "Arduino časové zpoždění" nebo tak nějak
omlouvám se, nemám teď čas - máme oběd a návštěvu
pokud nepomůže někdo jiný - večer se ozvu - je to jednoduché
hledejte "Arduino časové zpoždění" nebo tak nějak
omlouvám se, nemám teď čas - máme oběd a návštěvu
pokud nepomůže někdo jiný - večer se ozvu - je to jednoduché
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: GSM sim800L volanie ked stlacim tlacidlo
Edituje si Lojzo své dotazy a vymazej si telefonní číslo z kódu. Ať tě nikdo neotravuje.
Re: GSM sim800L volanie ked stlacim tlacidlo
Tak sa mi to podarilo funguje to ale je to formou delay pomoci milis() mi to neslo vertifikovat ale cas sa moze lišit je to odhat 70 sekund a vola na dalsie tel.cislo
chcel by som to uprestnit ked v konzole pride -> BUSY alebo NO CARRIER
tak chcem aby uz na dalsie čislo nevolalo
ak pride -> NO ANSWER tak pokracuj a zavolaj na dalsie čislo
neviem ako napisat do kodu aby cital stav a nasledne podla stavu sa rozhodol ci zavola alebo uz nie
chcel by som to uprestnit ked v konzole pride -> BUSY alebo NO CARRIER
tak chcem aby uz na dalsie čislo nevolalo
ak pride -> NO ANSWER tak pokracuj a zavolaj na dalsie čislo
neviem ako napisat do kodu aby cital stav a nasledne podla stavu sa rozhodol ci zavola alebo uz nie
Kód: Vybrat vše
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
int hovor=2;
void setup()
{
pinMode(poplach,INPUT);
mySerial.begin(9600); //
Serial.begin(9600);//
Serial.println("cakam na hovor");
}
void loop()
{
if(digitalRead(hovor)==HIGH)
{
Serial.println("hovor spusteny");
delay(1000);
zavolaj1();
delay(70000);
zavolaj2();
}
if (mySerial.available()>0)
Serial.write(mySerial.read());
}
void zavolaj1()
{
mySerial.println("ATD+123456;");
}
void zavolaj2()
{
mySerial.println("ATD+123456;");
delay(1000);
}
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: GSM sim800L volanie ked stlacim tlacidlo
Tak s tímto asi neporadím, mám tu sice SIM800, ale bohužel se toho na mne navalilo moc.
Jen upozorním, že během toho delay() - Arduino nic nedělá, jakoby zamrzne na tom příkazu a jen časuje.
Proto se delay() používá jen ve vyjímečných případech
Jen upozorním, že během toho delay() - Arduino nic nedělá, jakoby zamrzne na tom příkazu a jen časuje.
Proto se delay() používá jen ve vyjímečných případech
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: GSM sim800L volanie ked stlacim tlacidlo
aha tak to som nevedel a ako mam pouzit vtom kode mesto delay pouzit milis() skusal som rozne manualy ale neviem to sfunkcnit to milis()
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 18 hostů