Сегодня мы начинаем цикл записей, в которых пройдем путь "от простого к сложному" и сделаем реально работающую беспроводную систему домашней автоматизации.
Система тестовая, поэтому будет состоять из двух модулей - "главного" и "ведомого"(но это деление достаточно условное) и вы, изучив представленный материал, сможете самостоятельно ее дополнить.
Поставим перед собой амбициозные цели.
Для "ведомого" модуля это будет:
Для "главного" модуля:
С целями определились, теперь определимся с аппаратной составляющей нашего проекта.
Система тестовая, поэтому будет состоять из двух модулей - "главного" и "ведомого"(но это деление достаточно условное) и вы, изучив представленный материал, сможете самостоятельно ее дополнить.
Поставим перед собой амбициозные цели.
Для "ведомого" модуля это будет:
- Измерение температуры с помощью датчика DS18B20.
- Управление "нагрузкой" (для примера это будет простой светодиод).
- Регулярная передача данных о температуре и состоянии "нагрузки":
- на "главный" модуль,
- на сервис cosm.com (сервис для хранения и отображения данных).
- Ответ на беспроводные запросы от "главного" модуля.
- Исполнение беспроводных команд по управлению "нагрузкой" от "главного" модуля.
Для "главного" модуля:
- Отображение данных о времени и дате (используя RTC-модуль платы).
- Получение и отображение данных с "ведомого" модуля.
- Управление "нагрузкой", подключенной к "ведомому" модулю.
- Синхронизация встроенных часов с использованием NTP-сервера.
- Представление данных с "ведомого" модуля на веб-странице.
С целями определились, теперь определимся с аппаратной составляющей нашего проекта.
В качестве основы для модулей возьмем две "родственные" платы:
iBoard Pro (для "главного" модуля):
и iBoard (для "ведомого" модуля):
Выбор этих плат обусловлен тем, что они являются Arduino-совместимыми (простое программирование в уже знакомой среде Arduino IDE) и имеют в своем составе все необходимое для решения наших задач.
Беспроводные коммуникации организуем с помощью модулей nRF24l01+:
iBoard Pro (для "главного" модуля):
и iBoard (для "ведомого" модуля):
Выбор этих плат обусловлен тем, что они являются Arduino-совместимыми (простое программирование в уже знакомой среде Arduino IDE) и имеют в своем составе все необходимое для решения наших задач.
Беспроводные коммуникации организуем с помощью модулей nRF24l01+:
Таких модулей потребуется 2 штуки - по одному модулю для "главного" и "ведомого".
В качестве элемента отображения и управления (для "главного" модуля) воспользуемся модулем TFT-дисплея с резистивной тач-панелью (ITDB02-2.4E):
Для "заливки" скомпилированных скетчей в платы iBoard и iBoard Pro дополнительно потребуется программатор Foca V2.1:
В наших "уроках" мы будем меньше отвлекаться на аппаратную составляющую (поскольку в платах все, что нам необходимо, уже реализовано и достаточно подключить необходимые модули к соответствующим интерфейсным разъемам) и больше уделим времени программной реализации.
План реализации будет следующий:
- Урок 1: iBoard Pro и дисплейный модуль - калибровка тачскрина, работа с RTC (часы).
- Урок 2: iBoard Pro - синхронизация времени (NTP).
- Урок 3: iBoard - работа с датчиком температуры и подготовка к работе с "нагрузкой".
- Урок 4: iBoard - передача данных на cosm.com
- Урок 5: iBoard и iBoard Pro - беспроводные коммуникации (протокол).
- Урок 6: iBoard - реализация беспроводного протокола и автоматическая отправка данных.
- Урок 7: iBoard Pro - отображение полученных данных.
- Урок 8: iBoard Pro - беспроводное управление "нагрузкой" на "ведомом" модуле.
- Урок 9: iBoard Pro - представление полученных данных на веб-странице.
Следите за обновлениями нашего блога!
Если урок 5,6 будет так же описан как на хабре
ОтветитьУдалитьhttp://habrahabr.ru/post/171613/
.... то будет слишком большой полет для самодеятельности. То есть пост будет бесполезен.
Когда уже продолжение проекта? Крайне интересная тема.
ОтветитьУдалитьПроект загнулся?
ОтветитьУдалитьПроект не загнулся - пока обрастает новым "железом". Скоро - обновления
ОтветитьУдалить... прошло 3 месяца... Дайте определение термину "Скоро" :)
ОтветитьУдалить