filmov
tv
Arduino SIM800L GSM модуль v1 2017 11 22

Показать описание
/* v1 2017.11.22 Arduino SIM800L GSM-модуль; v.[ide] ARDUINO 1.6.12 - 2016.09.21
SIM800L_GSM_2017_11_22_pro_mini_ARDUINO_ide_1_6_12
*/
// Препроцессорная компиляция кода.
// Препроцессор выполняет предварительную настройку кода, перед передачей компилятору (загрузкой в Arduino)
#define CODE_SETTINGS 0 // режим эксплуатации устройства:
#define CODE_SETTINGS 1 // режим тестирования устройства: с ограниченным выводом данных в Serial Monitor
//#define CODE_SETTINGS 2 // режим тестирования устройства: с полным выводом данных в Serial Monitor
//#define CODE_SETTINGS 3 // режим тестирования устройства: запись в EEPROM, с полным выводом данных в Serial Monitor
#include ◄EEPROM.h► // библиотека для работы с энергонезависимой памятью
#include ◄SoftwareSerial.h► // библиотека для программного Serial - UART
SoftwareSerial SIM800(8, 9); // (RX, TX) (8-Pin : 9-Pin - Arduino) Соединяем с (TX:RX SIM800L)
#define listMyPhone 9 // количество разрешенных - телефонных номеров
#define PhoneLength 13 // длина телефонного номера 12 + Символ конца строки (NULL '\0' 0)
char arrMyPhone[listMyPhone][PhoneLength] = {0}; // массив для хранения, разрешенных - телефонных номеров
char arrReadSIM800[199] = {0}; // массив для приема данных от SIM800L
int indexFilterPhone = 0; // индекс в массиве, номера телефона поступившего звонка или SMS, прошедшего фильтрацию "свой Чужой"
int SMSindx = 0; // индекс поступившего SMS, хранящегося на sim-карте
/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
#define motionSensorPin 10 // датчик движения подключён K Pin 10
int onOfSecurity = EEPROM.read(999); // восстанавливаем прошлый, статус охраны (On или Off) и уровень чувствительности охраны
bool SMSsecurityOnOf = EEPROM.read(990); // восстанавливаем прошлый, статус охраны - SMS оповещение (On или Off)
/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
// Прототипы функций: нужны - чтобы все функции были видны компилятору, вне зависимости от их расположения в коде
// void loop(); // (Перейти к строке) № 141
char * SIM800Read(); // (Перейти к строке) № 173
bool filterPhoneNumber(); // (Перейти к строке) № 259
bool sendATcommand(char *, char *, char *, char *); // (Перейти к строке) № 313
void SMSmessageCommand(char *); // (Перейти к строке) № 341
void SMSsend(char *, char *); // (Перейти к строке) № 494
void DTMFcommand(char); // (Перейти к строке) № 548
void sensorMotion(); // (Перейти к строке) № 647
void serialEvent(); // (Перейти к строке) № 688
void testFunction(); // (Перейти к строке) № 702
/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
void setup() {
SIM800L_GSM_2017_11_22_pro_mini_ARDUINO_ide_1_6_12
*/
// Препроцессорная компиляция кода.
// Препроцессор выполняет предварительную настройку кода, перед передачей компилятору (загрузкой в Arduino)
#define CODE_SETTINGS 0 // режим эксплуатации устройства:
#define CODE_SETTINGS 1 // режим тестирования устройства: с ограниченным выводом данных в Serial Monitor
//#define CODE_SETTINGS 2 // режим тестирования устройства: с полным выводом данных в Serial Monitor
//#define CODE_SETTINGS 3 // режим тестирования устройства: запись в EEPROM, с полным выводом данных в Serial Monitor
#include ◄EEPROM.h► // библиотека для работы с энергонезависимой памятью
#include ◄SoftwareSerial.h► // библиотека для программного Serial - UART
SoftwareSerial SIM800(8, 9); // (RX, TX) (8-Pin : 9-Pin - Arduino) Соединяем с (TX:RX SIM800L)
#define listMyPhone 9 // количество разрешенных - телефонных номеров
#define PhoneLength 13 // длина телефонного номера 12 + Символ конца строки (NULL '\0' 0)
char arrMyPhone[listMyPhone][PhoneLength] = {0}; // массив для хранения, разрешенных - телефонных номеров
char arrReadSIM800[199] = {0}; // массив для приема данных от SIM800L
int indexFilterPhone = 0; // индекс в массиве, номера телефона поступившего звонка или SMS, прошедшего фильтрацию "свой Чужой"
int SMSindx = 0; // индекс поступившего SMS, хранящегося на sim-карте
/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
#define motionSensorPin 10 // датчик движения подключён K Pin 10
int onOfSecurity = EEPROM.read(999); // восстанавливаем прошлый, статус охраны (On или Off) и уровень чувствительности охраны
bool SMSsecurityOnOf = EEPROM.read(990); // восстанавливаем прошлый, статус охраны - SMS оповещение (On или Off)
/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
// Прототипы функций: нужны - чтобы все функции были видны компилятору, вне зависимости от их расположения в коде
// void loop(); // (Перейти к строке) № 141
char * SIM800Read(); // (Перейти к строке) № 173
bool filterPhoneNumber(); // (Перейти к строке) № 259
bool sendATcommand(char *, char *, char *, char *); // (Перейти к строке) № 313
void SMSmessageCommand(char *); // (Перейти к строке) № 341
void SMSsend(char *, char *); // (Перейти к строке) № 494
void DTMFcommand(char); // (Перейти к строке) № 548
void sensorMotion(); // (Перейти к строке) № 647
void serialEvent(); // (Перейти к строке) № 688
void testFunction(); // (Перейти к строке) № 702
/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
void setup() {