Создать систему мониторинга температуры и влажности.
На самом деле система уже есть, но я решил её переделать чуть ли не с нуля.
В систему входит:
- Arduino Duemilanove
 - DHT11 для мониторинга температуры и влажности дома
 - DHT22 длямониторинга температуры и влажности на улице
 - Монохромный LCD-дисплей для отображения данных
 - Raspberry Pi
 
Arduino должна собирать данные с датчиков, отображать их на дисплее, а так же передавать Raspberry Pi. Raspberry Pi должна принимать данные, в реальном времени отображать текущие показания на веб-странице, раз в 5 минут писать показания в базу данных и отправлять насервис народного мониторинга. Так же сайте системы должна быть возможность просмотра статистики (за сутки, неделю, месяц, год) в виде графиков.
- 
                    
                    
Собрать устройство
Устройство будет представлять собой Arduino + два датчика температуры и влажности (один уличный DHT22, один домашний DHT11) + монохромный LCD-дисплей. Уличный датчик будет вынесен за окно и находиться в непрозрачной емкости (для предотвращения попадания прямых солнечных лучей и влаги). Планируется пластиковая бутылка, разрезанная наполовину (часть с горлышком).
Arduino — аппаратная вычислительная платформа, основными компонентами которой являются простая плата ввода-вывода и среда разработки на языке Processing/Wiring.
В данном случае используется Arduino Duemilanove (не оригинальная).
Ниже фото как это выглядело раньше =)
    
     - 
                    
                    
Написать прошивку
Собственно из-за прошивки всё и началось, я её потерял (не сделал бэкап при переустановке ОС). Конечно я мог написать такую же, но решил переделать всё.
Нам нужнополучить с уличного и домашнего датчика данные о влажности и температуре, отобразить на дисплее, а также сформировать JSON-подобную строку с данными и отправить через SerialPort (USB в данном случае) на сервер.
Данные поступают по мере изменения температуры или влажности на одном из датчиков.
Для простоты работы воспользуемся библиотеками для датчиков серии DHTи LCDдисплея. Писать будем в Arduino IDE.
 - 
                    
                    
Получать данные с устройства
На этом этапе немного поиграемся с разными языками программирования, получая JSON через Serial Port.
Немного поменял данные, которые принимает Raspberry Pi.
 - 
                    
                    
Установить ОС на сервер
OC (Raspbian) на Raspberry Pi я уже порядочно позасрал. Хотел бы поставить чистенькую ось.
Сюда же будет входить установка полезных утилиток, драйверов (для wi-fi адаптера) и т.д.
 - 
                    
                    
Написание программы для обработки данных, получаемых с Arduino
Программка должна слушать Serial Port, ловить JSON-строку, если есть ошибки - сообщать о них, и записывать ошибку в БД, а так же отправлять данные о погоде на narodmon.ru, в базу данных и на сайт.
 - 
                    
                    
Установка веб-сервера
Веб-сервером я скорее всего выберу nginx, хоть с Apache2 я знаком лучше.
Веб-сервер должен будет держать не один сайт, нагрузка планируется небольшая.
Так же веб-сервер должен работать с тремя доменами (по меньшей мере).
 - 
                    
                    
Установка базы данных
Базой данных скорее всего станет MySQL. У неё есть очень удобная админка (phpMyAdmin), у других тоже есть, но этот набор привычнее.
 - 
                    
                    
Верстка и дизайн
Как-то всё это дело нужно будет оформить, чтобы пользоваться было приятно.
 - 
                    
                    
Добавить веб-страницу со статистикой
Нужно получать набор данных из БД и показывать на сайте в виде графиков. Графики, которые я использовал в прошлый раз не отображались на мобильных телефонах. Нужно найти те, которые будут работать везде.
 - 
                    
                    
Отладка
Процесс от получения датчиками информации, до вывода их на сайт довольно большой, поэтому ошибки неизбежны. Собственно цель данного этапа отловить их все и исправить.
 - 
                    
                    
Финал
Система целиком работает какое-то время, чтобы можно было сделать о неё какие-то выводы.
Например с прошлой системой было много проблем:
- Если умирал роутер, то после его перезагрузки Raspberry сама к нему не подключалась, нужно было перезагружать.
 - После перезагрузки Raspberry Pi все скрипты приходилось включать вручную.
 - Не устраивала работа веб-сервера.
 
 - 
                    
                    
Тестирование веб-сервера
Погонять тестовые странички, разные домены, CGI-сценарии и т.д.
 - 
                    
                    
Установка CGI-сервера
В прошлый раз всё крутилось на PHP (в плане сайта). Теперь я хочу сайт сделать на Python.
 
- 9839
 - 09 марта 2014, 08:08
 
Не пропустите новые записи!
Подпишитесь на цель и следите за ее достижением