Например TDA7294

РадиоКот > Схемы > Цифровые устройства > Бытовая техника

Очень простая GSM метеостанция. Реинкарнация.

Автор: vitalyadm
Опубликовано 11.02.2016.
Создано при помощи КотоРед.

Приветствую вас уважаемые друзья. Не прошло и года, как я вновь появился и решил опубликовать новую статью. Но новая она не на 100%, по сути, это продолжение, верней перерождение предыдущего устройства, а именно «Очень простая домашняя USB метеостанция».
Прежде чем переходить к подробному описанию всех технических аспектов этого проекта, я попробую объяснить, что же это за штуковина, зачем она нужна и т.д. в формате вопрос – ответ. И так поехали.
Что это такое?
Это автономная GSM метеостанция, которая ведёт наблюдение за 4- мя показателями окружающей среды 24 часа в сутки, 365 дней в году и один раз в час отправляет эти данные на сервер.
Почему автономная?
Эта метеостанция построена на базе GSM модуля и канал для передачи данных у неё «свой» т.е. GPRS, поэтому нет необходимости «привязывать» её к Wi-Fi, USB, LAN и т.д.. При всём при этом, абсолютно не важно где станция будет находиться, хоть в заполярье, главное чтоб сотовая связь была.
Зачем она нужна?
Здесь всё достаточно просто. Этой зимой, когда начались морозы, ко мне обратился мой друг с одной, весьма распространённой проблемой. Наверняка, многие из вас знают, что такое загородный дом (дача) с водяным отоплением. Это головная боль каждую зиму, потому, что есть большая вероятность того, что котёл, висящий на стене, по какой- то причине может отказать и тогда неминуемо может заморозиться, как система труб, так и сам котёл (сам лично попадал в такую неприятность). Но тогда возникает вопрос, а как мониторить температуру, если деревня расположена очень далеко и о технологиях аля интернет в этой деревне, даже, слухи не ходили? А вот тут как раз и спасает GSM, благо сотовая связь есть теперь практически везде. Теперь собственно ответ «зачем» - для удалённого и непрерывного мониторинга показателей, таких как влажность, температура внешняя, температура внутренняя и само собой давление. А, для конкретной цели или интереса ради вы будите использовать метеостанцию - решать вам.
GSM это дорого, может лучше голубиной почтой?
Нет не дорого, лично у меня за месяц тестов GPRS «съел» около 35 рублей. А почему так мало - расскажу чуть позже. Много 35 рублей или мало, смотрите, конечно сами, но для меня лично 35 рублей в месяц- сумма весьма смешная.
А как же баланс SIM карты, деньги кончились и всё – «тю- тю»?
Имейте терпение, всё продумано, не «тю- тю». Читайте всё полностью, будет ответ и по балансу, верней его контролю.
И так, философская часть закончилась, приступим к практике.

Экономическая часть.

Прежде чем приводить схему и говорить о том, о сём. Посчитаю денежку. Итоговая стоимость проекта, без МК (ибо валяются без дела, что их покупать) у меня получилась ~860р при курсе в 70р за рубь. Вместе с GSM модулем т.е. вся коробочка вышла в 860р. Что по чём и почему вполне приемлемо? Начну с основного.
GSM модуль. Изначально у меня глаз упал на SIM800L. Как оказалось - не зря. Потрясающий модуль, всё умеет, не глючит, продаётся уже в виде шилда, а главное его цена, «аж целых» 400р ( при чём на момент написания статьи, я специально открыл и посмотрел ). Где взять? Да всё там же, на всем известном китайском аукционе «у алика». Сразу подскажу, когда обратитесь к «алику» в строке поиска нужно написать SIM800L именно L ( если без L. То выйдет не то ) и вот всё что красного вида- да это ОНО!!! Для опознания приведу фото своего модуля.

Продаётся этот «зверёк» уже с антенкой (только не впаянной). Хотя можно использовать и внешнюю, разъём как видите - имеется.
Едем дальше. Датчик давления. Здесь всё по старому, всё тот же знакомый BMP180, где взять? Да всё там же))) Стоит 180р. На нём останавливаться не буду, его я описывал в выше упомянутой статье. Ограничусь одним фото.

DHT11. Это датчик влажности + температуры. Где взять? Не, даже не буду, уже смешно)))) Сколько стоит? Мало - 80р. При чём, брать стоит уже на платке, так удобней.

Остался внешний датчик температуры DS18B20 и мелочь, там у меня всё вместе около 200р получилось. Итого: 400 + 180 + 80 + 200 = 860. Предлагаю не мучиться и округлить до 900, так будет справедливей. В общем, итог: 900р. Всё, с экономикой закончили, перейдём к самому интересному.

Техническая часть.

 

Как видно по схеме, устройство очень простое в повторении. Но на некоторых моментах я всё же остановлюсь т.к. не то, что они сложны, они ВАЖНЫ! Кстати, почти полтора месяца, пока я полностью делал проект, станция выглядела примерно так:

Первое на что нужно обратить внимание, это на цепь питания GSM модуля:

Почему такая цепь – поясню. Дело в том, что GSM модуль SIM800L штука очень интересная, он полностью совместим по UART с 5 вольтовым МК, т.е. развязки на TX и RX делать никакой не нужно, но при этом он питается от 4- х вольт, как- то так, при 5- ти он горит!!!! Поэтому в цепи ПИТАНИЯ GSM модуля никаких 5 вольт, ВАЖНО!!!!
Дальше. Кто- то, может, уже обратил внимание на реле в цепи питания и задался, вполне резонным, вопросом.

Дело всё в том, что это далеко не первый GSM модуль от SimCom с которым я работаю и входе долгих и мучительных экспериментов выяснилось- он может повиснуть. Случается это крайне редко, но теоретически (практически) может, по крайней мере SIM900 у меня висли, бывало. При чём, виснет он наглухо, я бы сказал, намертво. Он перестаёт реагировать на UART и по сути молчит до тех пор, пока его жестко не передёрнуть по питанию. Скажу честно, SIM800L ещё пока ни разу не вис. Страшного в этом ничего, но было бы обидно, если устройство, заявленное как полное автономное вдруг берёт и зависает. Работает это по следующему алгоритму. После подачи питания на МК, МК включает реле через полевой транзистор, но при этом постоянно отслеживает UART, если от модуля в течении 30 секунд не будет получено информации, проще выражаясь, если GSM модуль «молчит» в течении 30 секунд- значит он висит. Далее, МК отключает реле и начинает всё заново. Т.е. включение- первичная инициализация – переход в рабочий режим. Можно сказать- это тоже самое, как если бы в случае повисания, вы передёрнули бы питание всего девайса.
Печатная плата, как вы уже догадались, тоже весьма проста, делал я её фоторезистивным способом, о «авторских» фишках я писал в предыдущей статье, просто покажу, что получилось и сам чертёж

Не забудьте впаять перемычку в виде кусочка провода или откусанной лапки от, например, резюка под панелькой МК!!!!

 

На фото ниже какой светодиод, куда впаивать исходя из цвета светодиода

 

ПП я делал под корпус G521B фирмы GAINTA. Забегая чуть вперёд, так выглядит устройство в сборе (без пропилов под внешние датчики). Разумеется, вы можете передать ПП под себя, в зависимости от того, какой корпус есть в наличии.

Фото после монтажа ПП и окончательного «причёсывания».

Теперь остановимся на нескольких, отладочных моментах. После публикации статьи про USB метеостанцию, я начал получать очень много писем на e-mail из которых стало ясно - не всегда у всех получается всё гладко. Именно поэтому, было написано 2 прошивки, одна для первичного теста, вторая рабочая, основная.
И так. Прежде чем ставить GSM модуль на своё место и включать устройство в розетку- НЕОБХОДИМО, ВНИМАНИЕ, КРАЙНЕ ЕОБХОДИМО выполнить следующие действия:
Фюзы при прошивке МК:

1. Залить в МК прошивку из папки «тестовая прошивка станции»
2. Установить датчик давления BMP180. ВНИМАНИЕ!!! Без установленного датчика давления МК стартовать не будет!!!!!
3. Подключить внешние датчики (DS18B20 и DHT11)
4. Подсоединить USB UART модуль (если есть)

 

После этого можно подавать питание. Далее запускаем любую терминалку, например, Putty.
Первое, что делаем смотрим- произойти должно следующее:
Синий и зелёный светодиод должны мигать одновременно с частотой 1 раз в секунду, реле должно замкнуться, красный светодиод постоянно гореть. Далее необходимо замерить напряжение по питанию GSM модуля, должно быть как на картинке ниже

Если визуально всё нормально, то переходим в терминал. Каждые 3 секунды в терминале должны идти блоки следующего вида:
TEMP_EXT=+1.6
TEMP_INT=26
PRES=745.3
HUM=29
-------------------------------------
TEMP_EXT=+1.6
TEMP_INT=26
PRES=745.3
HUM=29
-------------------------------------
TEMP_EXT=+1.6
TEMP_INT=26
PRES=745.3
HUM=29
.
.
.
Где TEMP_EXT- внешняя температура, TEMP_INT- внутренняя температура, PRES- атмосферное давление, HUM- влажность воздуха.
Если всё так, то отлично. Далее надо написать в терминал любую чепуху, МК должен вернуть эту чепуху с припиской «TEST», отправка чепухи в МК по ENTER’у.
Т.е. пишем аля «SDGADGASDGASD», МК должен ответить:
TEST: SDGADGASDGASD
Если так, то супер- супер. Далее необходимо написать в терминал OFF, заглавными и нажать ENTER. МК должен разомкнуть реле и ответить «RELAY_OFF», напряжение на вышеуказанной картинке должно исчезнуть, красный светодиод должен погаснуть. Если написать «ON», то произойти должно всё наоборот, реле замкнуться, светодиод загореться.
Всё, выдохнули. Тест пройден, всё хорошо, ставим GSM модуль на своё законное место, ОТКЛЮЧАЕМ!!!! USB UART модуль (если был подключён), заливаем прошивку из папки «рабочая прошивка», вставляем SIM карту. Всё, радуемся. Один момент по SIM карте, симка может быть любого оператора, главное это ОТСУТСТВИЕ ЗАПРОСА PIN кода при включении. Кстати в модуль вставляется «micro SIM».
И так включаем, наблюдаем, через пару секунд, после подачи питания должны моргнуть все светодиоды и замкнуться реле, после чего МК начинает инициализировать GSM модуль и пытаться «поднять» GPRS. По индикации, как должно быть при нормальной работе станции:
Синий- загорается после того как МК убедится, что модуль успешно зарегистрировался в сети сотового оператора.
Зелёный- начинает мигать с частотой 1 Гц, после того, как GPRS успешно «поднят» и метеостанция теперь «умеет» выходить в интернет.
Красный- загорается в тот момент, когда начинается передача данных на сервер, этакий TX GPRS.
Светодиоды начинают светиться после прохождения тех или иных алгоритмов!

Вроде ничего не забыл, можно переходить к части программной, верней глобальной))


WEB часть.


И так. Устройство у нас работает, данные шлются, но пока, что не принимаются сервером, переходим в личный кабинет.
Собственно адрес личного кабинета http://gsm.meteolk.ru
Не спутайте с кабинетом для USB метеостанции, отличие в «gsm»!!!!!! Сразу поясню, я не стал «скрещивать» проекты в один WEB ресурс т.к. личный кабинет для GSM станции претерпел большие изменения и можно сказать очень сильно изменился, поэтому пока так.
И так, перейдя по ссылке, вы попадёте на страницу авторизации. Имейте в виду, что логин и пароль от кабинета к USB метеостанции- не подходит. Ещё раз, ЭТО РАЗНЫЕ ПРОЕКТЫ. Извиняйте за нудность. Но так нужно.

Разумеется, первое. Что необходимо сделать- это зарегистрироваться, поэтому переходим в раздел регистрация и заполняем 4 поля

Собственно здесь всё просто, единственное - поясню. Поле «адрес электронной почты» нужен только для того, что бы вы могли воспользоваться формой обратной связи, больше, нигде и никогда это значение не фигурирует. Так, что можете не боятся, что я украду вашу эллектронку! В любом случае, позже в разделе «Профиль» всё можно будет изменить.
Так, всё зарегистрировались, заходим. Собственно, после того как вы первый раз зайдёте- вы увидите свой, пока ещё, «пустой личный кабинет».

Прежде всего, необходимо добавить метеостанцию в свой список, здесь просто- Нажимаете на меню «Управление станциями» , выбираете пункт «Добавить новую метеостанцию»

После чего заполняете все поля

И так, что к чему и почему. Во первых IMEI модуля станции. IMEI станции- это основное и КЛЮЧЕВОЕ поле. Т.е. это уникальный номер GSM модуля, именно по этому номеру проходит идентификация и авторизация станции на сервере, ошибиться здесь нельзя. При чём, как я писал ранее, до тех пор, пока в базе не будет этого номера, все данные со станции будут игнорироваться. Где взять?? Не, не у «алика», смотрим на наш модуль и вот он родимый

Вбиваем все эти циферки в поле IMEI. Главный момент, где стоит проявить внимание и это единственное поле, которое позже нельзя будет изменить, всё остальное, как в случае с профилем- меняется. Добавить станцию с двумя одинаковыми IMEI- нельзя. Если так случилось, что вы решили отдать станцию- соседу, другу, свату, брату, то сначала удалите её в своём кабинете.
Далее. Номер телефона. Номер телефона нужен для того, чтобы не забыть на какой номер надо когда- то положить денежку и всё. Т.е. номер телефона не несёт никакой практической нагрузки кроме «напоминалки», да бы не забыть. А написать вы в это поле можете, что угодно, хоть «Украл симку у жены», лишь бы удобно было. Теперь переходим к важному, на чём я немного потопчусь.
USSD код проверки баланса SIM. Собственно добрались до вопроса из начала статьи. К этому полю нужно отнестись тоже крайне внимательно. Что такое USSD код запроса- наверняка, все и так хорошо знают, это та комбинация "звёздочки", циферок и "решётки" необходимая для того, чтобы узнать текущий баланс. У каждого оператора он свой, скажем это *100# или *102# или *105# и т.д.. В это поле, необходимо вписать тот самый код запроса баланса, в зависимости от оператора, симка которого установлена в станцию. Как это работает? При подачи питания, станция обращается на сервер, забирает указанный вами код, выполняет USSD запрос с кодом, который вы указали в личном кабинете, а полученный результат отправляет обратно вам, также в кабинет. Далее, каждые 12 часов процедура повторяется, запрос - ответ от оператора - отправка ответа в кабинет. В чём собственно может быть нюанс? Это сам сотовой оператор. Может прийти ответ вида: "Запрос получен. Ожидайте ответа в SMS". Скорее всего, подключена какая- то гадкая «услуга», из за которой вы и получаете такой ответ от оператора, в любом случае, стоит обратиться к оператору и спросить: "Почему я не получаю прямого ответа о балансе при запросе ...таком- то..", после чего вам скажут примерно следующее: "Наберите на телефоне код такой- то и всё будет хорошо" или "ОК, если Вам не надо, отключить?" Да. Отключить.... Вбить в это поле не внятную информацию нельзя- если код будет «не по формату» сервер сам исправит на условный *000#. Это сделано для того, что бы станция не «сошла с ума» т.к. в ином случае пойдут ошибки от модуля, а если их будет больше 5- ти, то МК перезагрузит модуль ииии - бесконечность...
Следующее поле «Наименование станции». Здесь воля фантазии, пишите что хотите, главное чтоб было удобно. В поле «Описание станции» можно ничего не писать, но если, вдруг, станция стоит в гараже и «охраняет картошку», то тогда написать в описании вы можете, скажем, условия хранения, с кем копалась эта картошка, зачем она... в общем всё что угодно, это поле- блокнот. Всё добавили станцию. (далее я буду приводить скриншоты из своего кабинета).

После добавления у вас сразу появится банер. В банере содержится 2 графика, температура наружная и внутренняя, информация берётся с ПОСЛЕДНЕЙ добавленной станции в кабинете. Разумеется, если данных ещё нет- то графики будут "нулевыми".
Пройдёмся по основным менюшкам.
«Данные», здесь в виде таблицы отображаются все принятые данные от станции, но не более 8760 записей, т.е. 1 год не прерывной работы.

Данные которые были приняты «сегодня»- помечаются красным. Также, можно посмотреть данные за конкретную дату, нажимаете кнопку «Просмотреть данные по датам», выбираете число- всё.

Ответы по запросу баланса.

Здесь всё понятно и ясно, зеленым помечаются записи, сделанные "сегодня". Теперь, вновь возвращаюсь к началу. Почему расходы по сотовой связи достаточно не высоки? ( сразу- прошу не обращать внимание на мои значения баланса, т.к. симку я дёргал туда- сюда между несколькими проектами, поэтому где- то резко баланс снижается) Дело всё в том, что как таковой трафик можно вместить в пару килобайт за сутки, при чём 99% трафика составляет аплоад, который, на сколько я знаю, у некоторых операторов- вообще не тарифицирется, а даунлоад, как таковой станция не использует, разве что кроме запроса кода проверки баланса при включении. Поэтому, расходы и приравниваются, практически к 0.
Далее графики. Собственно графики штука понятная, например график внешней температуры

По умолчанию выводится 40 точек, это 1,6 суток непрерывной работы, при желании- можете вывести своё количество точек, выглядеть это будет примерно так:

Меню «Удаление данных»

В этом меню вы сможете удалить все показания станции. Для удаления выбираете станцию, после того, как откроется страница подтверждения в поле, необходимо написать DELET. При выполнении команды «удаления данных», удаляются только показания, запросы баланса и прочее остаются.

Почти всё. Осталось пару пунктов на которых я бы заострил внимание, остальные меню кабинета- увидите сами, они абсолютно понятны.
Меню "Метеокарта"- как по мне, интересная страница.
На глобальной карте мира будут появляться новые метеостанции, с привязкой к местности

Посмотреть данные можно нажав на лейбел станции, тогда вы увидите примерно следующее

Сразу сообщу, что положение станции- приближено к реальности, это координаты которые выдал сотовый оператор, основываясь на свои вышки, разница от реального положения станции до того, что выдал оператор +-3 километра. Для точного определения положения- не очень хорошо, но для метеокарты- отлично.
Например, в моём случае, оператор почти точно определил местоположение станции:

Ваш номер метеостанции на карте статичен, как только вы получите свой номер- он станет ваш. Позиционирование, правильней - центровка карты, происходит по последней станции в вашем списке, если таковой нет или координаты от станции не актуальны- то центром будет – Москва, Кремль. Эта страница, как думаю я, некая глобализация, при которой мы можем не только строить свои конструкции, но превращать наши конструкции в некий, не побоюсь этого слова, глобальный проект.
Осталось последнее меню, о котором я напишу- это «Обратная связь». Возможно кто- решит, что- то предложить, или, например, найдёт ошибку- как раз для этого и нужна обратная связь и ваш e-mail. Здесь вы сможете написать то, что хотите, а я свяжусь с вами по тому e-mail, который указан у вас в профиле.

Вот собственно и всё. Спасибо за внимание, уважаемые друзья! До встречи на форуме и в «мыле». Я буду несказанно рад, если кому- то пригодится или будет полезен мой проект. Также, обращаю внимание! Что данный проект не несёт никакой коммерческой подоплёки и нацелен лишь только на одно- это развитие и поддержание такой культуры как программирования и конструирования в области электроники. До встречи!
Список файлов в архиве:
28.jpg - фюзы для прошивки МК
тестовая прошивка станцииtest.hex – прошивка для тестирования устройства
рабочая прошивкаmain.hex – основная, рабочая прошивка
схема.bmp – принципиальная схема
ПП.lay6 – проет печатной платы в формате Sprint-Layout (версия не ниже 6)

Вопросы как всегда, на форум ;)

 

 


Файлы:
Фотография
Фотография
Фотография
Фотография
Файлы к проекту


Все вопросы в Форум.


ID: 2241

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

85 2 2
5
Подробно