GSM сигнализация-метеостанция, MQTT на narodmon.ru (без Arduino)

Domosed
Offline
Зарегистрирован: 15.07.2019

Великий русский поэт вопрошал - А вы ноктюрн сыграть могли бы на флейте водосточных труб? Почему бы на свой манер не сыграть ноктюрн на стезе полезных наколенных поделок? Уже пару лет у меня в загашнике лежала пара чайна GSM/GPRS модулей AIR208 как некая будущая альтернатива SIM800. Будущее в очередной раз инкрементировалось, и хотя инкремент не экскремент, но настоящее светлее не стало. Поэтому попытался получить хоть малую толику удовлетворения, собрав очередную сигнализацию на древних GSM модулях основа которых SOC RDA8955L. Единственная проблема - Ардуина здесь ни коим боком не нужна

Domosed
Offline
Зарегистрирован: 15.07.2019

Domosed пишет:
Единственная проблема - Ардуина здесь ни коим боком не нужна
Потому как 4 Мб флэш и озу, LuAT OS и проч.
Если есть интерес, продолжу..
PS. Пардон, в анонс весь анонс не вместился, возможно из-за смайлика..

b707
Offline
Зарегистрирован: 26.05.2017

Domosed] </p> <p>[quote=Domosed пишет:

Если есть интерес, продолжу..
.

"Gsm-сигнализация" - для меня понятие из того же ряда , как "катушка Мишина"(если вы понимаете о чем я:) или как вечный двигатель - то есть как хобби, о увлечении чем не стоит рассказывать даже друзьям - засмеют...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:
о увлечении чем не стоит рассказывать даже друзьям - засмеют...

хреновые у тебя друзья, скорее всего - приятели, (с русского на русский при Я Тело, чьё Тело при чьём Я оставим за скобками)

Domosed
Offline
Зарегистрирован: 15.07.2019

Тема сигнализаций, метеостанций и тп. стара как мир и неизбывно вечно будет востребована среднестатистическим обывателем, в силу владения им некоторой доли движимого недвижимого имущества и тщедущности тела. А силы ЗЛА, как известно не спят..(((
Посему представлю очередную надежду страждущих. Собранную на основе GSM/GPRS платки на модуле AIR208S. С датчиками  освещенности, PIR – движения, температуры, влажности, давления, микрофоном. С возможностью оповещения и управления по СМС и DTMF c телефона, записи звука и отправки данных по MQTT протоколу на .. куда душе угодно. Жаль, но возможности прикрутить камеру я не вижу (((

 

GSM модуль в нынешней инкарнации отягощен LUAT OS прошивкой и не нуждается в свистопляске с AT командами посредством дополнительного микроконтроллера, что по нынешним скд. временам и с учетом легкости написания кода на C подобном Lua для меня большой плюс. Тут попроще - Lua за 60 минут
Начну с железячной части, GSM модуля, на роль которого подходят AIR202, AIR208, WIS800C и возможно A9/A9G. Некоторые из них, явно близнецы-братья. 

Достоверно известно они в своей основе имеют SOC RDA8955

Имеются модификации модулей с буквой F, с 8 мб. флэш памяти и ОЗУ, в отличии от обычных с 4 мб.

A9/A9G  тоже на SOC RDA8955 но дело с ними не имел, они возможно более интересны из-за большего количества разведенных выводов.

PS: Некоторые вкусняшки: файловая система до 1 мб, MP3, чайна TTS, LCD, OLED, BMP, JPG, PNG и тд.

 

Domosed
Offline
Зарегистрирован: 15.07.2019

Касаясь прошивки и использования этих модулей, надо отметить, что на маленьких платках не разведены большинство интересующих нас контактов и ,в частности, контакты HOST UART, необходимые для прошивки и вывода отладочной информации. С ними придется поработать паяльником с игольчатым жалом, или использовать платы с полной разводкой. См. выше.
Прошивка и отладка производится по ниже приведенной схеме, с использованием USB-UART свистка с уровнями 3.3V (для плат с разводкой тоже). Тут надо отметить что Vdd модуля 2.8V и для согласования необходимы резисторы хотя бы 1 ком. во избежании выгорания портов.

Для прошивки, загрузки и отладки пользовательских программных модулей и файлов необходима программа LuaTool.
Распаковать и использовать (как, расскажу далее.), ограничив файрволом выход в интернет. VirusTotalу это изделие поднебесной не очень нравится, хотя касперский, дрвеб и нод32 молчат.. 

PS Публикация выше и впоследствии нижеизложенной информации не преследует рекламных целей и предназначена для личного использования интересующимися..

 

Domosed
Offline
Зарегистрирован: 15.07.2019

-- Отбивочка. 
   Касаясь программирования на Lua, не лишним будет иметь под рукой html эмулятор Lua.
Качаем, распаковываем, кликаем на index.html. В веб браузере в левом окошке редактора пишем код, нажимаем внизу кнопку "выполнить". В правом окне наблюдаем результат.

Следует иметь ввиду что эмулятор работает с Lua 5.3, а выше рассмотренные модули с Lua 5.1. Имеются некоторые различия в версиях, смотрим Иерузалимски.

 

Domosed
Offline
Зарегистрирован: 15.07.2019

--- Notepad++
Удобен для написания Lua скриптов, поддерживает подсветку синтаксиса. Рекомендую.

--- Luatools
    Luatools программа необходимая для заливки прошивки ядра модуля, добавочно прошивки пользователя либо программных модулей (скриптов) и необходимых файлов. Изначально модули поставляются с AT прошивкой, требующей дополнительного микроконтроллера для управления им, что нецелесообразно ввиду мощной программно аппаратной составляющей самого модуля и совокупной стоимости этого решения, хотя имеет право на жизнь в некоторых ситуациях. 
    Итак подключаем модуль через USB-UART в соответствии с вышеприведённой схемой. К модулю должно быть подведено питание, с возможной пиковой отдачей по току до 1А. Я использую Li-Ion аккумулятор. Контакт PowerKey должен быть притянут к Gnd через сопротивление ~ 1kom для запуска после подачи питания.
    Первоначально питание отключаем.
    Запускаем Luatools, выбираем Com порт, далее Open. Включаем питание модуля. В отладочном окне побегут строки..

 

Действия по загрузке прошивки или скриптов и файлов, должны происходить именно после включения питания и появления бегущих строк в окне отладки. Нужно успевать ;) 5..10 сек.

--- Прошивки Luat OS
Находятся в папке \LuaTools\resource\8955_lua_lod\core_V0040
 

Общий объем флэш-памяти модуля Air чипа RDA8955 составляет 4 МБ
В настоящее время существует 11 видов базового программного обеспечения:
Luat_VXXXX_8955.lod: Не поддерживает функции ЖК-дисплея интерфейсов SSL, TTS и SPI
Luat_VXXXX_8955_SSL.lod: Поддержка функции SSL
Luat_VXXXX_8955_SSL_TTS.lod: Поддерживает функции SSL и TTS, но не поддерживает функции MP3, MIDI и записи
Luat_VXXXX_8955_SSL_UI.lod: функция ЖК-дисплея, поддерживающая интерфейс SSL и SPI
Luat_VXXXX_8955_TTS_UI.lod: Поддержка функций ЖК-дисплея интерфейсов TTS и SPI
Luat_VXXXX_8955_TTS1.lod: Поддержка функции TTS
Luat_VXXXX_8955_TTS2.lod: Поддерживает функцию TTS, не поддерживает MP3, MIDI, запись, json
Luat_VXXXX_8955_UI.lod: функция ЖК-дисплея, поддерживающая интерфейс SPI
Luat_VXXXX_8955_SSL_FLOAT.lod: поддержка функции SSL, число с плавающей запятой
Luat_VXXXX_8955_SSL_UI_FLOAT.lod: поддержка функции SSL, функция ЖК-дисплея с интерфейсом SPI, число с плавающей запятой
Luat_VXXXX_8955F.lod: 8-метровая флэш-версия (Air202F), поддерживает все функции, упомянутые выше (кроме чисел с плавающей запятой)
Luat_VXXXX_8955F_FLOAT.lod: 8-метровая версия flash (Air202F), поддерживает все функции, упомянутые выше

Luat_VXXXX_8955.lod:
Скрипты и ресурсы Lua (файлы, написанные с помощью инструментов программирования, таких как файлы скриптов lua, аудиофайлы mp3) доступны в 768 КБ
Файловая система (например, файлы параметров, созданные во время работы скрипта, файлы записи, файлы удаленного обновления и т.д.) доступна в 860 КБ

Luat_VXXXX_8955_SSL.lod:
Скрипты и ресурсы LuaDB (файлы, написанные с помощью инструментов программирования, таких как файлы сценариев lua, аудиофайлы mp3) доступны в 768 КБ
Файловая система (например, файлы параметров, созданные во время работы скрипта, файлы записи, файлы удаленного обновления и т.д.) доступна в 796 КБ

Luat_VXXXX_8955_SSL_TTS.lod:
Скрипты и ресурсы LuaDB (файлы, написанные с помощью инструментов программирования, таких как файлы сценариев lua, аудиофайлы mp3) доступны в 324 КБ
Файловая система (например, файлы параметров, созданные во время работы скрипта, файлы записи, файлы удаленного обновления и т.д.) доступна в 344 КБ

Luat_VXXXX_8955_SSL_UI.lod:
Скрипты и ресурсы LuaDB (файлы, написанные с помощью инструментов программирования, таких как файлы сценариев lua, аудиофайлы mp3 и файлы изображений) доступны в 704 КБ
Файловая система (например, файлы параметров, созданные во время работы скрипта, файлы записи, файлы удаленного обновления и т.д.) доступна в 540 КБ

Luat_VXXXX_8955_TTS_UI.lod:
Скрипты и ресурсы LuaDB (файлы, написанные с помощью инструментов программирования, таких как файлы сценариев lua, аудиофайлы mp3 и файлы изображений) доступны в 152 КБ
Файловая система (например, файлы параметров, созданные во время работы скрипта, файлы записи, файлы удаленного обновления и т.д.) Доступна в 132 КБ

Luat_VXXXX_8955_TTS1.lod:
Скрипты и ресурсы LuaDB (файлы, написанные с помощью инструментов программирования, таких как файлы сценариев lua, аудиофайлы mp3) доступны в 216 КБ
Файловая система (например, файлы параметров, созданные во время работы скрипта, файлы записи, файлы удаленного обновления и т.д.) доступна в 260 КБ

Luat_VXXXX_8955_UI.lod:
Скрипты и ресурсы LuaDB (файлы, написанные с помощью инструментов программирования, таких как файлы сценариев lua, аудиофайлы mp3 и файлы изображений) доступны в 512 КБ
Файловая система (например, файлы параметров, созданные во время работы скрипта, файлы записи, файлы удаленного обновления и т.д.) доступна в 796 КБ

Фактическое пространство файловой системы может быть получено через rtos.get_fs_free_size() печатать

Независимо от того, что это за базовое программное обеспечение, что касается использования пространства файловой системы, обратите внимание на следующие моменты:
Если функция сжатия автоматически проверяется при программировании скриптов и ресурсов с помощью инструментов программирования (по умолчанию не проверяется, только когда размер скрипта и ресурса превышает доступное пространство скриптов и ресурсов Lua, она будет автоматически проверена), то после загрузки все файлы скриптов и ресурсов будут автоматически распакованы в файловая система.
Если вы используете функцию удаленного обновления, вы должны зарезервировать достаточно места для файла удаленного обновления, по крайней мере, пространство файловой системы размера файла корзины обновления + “сумма исходных размеров всех скриптов и ресурсов”

Общий объем оперативной памяти модуля 8955 составляет 4 МБ
Среди них рабочая память Lua составляет 1024 КБ, а некоторые модули lua, на которые ссылается платформа Luat, 
должны занимать определенный объем рабочей памяти, который можно использовать через sys.Код в функции запуска в lua 
--print("mem:",base.collectgarbage("count")) Печать занятой памяти в режиме реального времени

Из-за ограниченного пространства флэш-памяти:
Последняя версия TTS_UI и TTS2 - 0028, и в будущем новые версии TTS_UI и TTS2 выпущены не будут; если вы используете эти две функции одновременно, приобретите модуль Air202F или Air268F и используйте Luat_VXXXX_8955F.Лод
Последняя версия TTS1 - 0033, и в будущем новая версия TTS1 выпущена не будет; если вы используете эти две функции одновременно, приобретите модуль Air202F или Air268F и используйте Luat_VXXXX_8955F.Лод

Надо помнить, что прошивки без FLOAT постфикса поддерживают только целочисленный 32 битный тип number.
Прошивки с чайна TTS интереса не представляют, только если для экзотики, английские слова в них произносятся по буквам, русского естественно нет, а эмуляция его китайскими звуками - это что-то..