Заказать прошивку

 





 

Из завалявшихся деталей решил сделать небольшую метеостанцию. На сборку и написание прошивки для контроллера ушло два дня выходных. Еще пара дней ушла на написание, тестирование и отладку остального программного обеспечения. Текущая версия метеостанции измеряет температуру, влажность, давление, имеется связь с компьютером через USB порт от него же и питается, резервное питание от батареи 9 В. Данные отображает на LCD. Еще есть часы. Поскольку, не нашлось подходящего кварца (а покупать принципиально не хотел), сделал синхронизацию времени с компьютером.

Этот проект абсолютно не коммерческий, поэтому схему метеостанции, прошивку контроллера и все необходимое программное обеспечение можно скачать. Исходный код прошивки здесь.

 

Метеостанция своими руками

 

 

Метеостанция своими руками

 

Станция собрана на макетной плате, поэтому чертеж печатной платы и не просите.

Использовались следующие основные компоненты:
ATMega8 - контроллер
MPX4115A - датчик давления
HIH-4000 - датчик влажности
DS18B20 - датчик температуры
WH1602A - дисплей

 

 

Метеостанция своими руками

 

Я использовал LCD на PLED технологии, можно обыкновенные типа WH1602A. Датчики температуры и влажности вынесены на улицу в защитную коробочку.

 

Метеостанция своими руками

 

Подключаем к компьютеру

 

Метеостанция своими руками

 

Подключение к порту USB требует отдельного описания.

В принципе, можно было подключить и к COM порту, так проще. Но у меня он занят. Выбора нет - USB. Поскольку станция собиралась с чего было, то в ход пошел завалявшийся огрызок кабеля CA-42 для подключения мобильного телефона к компьютеру. Разъем к мобильному телефону ушел в дело, а тот конец, который подключается к компьютеру остался. В самом этом разъеме уже имеется микросхема для USB порта, а на выходе - стандартный UART, тот, который используется в мобильных телефонах и самый раз для контроллера, поэтому провода запаиваем напрямую, без каких либо преобразователей сигнала. После установки драйверов для этого кабеля, появляется виртуальный COM порт. Далее можем любой программой подключиться к нашей метеостанции, например HyperTerminal. Распайку кабеля специально не привожу, поскольку кабеля разные, могут отличатся. Использовать нужно 3 провода TX, RX, GND. Запитать устройство от кабеля, скорее всего, не получится. Я взял не нужный USB разъем и запитал с другого USB порта.

Для того чтобы можно было из командной строки отправлять команды и принимать ответ от метеостанции, была написана программа getfromcom.exe.

Метеостанция понимает только две команды:

AGOV - Возвращает текущие показания датчиков.

SETTIME [время в секундах с начала суток] - команда устанавливает время в метеостанции

Для получения данных выполняем getfromcom.exe COM6 AGOV

Для установки времени выполняем getfromcom.exe COM6 "SETTIME 72565"

COM6 - порт.
72565 - количество секунд с начала суток.

Автоматизация процесса

Теперь можно любой программой считать, обработать данные, отправить куда надо, синхронизировать время метеостанции. Я это сделал с помощью скриптового языка PHP. Во первых это быстро и всегда можно оперативно подправить скрипт и не искать куда делся исходный код. Во вторых, я постоянно работаю с PHP. Но Вы можете написать свою программу на любом удобном для Вас языке. Разумеется, для работы PHP придется его скачать (http://www.php.net/downloads.php) и установить на компьютере. Под Windows это делается элементарно. Скрипт getfromcom.php запускается из файла get_data.bat опрашивает метеостанцию, обрабатывает данные и отправляет на HTTP-сервер скрипту get_data.php. О скриптах на сервере поговорим чуть позже.

Спящий режим рабочего компьютера

Мой компьютер стоит в спящем режиме. Просыпается каждые 3 часа, опрашивает метеостанцию, отправляет данные на сервер и снова засыпает (можно и не выключать - кому как удобнее.). Делается это так: В планировщике задач указывается пакетный файл get_data.bat для выполнения и устанавливается опция "разбудить компьютер для выполнения этого задания".

Компьютер отправляется в спячку командой fShutdown.exe /hibernate
Теперь по указанному времени компьютер проснется и выполнит get_data.bat

Особенности get_data.bat

Команды:

devcon.exe enable PCIVEN_10EC
ping 127.0.0.1
RASPHONE -d Setilite

Запускают сетевое подключение и подымают VPN к моему провайдеру Интернет.

ping 127.0.0.1 - так я сделал необходимую паузу.

Соответственно, отключаем командами:

RASPHONE -h Setilite
devcon.exe disable PCIVEN_10EC

У Вас будет все по другому, поэтому в файле эти строки закомментированы.

После выхода из спячки компьютер начинал думать, что COM порт занят другой программой. Пришлось виртуальный COM порт перезагружать командой devcon.exe restart "USBVid_6547&PID_0232"
У Вас будет другой ID устройства.

Серверные скрипты:

Теперь о скриптах на сервере. Скрипт, который принимает данные: get_data.php
Скрипт сохраняет данные в файл pogoda.log. Вообще то, данные отправляются и в базу данных MySQL. Но для простоты, рассмотрим работу только с файлом. Принимая данные, скрипт проверяет подходит ли IP адрес отправителя. Разрешенные адреса перечислены в файле ip_allow.lst От "чужого" отправителя данные не принимаются.

Вот тут можно посмотреть как отображаются данные на сайте!


За отображение текущих значений отвечает скрипт pogoda_kremenchug.php

Все, что касается графиков, находится в папке pchart

Пользуйтесь на здоровье. Будут вопросы - пишите avp@avispro.com.ua

Корягин Андрей

Проект для Proteus'a от пользователя sasha231280 скачать

Схема с Proteus'a




Источник
 
Дата: 14-06-2010, 22:01, Просмотров: 32119, Автор: Nikolai4
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти под своим именем.

   
zaa-1978 # 1
14 июня 2010 22:07  
 
нехилая штука!!! wacko
  •    •     


   
shpuntic # 2
14 июня 2010 22:21  
 
Да,вещь хоршая,только унас датчик давления и датчик температуры сложно найти. smile
  •    •     


   
Nikolai4 # 3
14 июня 2010 22:37  
 
Да ладно, я нашел за раз в нете вот тут :

MPX4115A
HIH-4000

я через этот магазин постоянно покупаю!

  •    •     


   
LDZ-UI # 4
16 июня 2010 16:47  
 
так это только на украине можно купить?
  •    •     


   
LDZ-UI # 5
16 июня 2010 16:50  
 
А штука классная.
  •    •     


   
zaa-1978 # 6
16 июня 2010 17:20  
 
поищи в интернет магазинах!!!!
должны и у вас быть!!!
  •    •     


   
LDZ-UI # 7
16 июня 2010 17:33  
 
да есть но цена без пересылки больно солидная получается гдето 1250 руб. это без конролера ижк панели.
  •    •     


   
zaa-1978 # 8
16 июня 2010 17:57  
 
непости пиши в чате!!!!! cool
  •    •     


   
Mermen # 9
18 июня 2010 10:17  
 
индикатор красивый, но как и датчиков в свободной продаже (Омск) нету cry
  •    •     


   
zaa-1978 # 10
18 июня 2010 22:03  
 
а в инете заказать?
  •    •     


   
LDZ-UI # 11
19 июня 2010 02:38  
 
цена больно кусается даже через инет
  •    •     


   
Mermen # 12
23 июня 2010 10:36  
 
да и в интернет магазинах редко в прайсах найдешь
  •    •     


   
LDZ-UI # 13
23 июня 2010 14:00  
 
согласен , если у вас в Омске нету , у нас и нормальной логики не сыщеш ( Усть-Илимск ) не то что такой экзотики cry
  •    •     


   
zaa-1978 # 14
23 июня 2010 17:08  
 
тогда просить чтоб прислал ктото!!!!
  •    •     


   
sasha231280 # 15
25 августа 2010 17:24  
 
Сабрал данное устройство. Индикатор применил WH1602A-YGH-CTK#. Не показывает значение температуры (пустое поле, даже нет значка градуса). DS18B20 рабочий. Фьюзы при прошивке не менялись (Atmega8 новая). Какие фьюзы надо выставить для Atmega8 в CodeVisionAVR. Время, разряд батареи, влажность и давление на индикаторе отображаются.
  •    •     


   
Nikolai4 # 16
25 августа 2010 22:26  
 
этот вопрос к автору, ссылка внизу статьи на источник, не забудь тут отписать в чем проблема...
  •    •     


   
sasha231280 # 17
26 августа 2010 19:33  
 
Автору статьи написал, но он молчит.
  •    •     


   
sasha231280 # 18
27 августа 2010 21:07  
 
Смоделировал проект в Proteus'e (установлен ds18b20 и mpx4115) тоже не работает http://depositfiles.com/files/i8j8v2u93
  •    •     


   
Nikolai4 # 19
27 августа 2010 22:20  
 
я автору написал ... ждем ответа
  •    •     


   
sasha231280 # 20
1 сентября 2010 17:05  
 
Что-то молчит автор...!!! Прошивка рабочая, а вот схема нет!!! Чтобы заработало необходимо: <p> 1. Датчик температуры DS18B20 подсоединить к 12 выв. ATMEGA8 (вместо 11 выв.);
2. Датчик давления MPX4115A - необходимо поменять местами вывода питания!!!;
3. Датчик влажности HIH4000 - поменять местами "-" вывод питания с сигнальным выводом;
4. Необходимо 20 выв. ATMEGA8 подсоединить к +5В, (а выв. 21 через емкость 0,1мкФ на землю - а может не надо);
5. Изменит фьюзы, которые отвечают за частоту внутреннего генератора ATMEGA8 на 2МГц (запрограммировать, т.е. поставить галочки напротив SUT0 CKSEL3 CKSEL2 CKSEL0 BOOTSZ1 BOOTSZ0)
Выкладываю рабочий проект для Proteus'a [ в статье]
  •    •     


   
frol # 21
17 ноября 2010 15:42  
 
здравствуйте, я стулент и мне необходимо сочинить вещь похожую на данную иетеостанцию, но только вместо датчика давления применить датчик задымленности. но не знаю как это сделать какой датчик взять и где взять прошивку для него на avr atmega??????
помогите пожалуйста.
  •    •     


   
alexwolf # 22
11 января 2011 13:58  
 
Скажите ...возможно использовать метеостанцию без связи с компьютером
  •    •     


   
zaa-1978 # 23
11 января 2011 17:30  
 
судя по описанию да можно! biggrin
  •    •     


   
QweЯty # 24
2 февраля 2011 19:27  
 
возможно ли переделать прошивку на работу без жк-дисплея?
будет работать только в связке с сервером(и можно ли описание поведения программы? так как сервер не на виндовс стоит, а на FreeBSD) и работать будет в автономном режиме без участия человека smile

или можно просто не впаивать жк-дисплей?

  •    •     


   
QweЯty # 25
3 февраля 2011 02:08  
 
мне надо подрубить еще один (пока что) температурный датчик... и вроде бы тока еще 1 smile
то ессть их 2 будет...
нужно ли для этого переделывать прошивку? и кто может ее переделать?
  •    •     


   
Nikolai4 # 26
3 февраля 2011 07:02  
 
можно
  •    •     


   
Nikolai4 # 27
3 февраля 2011 07:02  
 
нужно переделывать
  •    •     


   
QweЯty # 28
5 февраля 2011 19:01  
 
а можно попросить кого нибудь переделать прошивку под 2 термодатчика?
или переделать ее так чтобы можно было увеличивать количество теормодатчиков, т.к. сам еще не знаю сколько будет именно этих датчиков...

сам не владею этим искусством sad

программу не нужно делать, постараюсь сам с друзьями сделать аналог под *nix, знать бы тока что нужно подавать на вход и принимать с выхода...

  •    •     


   
chestar # 29
3 марта 2011 09:08  
 
Здравствуйте. Помогите пожалуйста, как вывести все это на семисигментный индикатор, ну точнее мне надо вывести только показания с датчика влажности... Пожалуйста помогите или натолкните на путь истинный))))

P.S. Если есть желающие заработать) Нужно сделать готовое устройство, точнее плату, измеритель влажности с семисегментным индикатором)

  •    •     


   
miron # 30
22 марта 2011 22:40  
 
собрал кто до конца как работает а то ЖЕНА закала измеритель влажности, ну температура тож пойдет, будет ли станция работать без датчика давления, ошибку никакую гнать не будет .
  •    •     

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
 

Обновления

Конкурсные работы:

Сообщения Форума Ответов
бaкoмeтр 1799
Сколько мужчина может потратит ... 4
Настенные часы - термометр 258
PICKIT2 и AVR 5
RGB подсветка приборной панели 4
Бакометр 2 200
Индикаторы температуры и давле ... 22
Универсальный бортовой компьют ... 298
Простой автоматический выключа ... 18
Помогите пожалуйста с CAN инте ... 2