Последние версии всех файлов выложены в топе темы (в первых четырех постах) !
GSM-сигнализация с передачей информации с помощью SMS и звонков выполнена на базе микроконтроллера (МК) ATMega8 и предназначена для построения распределенных систем охраны и систем автоматического ответного реагирования. Интеграция устройства в сотовую сеть осуществляется с помощью сотового телефона стандарта GSM или GSM-модуля, поддерживающего стандартные АТ-команды. Поддерживается большинство операторов сотовой связи в странах ближнего и дальнего зарубежья. Устройство функционирует совместно с телефоном или автономно. Отличительной особенностью этого устройства является возможность с помощью встроенного набора команд самостоятельно запрограммировать последовательность действий (указать программу) для каждого события и дистанционно ее изменять во время работы GSM-сигнализации. Кроме того, при адаптации схемы к условиям функционирования (поставленной задаче), имеется возможность задействовать и/или произвольно распределить 16 выводов МК между входами и выходами устройства, а также задействовать, указать необходимое количество и установить приоритет ключей TouchMemory. Под событием понимается нарушение зон охраны и входящие вызовы с управляющих телефонов. Зонами охраны являются: - изменение состояния входа на противоположное (по 2 зоны на каждый вход); - включение устройства во время охраны; - считывание ранее запрограммированного ключа TouchMemory; - отсутствие связи с телефоном (GSM-модулем); - отсутствие сигнала сотовой сети; - удержание в нажатом состоянии в течение 3-5 сек кн.«Programm». Каждому из этих событий может быть поставлена в соответствие своя программа, составленная из определенных команд, а также возможно выполнение программы из входящего sms с любого из управляющих телефонов. Основные характеристики устройства 1. Количество перераспределяемых выводов МК: в корпусе DIP28 16 в корпусе TQFP32 (MLF32) 18 2. Количество входов с измерением напряжения (температуры): в корпусе DIP28 до 6 в корпусе TQFP32 (MLF32) до 8 3. Поддержка ключей Touch Memory до 31 4. Количество управляющих телефонов до 3 5. Количество зон охраны до 41 6. Количество программ (событий) до 44 7. Оповещение о произошедших событиях с помощью sms и/или дозвона. 8. Управление функционированием устройства с помощью звонков и/или sms. 9. Запрос статуса устройства с получением отчета в виде формализованного sms. 10. Трансляция ответов на USSD-запросы (баланс, управление тарифным планом). 11. Автовключение и перезагрузка телефона. 12. Циклический заряд/разряд батареи телефона. 13. Индикация режимов работы устройства. 14. Возможность дистанционного изменения программ обработки событий. Подробнее об изготовлении устройства и составлении программ см. «Инструкцию по программированию» и «Рекомендации по изготовлению GSM-сигнализации». Необходимыми условиями работы вашего телефона (модема) в составе GSM-сигнализации являются поддержка им стандартного набора АТ-команд и возможность его подключения с помощью интерфейсного кабеля к компьютеру (наличие в разъеме или на плате телефона контактов Tx,Rx,GND). Подробнее о проверке совместимости телефона см. "Рекомендации по изготовлению" Для изготовления GSM-сигнализации не требуется профессиональных навыков, сложного оборудования или дорогостоящих деталей. Схема GSM-сигнализации довольна проста и с соблюдением определенных требований допускает корректировку под имеющуюся элементную базу. Себестоимость изготовления составляет не более 500р, не считая телефона и включая покупку всех элементов и расходных материалов. При этом промышленные аналоги продаются по 5-7 т.р. Для программирования GSM-сигнализации (составления алгоритма обработки событий) предназначено приложение CreateEeprom, с помощью которого составленные программы сохраняются в файл EEPROM (*.eep, *.bin) для последующего использования при прошивке МК любым программатором (например, "пять проводков").
В архиве находятся файл модели Proteus 7.6 (используется для отладки составленных программ), для работы которой надо подключить телефон (GSM-модуль) к компу. Модель имеет интуитивно понятный интерфейс, по основам работы в Протеусе часть информации можно найти в "Рекомендациях по изготовлению", и много в интернете.
Так как выводы МК могут быть произвольно распределены между входами-выходами и использовать обвязку применительно к имеющейся в наличии элементной базе, то «эталонную» схему рисовать не имеет смысла - каждый адаптирует ее «под себя». В модели же показана рекомендованная обвязка уникальных (непереназначаемых) выводов МК. Модель не сложно адаптировать под конкретную реализацию схемы.
Это сообщение отредактировал bri555 - Feb 28 2016, 02:33 PM
Группа: Cоучастник
Сообщений: 949
Пользователь №: 69411
Регистрация: 12-August 10
Место жительства: Воронеж
исходники микропрограммы (прошивки) для CodeVisionAVR, версия 2.1.9 (изменения по сравнению с версией 2.1.7 указаны в этом сообщении)
В архиве "Инструкция по программированию устройства" и исходники для CodeVisionAVR.
Благодарности принимаются на 410011529168420 (Яндекс.Деньги). Без благодарности автору устройство может работать нестабильно
Так как проект развивался, то при просмотре форума сопоставляйте дату (версию) выложенной прошивки и дату постов.
Прошу сообщать о результатах и выкладывать свои печатки с пояснениями. Также приветствуются предложения по оптимизации (сокращению) кода.
Если вдруг! что-то не работает, то в пояснениях отразить: что именно не работает (или работает не в соответствие с инструкцией), версию прошивки, модель телефона/GSM-модуля, ваши изменения в оригинале прошивки. К сообщению желательно! прикрепить лог из терминалов модели и файл-образ CreateEEPROM (реальные номера телефонов заменить на вымышленные)
Это сообщение отредактировал bri555 - Feb 17 2016, 07:19 PM
Группа: Cоучастник
Сообщений: 949
Пользователь №: 69411
Регистрация: 12-August 10
Место жительства: Воронеж
программа CreateEeprom v.2.1.8
Архив с программой CreateEeprom, предназначенной для сохранения алгоритмов обработки событий в файл для дальнейшего использования при программировании (прошивке) микроконтроллера.
Это сообщение отредактировал bri555 - Aug 18 2015, 09:19 PM
Группа: Cоучастник
Сообщений: 949
Пользователь №: 69411
Регистрация: 12-August 10
Место жительства: Воронеж
Рекомендации по изготовлению GSM-сигнализации
с примером схемы(печатки) и с примерами программ обработки событий (схема подключения в авто от старой версии, в описании примера составленных программ есть некоторые несущественные несоответствия с самими программами)
сейчас на Atmega8 не получится реализовать общение с ds18b20 - нет места во flash.
логику предлагаю оставить ту же, что и для входов с измерением напряжения: в поле "номер" соответствующей ячейки указывать порог срабатывания, а первый символ (- или +) в поле "имя" этой ячейки указывает при снижении или при превышении порога выполниться программа для этого входа. Чтобы отличать от контроля напряжения и в запросе статуса отправлять текущуу температуру, порог срабатывания надо будет записывать через символ # вместо *, например 56#0. А символ * указывать для отрицательный температур: *20#0 (-20C) Таким образом, измеряя температуру объекта двумя входами (один на превышение, другой на снижение) можно поддерживать температуру в заданном диапазоне, например дистанционно управлять работой кондиционера или системы отопления на даче.
так что займемся масштабированием. надо только подобрать распрастраненные элементы и определиться с диапазоном измереяемых температур. Еще желательно увидеть схему.
1. Для следующего проекта на мега32 лучше все же с ds18b20 делать, т.к. на один провод передачи данных можно повесить несколько датчиков хоть в каждую комнату(до 9 вроде бы, уточню!). Даже если в мега32 места не хватит есть рабочий код для внешней памяти рабочий 24lc64(для нее нужно 2 порта SLA и SDA), выходов на ней хоть завались 40)))) 2. С кодом для датчиков ds18b20 могу помочь, и так же с кодом для терморезистора и маштабирование, просимулировать отдельные куски кода в Протусе, на макетке, потом подогнать все это под наминалы комплектующих которые есть в продаже.
Группа: Cоучастник
Сообщений: 949
Пользователь №: 69411
Регистрация: 12-August 10
Место жительства: Воронеж
QUOTE (neid_nnov @ Jul 15 2011, 06:59 PM)
1. Для следующего проекта на мега32 лучше все же с ds18b20 делать, т.к. на один провод передачи данных можно повесить несколько датчиков хоть в каждую комнату(до 9 вроде бы, уточню!). Даже если в мега32 места не хватит есть рабочий код для внешней памяти рабочий 24lc64(для нее нужно 2 порта SLA и SDA), выходов на ней хоть завались 40)))) 2. С кодом для датчиков ds18b20 могу помочь, и так же с кодом для терморезистора и маштабирование, просимулировать отдельные куски кода в Протусе, на макетке, потом подогнать все это под наминалы комплектующих которые есть в продаже.
вот развел плату под универсальный вариант: входы: 1,2 контроль напряжения 3-8 датчики выходы: 1,2,5 типа «открытый коллектор» 3,4 релейные
Подключение телефона со штатной батареей или 3 АКБ типа ААА. Автовключение програмным кодом. Заряд резервного АКБ через LM317. Схемы зарядки АКБ резевного и сотового телефона проверял лично в работе.
Место оставил много под трансформатор, лично я использую ТТП-30 18В 1.5А Строго не судите, я не профи в разводке плат.
Это сообщение отредактировал neid_nnov - Jul 20 2011, 12:22 PM
Все качают и что ни у кого ни каких нареканий не возникло? и сказать не чего? bri555Протестил на С55 друга тоже, нареканий нет! Все отлично пашет!
Кто какие датчики использовал которые имеются в продаже? по мимо герконовых. Датчики движения, пажарные датчики или датчики дыма. Может какие другие собственного изготовления.
Это сообщение отредактировал neid_nnov - Jul 21 2011, 10:30 AM
Группа: Cоучастник
Сообщений: 949
Пользователь №: 69411
Регистрация: 12-August 10
Место жительства: Воронеж
модель для Proteus можно использовать для проверки составленных программ и возможности работы вашего телефона с устройством. для этого надо подсоединить тел. к компу и указать в настройках компонента модели compin номер использованного для подключения сом-порта. Выбрать можно только com1-com4, так что в диспетчере устройств надо проверить какой виртуальный порт эмулирует драйвер интерфейсного кабеля телефона и выставить подходящий.
в модели не получилось реализовать проверку автовключения, даже с подыгрышом, так как во время этой процедуры МК несколько раз изменяет скорость передачи, а как это сделать в компоненте compin в процессе выполнения модели я не нашел. Так что перед запуском модели тел. должен быть включен, а файлы прошивки располагаться в одной папке с файлом модели.
Это сообщение отредактировал bri555 - Mar 1 2012, 12:04 AM
модель проекта Universal в Proteus, чуть подправил вариант модели bri555 с модели AvtoVariant выше ранее выкладывал. Недостаток, ключи вроде подключенны правильно, но как только начинаю работать с програмирование ключей, Протус дико начинает тормозить, действие с ключом растягивается на 1 минуту, а то и больше, но все же работает. В остальном все работает, проверка ограничилась моими потребностями в устройстве и фантазией поизвращаться наl сей схемой в Протусе. Подключал свой телефоны А60 и С60 через дата кабель на МАХ232.
Это сообщение отредактировал neid_nnov - Jul 26 2011, 09:38 PM
Группа: Cоучастник
Сообщений: 949
Пользователь №: 69411
Регистрация: 12-August 10
Место жительства: Воронеж
QUOTE (neid_nnov @ Jul 26 2011, 07:09 PM)
Недостаток, ключи вроде подключенны правильно, но как только начинаю работать с програмирование ключей, Протус дико начинает тормозить, действие с ключом растягивается на 1 минуту, а то и больше, но все же работает.
это потому что в окне свойств ATMega8 в выпадающем списке "Расширенные свойства" надо выбрать пункт "......of Data EEPROM" и в строке справа указать Universal.eep
Развел плату модульного варианта, по мне проще поменять модуль, чем переделывать всю плату. Модуль на входы не выкладываю, можно развести под свои нужды. Не собирал, если есть ошибки, прошу поправить.
Сделал вход 1 с измеренеие напряжения, при напряжении в 12.98В приходит смс с 13.09В, расхождения в показаниях 0.11В, что довольно точно)) Применил СМД для этого.
Группа: Cоучастник
Сообщений: 949
Пользователь №: 69411
Регистрация: 12-August 10
Место жительства: Воронеж
QUOTE (neid_nnov @ Aug 1 2011, 11:34 AM)
Сделал вход 1 с измеренеие напряжения, при напряжении в 12.98В приходит смс с 13.09В, расхождения в показаниях 0.11В, что довольно точно)) Применил СМД для этого.
Так и есть - погрешность 0.1В в большую сторону вызвана двойным преобразованием значения напряжения в уровни квантования ADC и обратно.
Для тех rnj выбрал вариант подключения телефона со штатной АКБ, альтернатива три AAA NiMH последовательно, я использовал три по 800мА. Фото наглядный пример. Разобрать штатный АКБ и окуратно отсоединить контакты акб от платы, плату к новым аккамуляторам. С аккамуляторами из коробки сигнализация говорит о 20% заряда. Теперь телефон не будет бояться морозов, автовключение программным кодом работает. о времени работы телефона без подзарядки в режиме НА ОХРАНЕ, отпишусь чуть позже.
Это сообщение отредактировал neid_nnov - Aug 4 2011, 11:41 PM
о времени работы телефона без подзарядки в режиме НА ОХРАНЕ, отпишусь чуть позже.
С добрым утром всех! Вообщем экперимент по внедрению АКБ типа ААА NiMH, прошел удачно. Телефон работает отлично, заряжается и все остальное. Есть существенное НО... скорее всего в силу циклического заряда который упрявляется программно. АКБ заряжаются очень быстро по сравнению с аккамулятором штатным сотового. Под словом "заряжаются", я имею в виду они быстро набирают напряжения на своих клеммах условно сигнализирующее о том, что АКБ заряжены. Но на самом деле АКБ еще не заряжены до их реальной 100% зарядки. Телефон на таких "заряженных" АКБ(недозаряженных) в режиме НА ОХРАНЕ работает ну 7 часов максимум и опять зарядка. Проверю еще сколько будет работать от зарядки до зарядки если штаным зарядником их зарядить тоже в режиме НА ОХРАНЕ! Теперь поговорим о штатном АКБ телефона. Он тоже не дозаряжается циклическим зарядом до полгоного реального 100% заряда. От зарядки до зарядки в режиме НА ОХРАНЕ он живет уже сутки, но все же.... Если его зарядить обычным штатным зарядником, у меня 2 суток живет телефон(ставил экпиримент). Напрашивает вывод что нужно увеличить время зарядки после определения контролером 100% заряда АКБ телефона(штаный или заменен на 3хААА).
Это сообщение отредактировал neid_nnov - Aug 6 2011, 09:30 AM
Группа: Cоучастник
Сообщений: 949
Пользователь №: 69411
Регистрация: 12-August 10
Место жительства: Воронеж
все дело в том, что МК определяет степень заряженности АКБ по от ответу телефона, причем вопрос отсылается, как минимум чере 1 сек с момента выключения зарядки. после ответа что 100% заряда, МК еще трижды включает зарядку по 4 мин. Можно сделать, хоть 255 раз дополнительных включений, но щелочные АКБ боятся перезаряда! естественно из-за неполного заряда и эффекта памяти, со временем емкость упадет, но всегда можно провести тренировку АКБ.
Это сообщение отредактировал bri555 - Mar 1 2012, 12:18 AM
Группа: Cоучастник
Сообщений: 949
Пользователь №: 69411
Регистрация: 12-August 10
Место жительства: Воронеж
QUOTE (vladko @ Aug 9 2011, 08:56 AM)
QUOTE
Телефон на таких "заряженных" АКБ(недозаряженных) в режиме НА ОХРАНЕ работает ну 7 часов максимум и опять зарядка.
тоже заметил, что с контроллером садится быстро аккумулятор телефона, телефон С55(аккумулятор свой) без подключенного контроллера работает 4-5 дней.
быстрый разряд батареи телефона вызван интенсивным обменом данными с МК. В свое время много эксперементировал и пришел к выводу, что лучшим является питание тела от 7805 через диод и автовключение - "замыканием" красной кнопки. Такой способ подходит практически для всех телефонов, при этом схема проще, используется меньше деталей и меньше потребляемая мощность всего устройства. Подключение с батареей в телефоне имеет существенный плюс - батарея обеспечивает стабильность питания. Но штатная замерзает на морозе, а спайка из 3х NiMH обладает эффектом памяти, да и энергопотребление возрастает. Этот вариант целесообразен когда используется телефон Siemens и к контактам красной кнопки сложно припаятся (например, С55) и если МК также будет запитываться от батареи телефона - ATMega8 в smd корпусе с питанием 3.3В. Но такую печатку так никто и не нарисовал, поэтому лучше использовать 1 способ, главное после диода поставить побольше электролитов, можно низковольтных со старых комп.плат, например штук 5 по 1500 мкФ 6.3В, хотя на выходе кренок напряжение и так стабильно.
Это сообщение отредактировал bri555 - Aug 27 2011, 10:40 AM
Но такую печатку так никто и не нарисовал, поэтому лучше использовать 1 способ, главное после диода поставить побольше электролитов, можно низковольтных со старых комп.плат, например штук 5 по 1500 мкФ 6.3В, хотя на выходе кренок напряжение и так стабильно.
С моим телефоном ситуация иная, видимо у него потребление больше, поэтому когда я его подключал через КРЕНку с 5 кондерами, все равно он вел себя не устойчиво, при звонке мог отключиться, это с А60. Появился С60 и тоже самое и с ним. У обоих телефонов отключена подсветка и звуки. А раз отрубается при звонке от недостатка питания, значит может здохнуть, это до случая.
Это сообщение отредактировал neid_nnov - Aug 28 2011, 07:50 AM
Поэтому если статус-LED часто замигал, значит тел не ответил на запрос МК. Надо понаблюдать когда это происходит.
Хмм... bri555 подобная ситуация с двумя телефонами. где смотреть по терминалу и на что? Попробывал в Протусе с живыми телефонами, нет такого бага, либо не знаю на что смотреть(смотрел надписи ERROR).
Это сообщение отредактировал neid_nnov - Aug 29 2011, 09:33 PM
Группа: Cоучастник
Сообщений: 949
Пользователь №: 69411
Регистрация: 12-August 10
Место жительства: Воронеж
QUOTE (neid_nnov @ Aug 29 2011, 10:51 PM)
Хмм... bri555 подобная ситуация с двумя телефонами. где смотреть по терминалу и на что? Попробывал в Протусе с живыми телефонами, нет такого бага, либо не знаю на что смотреть(смотрел надписи ERROR).
надо смотреть в модели для Proteus, в окнах вирт.терминалов: чтобы ответы тел-на шли с небольшим (0.5 сек) запаздыванием от запросов МК. для повышения быстродействия модели желательно удалить все остальные элементы от выводов МК, кроме выводов Tx, Rx, Reset и статус-Led. особо обратить внимание на команду AT+CLCC - должен быть ответ ОК (когда нет соединений) или +CLCC:............
Это сообщение отредактировал bri555 - Aug 30 2011, 09:54 AM
Вылезла новая проблема! вообщем, со старым МК ключи считываются и заносятся в память нормально. с новым только прошитым, ноль. З мк прошил дамул глюк или еще чего, вообще нет реакции, все остально отлично работает. Проблема вылезла случайно, решил вам протестить прошивку. может я не правильно шью контроллеры?
решил проблему! поменяв сопротивление подтяжки с 10кОм на 4,7кОм, и убрав стабилизатор на 3.3В!
Это сообщение отредактировал neid_nnov - Sep 1 2011, 02:54 PM