GSM модуль SiM 800L
- Войдите на сайт для отправки комментариев
Пнд, 17/06/2019 - 17:08
Привет, немогу разобратся с модулем sim 800l Собрал на нем ссигнализацию, При подключении через usb с компом работает нормально, шлет смс стабильно. Как толко подключаю от пнешнего питания, sms Больше не приходят(((
Весь день ломаю голову(((
Помогите) спасите колегу))
вот сам скетч:
#include <SoftwareSerial.h> //Библиотека для работы Serial
SoftwareSerial mySerial(2, 3); // RX, TX
#define smokePin A0 // определяем аналоговый выход к которому подключен датчик Газа
int sensorThres = 200; // пороговое значение АЦП, при котором считаем что газ есть
#define sensorPin A1 // определяем аналоговый выход к которому подключен датчик Протечки
int sensorValue = 600; //пороговое значение АЦП, при котором считаем что теч есть
#define led 12 //Светодиод индикации
void setup() {
Serial.begin(115200); //Запускаем сериал на скорости работы модуля GSM!!!
pinMode(12, OUTPUT);// 12 пин как выход
Serial.println("GSM Alarm v.1.0"); // Запись в сериал для отладки
mySerial.begin(115200); //Установим скорость для SIM800L
mySerial.println("AT"); // Проверочная команда датчику GSM Для отладки
pinMode(4, INPUT); // Пин датчика движения как вход
pinMode(5, INPUT); // PIR 2 Запасной пин
pinMode(6, INPUT); // G 1//
pinMode(9, INPUT); //// Пин датчика протечки как вход
pinMode(10, INPUT); // Po 1
pinMode(11, INPUT); // Po 2
// настройка приема сообщений
delay(500);
mySerial.println("AT+CMGF=1");//Работа с GSM
delay(500);
mySerial.println("AT+IFC=1,0");//Работа с GSM
delay(500);
mySerial.println("AT+IPR=115200");
delay(500);
mySerial.println('AT+CPBS="SM"');//Работа с GSM
delay(500);
mySerial.println("AT+CNMI=1,2,2,1,0");//Работа с GSM
delay(4000);//Задержка 40 секунд чтоб успеть уйти c охраняемого обьекта.
}
void loop() {
String num ="79081341358"; // Ваш номер телефона 79525429645
mySerial.println("AT");// Проверочная команда датчику GSM Для отладки
delay(100);
//если сработал датчик то...
if (digitalRead(4)==HIGH) {
Serial.println("Pin 4 High");
delay(100);
//mySerial.println("ATD"+num+";");
sms(String("Dvizenie!"),String(num)); //Шлем SMS на указанный выше номер
digitalWrite(led, HIGH);
delay(1000); //Ждем секунду
digitalWrite(led, LOW);
};
if (digitalRead(5)==HIGH) {
Serial.println("Pin 5 High");
delay(100);
//mySerial.println("ATD"+num+";");
sms(String("Motion_detection-2!"),String(num)); //Шлем SMS на указанный выше номер
digitalWrite(led, HIGH); //Зажигаем сигнальный светодиод
delay(1000); //Ждем секунду
digitalWrite(led, LOW); //Гасим светодиод
};
if (digitalRead(6)==LOW) {
Serial.println("Pin 6 High");
delay(100);
//mySerial.println("ATD"+num+";");
sms(String("Alarm-Dver-1!"),String(num)); //Шлем SMS на указанный выше номер
digitalWrite(led, HIGH); //Зажигаем сигнальный светодиод
delay(1000); //Ждем секунду
digitalWrite(led, LOW); //Гасим светодиод
};
int val = analogRead(sensorPin); // считываем значения АЦП с аналогового входа
if (val < sensorPin) { // если значение больше допустимого...
Serial.println("Alarm-Voda!"); // выводим в порт надпись, что газ есть
delay(100);
//mySerial.println("ATD"+num+";");
sms(String("Alarm-Voda!"),String(num));
digitalWrite(led, HIGH); //Зажигаем сигнальный светодиод
delay(1000); //Ждем секунду
digitalWrite(led, LOW); //Гасим светодиод
}
else { // иначе...
}
int analogSensor = analogRead(smokePin); // считываем значения АЦП с аналогового входа
if (analogSensor > sensorThres) { // если значение больше допустимого...
Serial.println(" Gaz!"); // выводим в порт надпись, что газ есть
delay(100);
////mySerial.println("ATD"+num+";");
sms(String("Alarm-FIRE-1!"),String(num));
digitalWrite(led, HIGH); //Зажигаем сигнальный светодиод
delay(1000); //Ждем секунду
digitalWrite(led, LOW); //Гасим светодиод
}
else { // иначе...
}
}
// Условия для отчето об отправке SMS при тревоге (для отладки)
void sms(String text, String phone) {
Serial.println("SMS send started");
mySerial.println("AT+CMGS=\"" + phone + "\"");
delay(1500);
mySerial.print(text);
delay(500);
mySerial.print((char)26);
delay(500);
Serial.println("SMS send finish");
delay(3000);
}
Схема подключения?
Прошу не бить ногами код сырой)) Частично из инета
Схема правильная, через делител как положенно
Он почемуто отказывается слать смс через внешнее питание. Но если воткнуть в комп, потом обратно во внешнее, то все работает до того времменни пока сам модуль не перезагрузишь
Схема правильная, через делител как положенно
Ну, раз правильная, значит всё должно работать правильно.
Схема правильная, через делител как положенно
вам хотел помочь человек, который компетентен и самый авторитетный на этом форуме.
а вы просто берёте и отбрасываете его помощь.
это , по крайней мере, глупо.....
Если кому интересно, я решил проблему. Я поставил delay 5000 в void setup. Чтоб При запуске ардуинка подождала 5 секунд, а Sim 800l Усвоил АТ команды при старте. И они тогда в ногу идут как солдаты)))) Удачи всем. Спасибо!!!
А нафига так много-то? Если от юсб работает, значит достаточно на время работы загрузчика.
Методом "тыка" Подобрал время)) С пяти секундами почемуто стабильно работает.
Две должно за глаза хватать.