25.08.2015, 19:46 | #1 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Умный дом без Lighttpd, PHP, ser2net, stty и флешки
Если у Вас это установленно (Lighttpd и т.д.), то ничего удалять не нужно, просто пропустите установку uHTTPd. Теперь для работы системы, достаточно легкого сервера uHTTPd (используется в OpenWrt для работы Web-интерфейса) и двух маленьких программ. Благодаря этому нет необходимости использовать флешку. Как это работает? Ардуина два раза в секунду отправляет данные роутеру (по USB или UART), на роутере программа arduread получает эти данные и записывает их в файл. Клиент подключённый к роутеру, раз в секунду считывает данные из этого файла. Когда клиент отправляет команду (например включить свет), то её принимает другая программа — arduserver, которая слушает TCP-порт и отправляет ардуине принятые от клиента команды. Ардуина выполняет команду и продолжает отправлять данные, которые опять таки считывает arduread и записывает в файл. Клиент, при следующем запросе, читает из файла уже новые данные и они отображаются на страничке. Функционально, система может включать/отключать устройства подключённые к ардуине и считавать информацию с датчиков. Ардуина Всё что делает ардуина — это принимает команды и два раза в секунду отсылает серверу информацию. Заливаем скетч: PHP код:
Ардуина получает команду включить/выключить пин, выполняет действие и устанавливает соответствующий флаг (d2 = 1; — вкл, d2 = 0; — откл), по этим флагам клиент определяет что включено или выключено. Сервер На роутере будут установлены следующие программы: uHTTPd — легковесный сервер, написанный разработчиками OpenWrt для работы на встраиваемых устройствах, он будет отдавать клиенту основной контент. Если установлен Lighttpd, то устанавливать uHTTPd не нужно. arduread — получает данные присланные ардуиной и записывает их в файл file.db. Клиент подключенный к роутеру, раз в секунду считывает данные из этого файла, тем самым получая актуальную информацию. arduserver — это маленький TCP-сервер, который ожидает соединение на порту 3490 (порт можно указать любой). Когда от клиента прилетает какая-либо команда, arduserver ловит её и отправляет в ардуину. То есть, на роутере работает arduread — «слушающая» ардуину, и два HTTP-сервера — uHTTPd для отдачи контента и arduserver — принимающий команды для ардуины. Устанавливаем PHP код:
PHP код:
PHP код:
Если подключаете ардуину к UARTу роутера, то пропустите этот пункт. PHP код:
Подключите ардуину и убедитесь что она определилась. Arduino Nano — ttyUSB0 Arduino Mega — ttyACM0 UART — ttyATH0 Переходим в каталог /tmp Скачиваем пакеты arduread и arduserver: PHP код:
PHP код:
PHP код:
PHP код:
PHP код:
PHP код:
PHP код:
PHP код:
PHP код:
Умный дом занял 24Кб. Теперь нужно подкорректировать файл index.html, вписав в него ip-адрес роутера (если у Вас выделенный ip и планируете заходить извне, то впишите соответствующие имя или айпишку). PHP код:
Менять нужно только адрес 192.168.5.222, порт (3490) трогать не надо. Если всё же решите поменять порт, то не забудте поменять его в аргументах для запуска программы arduserver, в файле /etc/rc.local (sleep 1 && /arduserver 3490 /dev/ttyUSB0). Опять же, если будете заходить извне, и «умный дом» подключён к интернету не напрямую, а через другой роутер, то на нём нужно пробросить порт. Перегружаем: PHP код:
Строка сверху, это «служебная» информация, пояснения содержатся в комментариях в файле index.html. Если что-то пошло не так, то в корневой папке появятся файлы Error.log и/или ErrorServer.log: PHP код:
__________________
istarik.ru Последний раз редактировалось stD; 25.08.2015 в 19:53. |
30.08.2015, 21:19 | #2 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Re: Умный дом без Lighttpd, PHP, ser2net, stty и флешки
То ли у всех всё получилось, то ли никто не попробовал...
__________________
istarik.ru |
05.09.2015, 21:26 | #3 |
Junior Member
Регистрация: 05.09.2015
Адрес: Ивано-Франковск
Сообщений: 2
Вес репутации: 0 |
Re: Умный дом без Lighttpd, PHP, ser2net, stty и флешки
Умный дом конечно облегчает нашу жизнь, но разобраться со всеми функциями сложно.
|
07.11.2016, 17:21 | #4 |
Junior Member
Регистрация: 07.11.2016
Сообщений: 2
Вес репутации: 0 |
Re: Умный дом без Lighttpd, PHP, ser2net, stty и флешки
Добрый день!
Использую роутер Netgear WNCE2001 Можно ли сделать для него файлы arduread и arduserver? Спасибо. |
07.11.2016, 17:22 | #5 |
Junior Member
Регистрация: 07.11.2016
Сообщений: 2
Вес репутации: 0 |
Re: Умный дом без Lighttpd, PHP, ser2net, stty и флешки
|
08.11.2016, 01:05 | #6 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 |
Re: Умный дом без Lighttpd, PHP, ser2net, stty и флешки
Вот здесь есть для Ralink, попробуйте.
__________________
istarik.ru |
06.01.2023, 01:25 | #7 |
Junior Member
Регистрация: 21.12.2022
Сообщений: 5
Вес репутации: 0 |
Не работает!!!
|
06.01.2023, 01:27 | #8 |
Junior Member
Регистрация: 21.12.2022
Сообщений: 5
Вес репутации: 0 |
Настройка по уарту норм, команды идут.
|
06.01.2023, 01:29 | #9 |
Junior Member
Регистрация: 21.12.2022
Сообщений: 5
Вес репутации: 0 |
ight_control работает
Устанавливал ight_control - работает...!!! Через ttyATH0 Последний раз редактировалось kombat; 06.01.2023 в 01:36. |
06.01.2023, 12:58 | #10 |
Junior Member
Регистрация: 21.12.2022
Сообщений: 5
Вес репутации: 0 |
Нужна подсказка...
stD
Senior Member жду вашей реакции!!! |
Здесь присутствуют: 11 (пользователей: 0 , гостей: 11) | |
|
|