Подскажете почему СМС не отправляет?
- java
- Держит паяльник хвостом
- Сообщения: 962
- Зарегистрирован: Вт янв 04, 2011 13:26:17
- Откуда: Лен.Обл.
Подскажете почему СМС не отправляет?
Собрал сёкак в схеме, при размыкании на четвёртой ножке 5 вольт звонок идёт на телефоне, при размыкании 5 вольт на 5,6,7 и 8 должна приходить СМС, а она не приходит.
Взято от сюда http://bestdiy.ru/gsm-signalizatsiya-na ... duino.html
String numberCall_1 = "79123456789"; // Номер абонента №1 для звонка
String numberSMS_1 = "+79123456789"; // Номер абонента №1 для СМС (отличается только знаком +)
String numberCall_2 = "79123456782"; // Номер абонента №2 для звонка
String numberSMS_2 = "+79123456782"; // Номер абонента №2 для СМС (отличается только знаком +)
String textZone_1 = "Alarm! Zone1"; // Свое название зоны , на латинице.
String textZone_2 = "Alarm! Zone2"; // Свое название зоны , на латинице.
String textZone_3 = "Alarm! Zone3"; // Свое название зоны , на латинице.
String textZone_4 = "Alarm! Zone4"; // Свое название зоны , на латинице.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);
#define pinSensor_0 4
#define pinSensor_1 5
#define pinSensor_2 6
#define pinSensor_3 7
#define pinSensor_4 8
void initGSM(void) {
delay(2000);
mySerial.begin(9600); // Выставляем скорость общения с GSM-модулем 9600 Бод/сек.
mySerial.println("AT+CLIP=1");
delay(300);
mySerial.println("AT+CMGF=1");
delay(300);
mySerial.println("AT+CSCS=\"GSM\"");
delay(300);
mySerial.println("AT+CNMI=2,2,0,0,0");
delay(300);
}
/* Отправка SMS */
void sendSMS(String text, String phone) {
mySerial.println("AT+CMGS=\"" + phone + "\"");
delay(500);
mySerial.print(text);
delay(500);
mySerial.print((char)26);
delay(2500);
}
unsigned long timerTemp = 0;
uint8_t hours = 0;
uint8_t flagSensor_0 = 0;
uint8_t flagSensor_1 = 0;
uint8_t flagSensor_2 = 0;
uint8_t flagSensor_3 = 0;
uint8_t flagSensor_4 = 0;
void setup() {
mySerial.begin(9600);
initGSM();
pinMode(pinSensor_0, INPUT);
pinMode(pinSensor_1, INPUT);
pinMode(pinSensor_2, INPUT);
pinMode(pinSensor_3, INPUT);
pinMode(pinSensor_4, INPUT);
timerTemp = millis();
}
void loop() {
if(millis() - timerTemp >= 3600000) {timerTemp = millis(); hours++;}
if(hours >= 144) {// Меняем время контроля системы на свое,144 часа.кол-во часов .
sendSMS(String("The system works normally.OK"), numberSMS_1);
delay(10000);
sendSMS(String("The system works normally.OK"), numberSMS_2);
delay(10000);
hours = 0;
timerTemp = millis();
}
if(flagSensor_0 == 0 && digitalRead(pinSensor_0) == 0) flagSensor_0 = 1;
if(flagSensor_1 == 0 && digitalRead(pinSensor_1) == 0) flagSensor_1 = 1;
if(flagSensor_2 == 0 && digitalRead(pinSensor_2) == 0) flagSensor_2 = 1;
if(flagSensor_3 == 0 && digitalRead(pinSensor_3) == 0) flagSensor_3 = 1;
if(flagSensor_4 == 0 && digitalRead(pinSensor_4) == 0) flagSensor_4 = 1;
if(flagSensor_0 == 1) {
String command;
command = "ATD+" + numberCall_1 + ";";
mySerial.println(command);
delay(20000);
mySerial.println("ATH");
delay(1000);
command = "ATD+" + numberCall_2 + ";";
mySerial.println(command);
delay(20000);
mySerial.println("ATH");
delay(1000);
flagSensor_0 = 2;
}
if(flagSensor_1 == 1) {
sendSMS(textZone_1, numberSMS_1);
delay(10000);
sendSMS(textZone_1, numberSMS_2);
delay(10000);
flagSensor_1 = 2;
}
if(flagSensor_2 == 1) {
sendSMS(textZone_2, numberSMS_1);
delay(10000);
sendSMS(textZone_2, numberSMS_2);
delay(10000);
flagSensor_2 = 2;
}
if(flagSensor_3 == 1) {
sendSMS(textZone_3, numberSMS_1);
delay(10000);
sendSMS(textZone_3, numberSMS_2);
delay(10000);
flagSensor_3 = 2;
}
if(flagSensor_4 == 1) {
sendSMS(textZone_4, numberSMS_1);
delay(10000);
sendSMS(textZone_4, numberSMS_2);
delay(10000);
flagSensor_4 = 2;
}
if(flagSensor_0 == 2 && digitalRead(pinSensor_0) != 0) flagSensor_0 = 0;
if(flagSensor_1 == 2 && digitalRead(pinSensor_1) != 0) flagSensor_1 = 0;
if(flagSensor_2 == 2 && digitalRead(pinSensor_2) != 0) flagSensor_2 = 0;
if(flagSensor_3 == 2 && digitalRead(pinSensor_3) != 0) flagSensor_3 = 0;
if(flagSensor_4 == 2 && digitalRead(pinSensor_4) != 0) flagSensor_4 = 0;
}
Взято от сюда http://bestdiy.ru/gsm-signalizatsiya-na ... duino.html
String numberCall_1 = "79123456789"; // Номер абонента №1 для звонка
String numberSMS_1 = "+79123456789"; // Номер абонента №1 для СМС (отличается только знаком +)
String numberCall_2 = "79123456782"; // Номер абонента №2 для звонка
String numberSMS_2 = "+79123456782"; // Номер абонента №2 для СМС (отличается только знаком +)
String textZone_1 = "Alarm! Zone1"; // Свое название зоны , на латинице.
String textZone_2 = "Alarm! Zone2"; // Свое название зоны , на латинице.
String textZone_3 = "Alarm! Zone3"; // Свое название зоны , на латинице.
String textZone_4 = "Alarm! Zone4"; // Свое название зоны , на латинице.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);
#define pinSensor_0 4
#define pinSensor_1 5
#define pinSensor_2 6
#define pinSensor_3 7
#define pinSensor_4 8
void initGSM(void) {
delay(2000);
mySerial.begin(9600); // Выставляем скорость общения с GSM-модулем 9600 Бод/сек.
mySerial.println("AT+CLIP=1");
delay(300);
mySerial.println("AT+CMGF=1");
delay(300);
mySerial.println("AT+CSCS=\"GSM\"");
delay(300);
mySerial.println("AT+CNMI=2,2,0,0,0");
delay(300);
}
/* Отправка SMS */
void sendSMS(String text, String phone) {
mySerial.println("AT+CMGS=\"" + phone + "\"");
delay(500);
mySerial.print(text);
delay(500);
mySerial.print((char)26);
delay(2500);
}
unsigned long timerTemp = 0;
uint8_t hours = 0;
uint8_t flagSensor_0 = 0;
uint8_t flagSensor_1 = 0;
uint8_t flagSensor_2 = 0;
uint8_t flagSensor_3 = 0;
uint8_t flagSensor_4 = 0;
void setup() {
mySerial.begin(9600);
initGSM();
pinMode(pinSensor_0, INPUT);
pinMode(pinSensor_1, INPUT);
pinMode(pinSensor_2, INPUT);
pinMode(pinSensor_3, INPUT);
pinMode(pinSensor_4, INPUT);
timerTemp = millis();
}
void loop() {
if(millis() - timerTemp >= 3600000) {timerTemp = millis(); hours++;}
if(hours >= 144) {// Меняем время контроля системы на свое,144 часа.кол-во часов .
sendSMS(String("The system works normally.OK"), numberSMS_1);
delay(10000);
sendSMS(String("The system works normally.OK"), numberSMS_2);
delay(10000);
hours = 0;
timerTemp = millis();
}
if(flagSensor_0 == 0 && digitalRead(pinSensor_0) == 0) flagSensor_0 = 1;
if(flagSensor_1 == 0 && digitalRead(pinSensor_1) == 0) flagSensor_1 = 1;
if(flagSensor_2 == 0 && digitalRead(pinSensor_2) == 0) flagSensor_2 = 1;
if(flagSensor_3 == 0 && digitalRead(pinSensor_3) == 0) flagSensor_3 = 1;
if(flagSensor_4 == 0 && digitalRead(pinSensor_4) == 0) flagSensor_4 = 1;
if(flagSensor_0 == 1) {
String command;
command = "ATD+" + numberCall_1 + ";";
mySerial.println(command);
delay(20000);
mySerial.println("ATH");
delay(1000);
command = "ATD+" + numberCall_2 + ";";
mySerial.println(command);
delay(20000);
mySerial.println("ATH");
delay(1000);
flagSensor_0 = 2;
}
if(flagSensor_1 == 1) {
sendSMS(textZone_1, numberSMS_1);
delay(10000);
sendSMS(textZone_1, numberSMS_2);
delay(10000);
flagSensor_1 = 2;
}
if(flagSensor_2 == 1) {
sendSMS(textZone_2, numberSMS_1);
delay(10000);
sendSMS(textZone_2, numberSMS_2);
delay(10000);
flagSensor_2 = 2;
}
if(flagSensor_3 == 1) {
sendSMS(textZone_3, numberSMS_1);
delay(10000);
sendSMS(textZone_3, numberSMS_2);
delay(10000);
flagSensor_3 = 2;
}
if(flagSensor_4 == 1) {
sendSMS(textZone_4, numberSMS_1);
delay(10000);
sendSMS(textZone_4, numberSMS_2);
delay(10000);
flagSensor_4 = 2;
}
if(flagSensor_0 == 2 && digitalRead(pinSensor_0) != 0) flagSensor_0 = 0;
if(flagSensor_1 == 2 && digitalRead(pinSensor_1) != 0) flagSensor_1 = 0;
if(flagSensor_2 == 2 && digitalRead(pinSensor_2) != 0) flagSensor_2 = 0;
if(flagSensor_3 == 2 && digitalRead(pinSensor_3) != 0) flagSensor_3 = 0;
if(flagSensor_4 == 2 && digitalRead(pinSensor_4) != 0) flagSensor_4 = 0;
}
Пишу с ошибками и опечатками.На это у меня есть разрешение и справка
Re: Подскажете почему СМС не отправляет?
Напишите сначала код отправки одной SMS, сразу после включения. Безо всяких странных сигналов и флагов.
Чтобы убедиться, что SMS вообще возможно отправить.
Чтобы убедиться, что SMS вообще возможно отправить.
Re: Подскажете почему СМС не отправляет?
Приведённый листинг это наглядный пример говнокода, слепленного на коленке, и того, как прошивки писать нельзя.
Ни правильной инициализации SIM800, ни проверок на возникающие ошибки, какие-то дикие задержки от нескольких до аж 10-20 секунд...
В общем, мрак и ничего удивительного, что там что-то не работает.
Ни правильной инициализации SIM800, ни проверок на возникающие ошибки, какие-то дикие задержки от нескольких до аж 10-20 секунд...
В общем, мрак и ничего удивительного, что там что-то не работает.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
- java
- Держит паяльник хвостом
- Сообщения: 962
- Зарегистрирован: Вт янв 04, 2011 13:26:17
- Откуда: Лен.Обл.
Re: Подскажете почему СМС не отправляет?
[uquote="smacorp",url="/forum/viewtopic.php?p=4645284#p4645284"]Приведённый листинг это наглядный пример говнокода, .[/uquote]
однако в интернети эта статья повторяется как минимум на десятках ресурсов
однако в интернети эта статья повторяется как минимум на десятках ресурсов
Пишу с ошибками и опечатками.На это у меня есть разрешение и справка
Re: Подскажете почему СМС не отправляет?
java, так разве это показатель? В Интернете полно ресурсов, которые только тем и занимаются, что копируют чужие статьи с одной целью - привлечь поток посетителей и показать побольше рекламы. Так называемый кликбейт - https://ru.wikipedia.org/wiki/Кликбейт
Поэтому то, что статья копипастится много где, увы, не есть показатель её качества.
Поэтому то, что статья копипастится много где, увы, не есть показатель её качества.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
- java
- Держит паяльник хвостом
- Сообщения: 962
- Зарегистрирован: Вт янв 04, 2011 13:26:17
- Откуда: Лен.Обл.
Re: Подскажете почему СМС не отправляет?
К сожалению да, и везде с одинаковой ошибкой. Напишу вам в личку.
Пишу с ошибками и опечатками.На это у меня есть разрешение и справка
Re: Подскажете почему СМС не отправляет?
зато она сама себе показатель некачества... но я постеснялся так написать, думал, что это плод ТС...smacorp писал(а):то, что статья копипастится много где, увы, не есть показатель её качества
- java
- Держит паяльник хвостом
- Сообщения: 962
- Зарегистрирован: Вт янв 04, 2011 13:26:17
- Откуда: Лен.Обл.
Re: Подскажете почему СМС не отправляет?
Автор нашёлся в коментариях вот здесь https://www.drive2.ru/c/501088956415214 ... h232860346
но ничего конкретного не сказал, и навопрос почеиу не отправляется СМС ответил что то невнятное, как его найти не знаю, известно только что зовут Илья и живёт в казахстане.
Вобще такая простенькая сигнализация была бы само то, в интернете много разных схем,но там лишнего всего наворочено, что совсем не кчему.Включение нагоузки, температура и так далее.
Я так понял править этот код ни кто не будет, (по крайней мере бесплатно) а автора не найти, а жаль.
но ничего конкретного не сказал, и навопрос почеиу не отправляется СМС ответил что то невнятное, как его найти не знаю, известно только что зовут Илья и живёт в казахстане.
Вобще такая простенькая сигнализация была бы само то, в интернете много разных схем,но там лишнего всего наворочено, что совсем не кчему.Включение нагоузки, температура и так далее.
Я так понял править этот код ни кто не будет, (по крайней мере бесплатно) а автора не найти, а жаль.
Пишу с ошибками и опечатками.На это у меня есть разрешение и справка
Re: Подскажете почему СМС не отправляет?
Он ответил "настройте можем на текстовый режим", что по сути является действительно отпиской ни о чём, так как "можем" на текстовый режим в скетче уже настроен строкой mySerial.println("AT+CMGF=1"). Но он, хотя бы, честно там признаёт, что скетч слеплен на коленке.java писал(а):Автор нашёлся ... но ничего конкретного не сказал, и на вопрос почему не отправляется СМС ответил что то невнятное
Так всё упирается во время и силы. У меня, например, даже на платные заказы не всегда находятся оные субстанции, я уж молчу про собственные проекты, которые было бы очень интересно сделать для себя, но они откладываются годами "до лучших времён", а многие так и не будут реализованы, похоже, никогда. Что уж говорить про анализ и моделирование чужого кода. C’est la Vie.java писал(а):Я так понял править этот код ни кто не будет, (по крайней мере бесплатно).
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Re: Подскажете почему СМС не отправляет?
За деньги тем более не будут, напишут с нуля, изначально правильно-нормально.java писал(а):Я так понял править этот код ни кто не будет, (по крайней мере бесплатно)
Править его имеет смысл только чтобы показать Вам, как надо и как не надо программировать, если Вы хотите научиться.
- java
- Держит паяльник хвостом
- Сообщения: 962
- Зарегистрирован: Вт янв 04, 2011 13:26:17
- Откуда: Лен.Обл.
Re: Подскажете почему СМС не отправляет?
я пытался научиться, даже смог удочку сделать на сервоприводе, подсмотрев как это работает, но дальше тёмный лес, это надо чтобы кто то научил, а самому по интернету это не очень получилось, но у нас в городе не кому.
Последний раз редактировалось java Вт ноя 05, 2024 18:29:43, всего редактировалось 2 раза.
Пишу с ошибками и опечатками.На это у меня есть разрешение и справка
Re: Подскажете почему СМС не отправляет?
Да нет, конечно. Меня вот кто программированию учил? Я сам, постепенно, начиная с Бейсика на самодельном ZX-Spectrum, когда Интернета и в помине не было, а была разрозненная информация из журналов и, как ни странно, из самиздата - помню, как у одного аспиранта из под полы покупал документацию на первые версии Delphi, втихаря им распечатанную на кафедральном принтере на ворованной им же там же бумаге.
И когда небольшой курс программирования начался у меня по получаемой специальности, я всё это уже умел и откровенно скучал на лекциях, развлекаясь с лектором спорами о целесообразности того или иного алгоритма.
Другое дело, что самостоятельное обучение небыстро, требует усидчивости и определённой силы - порой руки могут опускаться до уровня "да нахрена это всё нужно?!". У меня, правда, не опускались, так как тупо было очень интересно.
Другое дело, что самостоятельное обучение небыстро, требует усидчивости и определённой силы - порой руки могут опускаться до уровня "да нахрена это всё нужно?!". У меня, правда, не опускались, так как тупо было очень интересно.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Re: Подскажете почему СМС не отправляет?
Это легко. Программирование - это в первую очередь умение составлять алгоритмы. В жизни Вы это делаете постоянно, но не так, как в этой программе. Если провести аналогию с чем то бытовым, то в ней, чтобы съесть суп, каждый раз берётся зачем-то новая ложка. В жизни ведь так делать никто не будет, поэтому, и в программе не надо.java писал(а):это надо чтобы кто то научил
Вот и всё.
А дальше берётся книжка, из старых, например "Программирование для всех" https://publ.lib.ru/ARCHIVES/S/SALTYKOV ... _A.I..html
И читается. Совершенно не важно, что там язык Фортран и для старинных машин, её надо просто прочитать, понимая прочитанное и пометив в уме, что применительно к другим языкам и машинам всё может быть немного иначе. Даже не нужно программировать вживую, можно воспользоваться листком бумаги и ручкой.
Можно выбрать и другую книжку, но я других не помню.
Это будет первый этап.
А дальше выбираете следующий, уже ориентированный на практические задачи, выбранные язык, "железо", среду разработки и т.д.
И тут тоже есть два пути: быстрый, простой и ограниченный - Ардуино. Сможете быстро делать кучу всякого, в основном копируя чужое и задавая вопросы на форумах.
Медленный, сложный, но безграничный в возможностях - что угодно, но не Ардуино.
Есть, правда, и третий путь: научиться строить задания для нейросетей.
- java
- Держит паяльник хвостом
- Сообщения: 962
- Зарегистрирован: Вт янв 04, 2011 13:26:17
- Откуда: Лен.Обл.
Re: Подскажете почему СМС не отправляет?
странно, вот здесь в коментах некоторые люди пишут чтоу них заработало. Кто-то что-то подправил, у кого-то сразу пошло.
https://www.youtube.com/watch?v=ErKefQ9ptsI
https://www.youtube.com/watch?v=ErKefQ9ptsI
Пишу с ошибками и опечатками.На это у меня есть разрешение и справка