Официальный сайт компании Arduino по адресу arduino.cc
Функция отправки SMS с GSM/GPRS шилда SIM900
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Всем привет !!! Програмить я только учусь, по этому прошу вашей помощи. Сильно не ругайте )))).
Делаю сигнализацию на беспроводных датчиках движения, с возможностью принимать сигнал дверного звонка, и вкл./выкл. сигнализации с помощью с пульта.
Система состоит из следующих компонентов:
- arduino mini pro
- GSM/GPRS шилд SIM900,
- Приемник XY-MK-5V (433 mHz)
- Беспроводные датчики движения (433 mHz)
- Дверной звонок на TL 2262 (433 mHz)
- Пульт с приемником в комплекте 2262/2272 (433 mHz)
Методом «тыка» определил , что для приёма сигнала с датчиков движения подошла библиотека RCSwith (подключен к pin 2),
а для дверного звонка RemoteSwich (подключен к pin 3), хотя звонок на TL 2262 и по идее должен ловиться RCSwith-ом .
Прием сигналов с датчиков:
#include <RemoteReceiver.h> #include <RCSwitch.h> #include <SoftwareSerial.h> #include "SIM900.h" #include "sms.h" RCSwitch mySwitch = RCSwitch(); SMSGSM sms; int numdata; boolean started=false; char smsbuffer[160]; char n[20]; void setup() { Serial.begin(9600); RemoteReceiver::init(0, 3, showCode);// для этой библиотеки пин 2 mySwitch.enableReceive(1); // а для этой пин 3 } /* =======ДЛЯ ФУНКЦИИ ОТПРАВКИ SMS СООБЩЕНИЯ======== if (gsm.begin(2400)){ // включаем шильд started=true; } sms.SendSMS("+7********", "ROOM_ALARM!!!"); // отправляем SMS */ void loop() { if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); if (mySwitch.getReceivedValue() == 9290441) { //код с датчика движения № 1 Serial.println("ROOM_ONE");// вместо этого ставим mySwitch.resetAvailable(); // отправку смс } if (mySwitch.getReceivedValue() == 12901577) { //код с датчика движения № 2 Serial.println("ROOM_TWO"); // вместо этого ставим mySwitch.resetAvailable(); // отправку смс } } } /* ЛОВИМ ЗВОНОК С ДВЕРИ */ void showCode(unsigned long receivedCode, unsigned int period) { if (receivedCode == 500904) Serial.println("DOOR"); }
Прошу помочь в следующем:
1. Как правильно написать функцию для отправки СМС под библиотеку SIM900, при срабатывании датчиков движения и звонка.
2. Возможно ли использовать одну библиотеку И для датчика движения И для звонка. Может что-то изменить в самой библиотеке RCSwich чтобы она принимала коды с датчика и звонка и при этом занимала бы один пин на ардуине.
3. Помогите написать функцию для включения и выключения сигнализации с пульта и можно ли использовать только один приемник
4. Можно ли использовать XY-MK-5V для приема сигналов с пульта вместо его «родного» приемника.
Спасибо.
к библиотеке под sim900 идет масса примеров, в том числе и для отправки смс
Вопрос в том как сделать функцию отправки смс при срабатывании датчиков. А примеры я все смотрел.
Попробуйте почитать что такое функции...
Ок, еще раз прочитаю, хотельсь бы конкретно по данному вопросу получить совет.
чтобы конкретно по данному вопросу получить конкретный ответ, вы должны поконкретней сформулировать вопрос, ибо
Вопрос в том как сделать функцию отправки смс при срабатывании датчиков. А примеры я все смотрел.
можно трактовать так
1. я не умею писать функции (любые)
2.я не умею писать функции, которые отправляют смс
3.я умею писать любые функции, но не умею их вызывать по срабатыванию датчика.
будем гадать или подождем экстрасенсов? есть тут один, мохнатый, с хрустальными шарами :)
в двух словах, вводите переменную значение которой изменяется при срабатывание датчиков, далее условие проверки значения данной переменной если 0 все ок если нет шлём смс. мона усложнить и отправлять еще разный текст при срабатывании разных датчиков.
дря примера сходите на амперку там один товарищь реализовал нечто подобное.
Гадать и вызывать с хрустальными шарами не надо ))))))))). Наврное п.3
MDV благодарю, буду "копать" по Вашему совету
Мой совет: нарисуйте на бумажке алгоритм и посмотрите на него внимательно, там будут ответы на все Ваши вопросы. Если не знаете что такое алгоритмы - почитайте сначала про них.
В общем на выходных поставил на "боевое дежурство" свою сигнализацию, как смог так сделал. СМСки от датчиков движения и звонка приходят примерно через 10 +- сек после срабатывания (сеть Мегафон).
Вот код.
если кто подскажет как что можно "оптимизировать" буду благодарен. ))))))
медленно но верно изучаю язык, вот потихоньку, по выходным читаю, внедряю, снова читаю. Может очередной велосипед, и гуру здесь не интересно, но немного конструктивной критики мне бы помогли.
ЧТО ЕСТЬ:
GSM/GPRS SIM900 (пины 4, 5, 7, 8)
приемник XY-MK-5V(пины 2,3 - из за 2 разных библиотек приходится занимать два пина - плохо)
приемник брелка 2262/2272 (пины А0, А1, А2, А3)
реле уличного фонаря (пин 9)
сирена (пин 10)
беспроводные датчики движения и звонок (11 метров через 2 стены)
Сигнализация ставится и снимается с брелка, после снятия можно включать выключать уличный фонарь.
ЧТО ПОКА НЕ ПОБЕДИЛ:
1. Как сделать автоматизированную проверку баланса, который при уменьшении например до 10 рублей слал смс что надо положить денюжку (может быть использовать millis() ).
2. Также при отправке например "tmp" присылал сообщение о температуре в доме.
4. Почему то RCSwith не заработал с библиотекой plcLib, не авилебл и все(((
5. Ну и из предыдущих: - .. Можно что-то изменить в библиотеке RCSwich чтобы занимая один пин на ардуине она принимала коды И с датчиков движения И со звонка (он сейчас работает на библиотеке RemoteSwich ( pin 3), хотя микруха в звонке TL 2262 и по описаниям должна ловиться RCSwith-ом ).
Код:
в плане конструктивной критики советую заменить общение через смс на передачу данных, а то разоритесь на смс-ках. При сдельном тарифе 3 руб/мег на мониторинг температуры в гараже/погребе у меня в месяц уходит рублей 10, ну максимум 20
На счет температуры полностью согласен но думаю датчики движения должны быть всетаки на смс. А у Вас система только мониторит температуру?
передача информации из гаража ко мне - через передачу данных, от меня в гараж - через смс, т.к не хватило настойчивости победить тупых менеджеров мегафона, объясняя, что такое "белый адрес".
система мониторит температуру с нескольких датчиков, включает/выключает подогреватель. ну и статус обогревателей тоже сообщает. раз в 3 часа передается полное состояние системы, по запросу - состояние в настоящее время
если хочется исходящие смс, то можно сделать отправку сообщения на эл. почту, а уже к почтовому ящику привязать дублирование через смс - тогда смс будет бесплатно
COM добрый день.
Какой бы библиотекой пользуетесь и если не жалко пришлите скетч. Колдую над чем то похожим шлю данные на народный монитор но хочу еще и дистанционное управление сделать.
здравствуйте уважаемые форумчане!!!
в общем сигнализация работала исправно и бесперерывно в течении 2 лет, сохраняя относительное спокойствие в душе)))). И вот решил я все это дело аккуратно упаковать в раздаточною коробку 10х14, нарисовал и вытраил новую плату под размер коробки, все собрал, подключаю свой шилд ..... и ничего, т.е. он ловит сеть (гудки при дозвоне), но ни sms, ни выдичи какой либо информации в монитор порта нет (когда я открываю монитор он "перезагружается" но ничего в монитор не идет). Пробовал как c библиотекой sim900, так и просто через softwareserial - результат нулевой, от шилда связи нет.
Конфигурация системы пержняя : miniPro (пины 4,5) + sim900 (пины 7,8, 9); питание через - 7805 (с конденсаторной обвязкой), блок питания трансформаторный 7,5V 1А
Может кто сталкивался с такой проблемой, хотябы поскажите что можно проверить на шилде?
Мне кажется, раздаточная коробка - не самое лучшее место для размещения электроники.
А если она еще должна и сеть ловить, то, боюсь, металлические стенки этого ей сделать не позволят.
извиняюсь - на раздаточная а распред.коробка, для электропроводки, и она пластиковая))))
Вы так больше не пугайте https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B0%D1%82%D0%BE...
уверен что в современных раздаточных коробках есть место микроконтроллеру)))), только вот шилд мой не работает
Ещё вопрос - подскажите код для подключения шилда к ардуине через hardware serial
Я так понимаю, Serial.begin(NNNN); , где NNNN - скорость обмена, которую поддерживает шилд.
подскажите пожалуста примеры кода для общения с шилдом через аппаратный uart
Привет.
Примеры будут зависит от применяемой библиотеки и того что ты хочешь получить от модема.
Можешь посмотреть в интернете (на амперке или jt5)
Приветствую.
Мне хотя бы получить ОК на АТ. Я соединяю пины 0,1 miniPro к пинам 0,1 GSM шилда. Перемычки на "hw"., пробовал залить вот такой пример но ответа нет:
на форуме нашел только как подключают к меге . Но это никак не применимо к минипро.
Подключать надо перекрёстно - RX-TX, TX-RX. Скорости работы порта должны быть одинаковые - в шилде и ардуине.
на шилде разьемы 0 - rx, 1- tx, на миниПро 0 - tx, 1- rx, подключаю вроде правильно, а как установить скорость шилда?
на шилде разьемы 0 - rx, 1- tx, на миниПро 0 - tx, 1- rx, подключаю вроде правильно, а как установить скорость шилда?
Через любую терминальную программу, подключив шилд через USB-TTL-конвертер. Или - со стороны ардуины подобрать скорость порта перебором.
ОК, спасабо понятно. Тогда подскажите пожалуйста код.
Привет Посмотри пример на jt5 там и код есть и схема соединения.
При сондинении не забудь gnd (-) модема и контроллера соединить, а то про это постоянно забывают.