![]() |
|
Магазин Arduino | WIKI | Регистрация | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
![]() |
#1 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() ![]() Если у Вас это установленно (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. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
То ли у всех всё получилось, то ли никто не попробовал...
__________________
istarik.ru |
![]() |
![]() |
![]() |
#3 |
Junior Member
Регистрация: 05.09.2015
Адрес: Ивано-Франковск
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Умный дом конечно облегчает нашу жизнь, но разобраться со всеми функциями сложно.
|
![]() |
![]() |
![]() |
#4 |
Junior Member
Регистрация: 07.11.2016
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Добрый день!
Использую роутер Netgear WNCE2001 Можно ли сделать для него файлы arduread и arduserver? Спасибо. |
![]() |
![]() |
![]() |
#5 |
Junior Member
Регистрация: 07.11.2016
Сообщений: 2
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Вот здесь есть для Ralink, попробуйте.
__________________
istarik.ru |
![]() |
![]() |
![]() |
#7 |
Junior Member
Регистрация: 21.12.2022
Сообщений: 5
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#8 |
Junior Member
Регистрация: 21.12.2022
Сообщений: 5
Вес репутации: 0 ![]() |
![]()
Настройка по уарту норм, команды идут.
|
![]() |
![]() |
![]() |
#9 |
Junior Member
Регистрация: 21.12.2022
Сообщений: 5
Вес репутации: 0 ![]() |
![]() Устанавливал ight_control - работает...!!! Через ttyATH0 Последний раз редактировалось kombat; 06.01.2023 в 01:36. |
![]() |
![]() |
![]() |
#10 |
Junior Member
Регистрация: 21.12.2022
Сообщений: 5
Вес репутации: 0 ![]() |
![]()
stD
Senior Member жду вашей реакции!!! |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|