DIY
7 August 2010

Выводим прогноз погоды на дисплей

image

Добрый день всем!


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


Железо

Собственно устройство состоит из двух частей:
1. Программа для ПК
2. Сам девайс с прошивкой
Чтобы выводить информацию о погоде я купил дисплей MT16S4 фирмы МЭЛТ (http://melt.com.ru)
В качестве контроллера был выбран ATtiny2313, он как раз подходит для небольшого приложения, у него мало выводов, да и дома он у меня был в наличии. Подключать к ПК своё устройство я решил через COM порт с помощью микросхемы MAX232 – рассказывать о том, как она работает я не буду – об этом уже упоминалось на хабре, да и в интернете полно статей на эту тему. Стоит отметить: чтобы контроллер без ошибок работал с интерфейсом RS-232, нужно использовать кварцевый резонатор с частотой 7,3728 МГц (т.к. максимальная частота этого МК — 8 МГц).
Дисплей к контроллеру нужно подключать таким образом:
PB0 — A0
PB1 — R/W
PB2 — E
PB4 — DB4
PB5 — DB5
PB6 — DB6
PB7 — DB7
Выводы дисплея DB0-DB3 остаются неподключенными, т.к. мы используем 4-ёх битную шину – так экономятся выводы микроконтроллера.


DSC03706

DSC03708
Всю схему я питаю от USB порта.

Софт

Прошивка для МК была написана в CodeVision AVR, т.к. в нём уже есть готовые библиотеки для дисплея (МЭЛТовский дисплей совместим с контроллером HD44780)
МК принимает данные с ПК, обрабатывает дежурные символы и в соответствии с ними выводит информацию на дисплей.
Программа на ПК каждый час считывает информацию с сайта gismeteo.ru
и передаёт необходимые данные в COM порт. Информацию о погоде можно узнать на сутки вперёд
В самой программе есть настройки скорости подключения и номера порта к которому собираемся подключаться, кнопки «<<» ,«>>» позволяют выводить на дисплей прогноз на разное время суток.
1
Все опции сохраняются в INI файле. Программку можно свернуть в трей и она будет сама обновлять данные для вывода на дисплей. Так же из трея доступно меню в котором можно выбрать на какое время суток будет выводиться прогноз.
2
Изначально программа скачивает данные для Москвы, но можно указать и другой город. Для этого нужно пройти по ссылке informer.gismeteo.ru/getcode/xml.php?id=27612 — выбрать необходимый город, будет сгенерирована ссылка, которую нужно скопировать и вставить в ini-файл в строку «Town».

Прогноз на дисплей выводится в формате:
строка 1: Дата и день недели
строка 2: Время суток и температура
строка 3: Облачность
строка 4: Тип осадков
DSC03711

Даташит на дисплей
Исходники прошивки
Исходники программы
Программа для ПК

Вот вроде бы и всё. Девайс уже работает 3-й день и меня устраивает.
В будущем хочу приделать цветной экран, подключить к USB и получится этакий реальный виджет.

Удачи всем!

+121
10.6k 86
Comments 83