1

Этап 1

Собрать устройство

2

Этап 2

Написать прошивку

3

Этап 3

Получать данные с устройства

4

Этап 4

Установить ОС на сервер

5

Этап 5

Написание программы для обработки данных, получаемых с Arduino

6

Этап 6

Установка веб-сервера

7

Этап 7

Установка базы данных

8

Этап 8

Верстка и дизайн

9

Этап 9

Добавить веб-страницу со статистикой

10

Этап 10

Отладка

11

Этап 11

Финал

12

Этап 12

Тестирование веб-сервера

13

Этап 13

Установка CGI-сервера

1

Этап 1

Собрать устройство

2

Этап 2

Написать прошивку

3

Этап 3

Получать данные с устройства

4

Этап 4

Установить ОС на сервер

5

Этап 5

Написание программы для обработки данных, получаемых с Arduino

6

Этап 6

Установка веб-сервера

7

Этап 7

Установка базы данных

8

Этап 8

Верстка и дизайн

9

Этап 9

Добавить веб-страницу со статистикой

10

Этап 10

Отладка

11

Этап 11

Финал

12

Этап 12

Тестирование веб-сервера

13

Этап 13

Установка CGI-сервера

09 марта 2014 06 апреля 2014
Цель завершена 12 мая 2014

Автор цели

Бизнес и Финансы

Создать систему мониторинга температуры и влажности.

На самом деле система уже есть, но я решил её переделать чуть ли не с нуля.

В систему входит:

  • Arduino Duemilanove
  • DHT11 для мониторинга температуры и влажности дома
  • DHT22 длямониторинга температуры и влажности на улице
  • Монохромный LCD-дисплей для отображения данных
  • Raspberry Pi

Arduino должна собирать данные с датчиков, отображать их на дисплее, а так же передавать Raspberry Pi. Raspberry Pi должна принимать данные, в реальном времени отображать текущие показания на веб-странице, раз в 5 минут писать показания в базу данных и отправлять насервис народного мониторинга. Так же сайте системы должна быть возможность просмотра статистики (за сутки, неделю, месяц, год) в виде графиков.

  1. Собрать устройство

    Устройство будет представлять собой Arduino + два датчика температуры и влажности (один уличный DHT22, один домашний DHT11) + монохромный LCD-дисплей. Уличный датчик будет вынесен за окно и находиться в непрозрачной емкости (для предотвращения попадания прямых солнечных лучей и влаги). Планируется пластиковая бутылка, разрезанная наполовину (часть с горлышком).

    Arduino — аппаратная вычислительная платформа, основными компонентами которой являются простая плата ввода-вывода и среда разработки на языке Processing/Wiring.

    В данном случае используется Arduino Duemilanove (не оригинальная).

    Ниже фото как это выглядело раньше =)

  2. Написать прошивку

    Собственно из-за прошивки всё и началось, я её потерял (не сделал бэкап при переустановке ОС). Конечно я мог написать такую же, но решил переделать всё.

    Нам нужнополучить с уличного и домашнего датчика данные о влажности и температуре, отобразить на дисплее, а также сформировать JSON-подобную строку с данными и отправить через SerialPort (USB в данном случае) на сервер.

    Данные поступают по мере изменения температуры или влажности на одном из датчиков.

    Для простоты работы воспользуемся библиотеками для датчиков серии DHTи LCDдисплея. Писать будем в Arduino IDE.

  3. Получать данные с устройства

    На этом этапе немного поиграемся с разными языками программирования, получая JSON через Serial Port.

    Немного поменял данные, которые принимает Raspberry Pi.

  4. Установить ОС на сервер

    OC (Raspbian) на Raspberry Pi я уже порядочно позасрал. Хотел бы поставить чистенькую ось.

    Сюда же будет входить установка полезных утилиток, драйверов (для wi-fi адаптера) и т.д.

  5. Написание программы для обработки данных, получаемых с Arduino

    Программка должна слушать Serial Port, ловить JSON-строку, если есть ошибки - сообщать о них, и записывать ошибку в БД, а так же отправлять данные о погоде на narodmon.ru, в базу данных и на сайт.

  6. Установка веб-сервера

    Веб-сервером я скорее всего выберу nginx, хоть с Apache2 я знаком лучше.

    Веб-сервер должен будет держать не один сайт, нагрузка планируется небольшая.

    Так же веб-сервер должен работать с тремя доменами (по меньшей мере).

  7. Установка базы данных

    Базой данных скорее всего станет MySQL. У неё есть очень удобная админка (phpMyAdmin), у других тоже есть, но этот набор привычнее.

  8. Верстка и дизайн

    Как-то всё это дело нужно будет оформить, чтобы пользоваться было приятно.

  9. Добавить веб-страницу со статистикой

    Нужно получать набор данных из БД и показывать на сайте в виде графиков. Графики, которые я использовал в прошлый раз не отображались на мобильных телефонах. Нужно найти те, которые будут работать везде.

  10. Отладка

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

  11. Финал

    Система целиком работает какое-то время, чтобы можно было сделать о неё какие-то выводы.

    Например с прошлой системой было много проблем:

    • Если умирал роутер, то после его перезагрузки Raspberry сама к нему не подключалась, нужно было перезагружать.
    • После перезагрузки Raspberry Pi все скрипты приходилось включать вручную.
    • Не устраивала работа веб-сервера.
  12. Тестирование веб-сервера

    Погонять тестовые странички, разные домены, CGI-сценарии и т.д.

  13. Установка CGI-сервера

    В прошлый раз всё крутилось на PHP (в плане сайта). Теперь я хочу сайт сделать на Python.

  • 9272
  • 09 марта 2014, 08:08
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?