Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.06.2011, 10:34   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Связываем Wi-Fi Роутер Asus wl500gp и Arduino

На текущий момент статья устарела, сейчас есть не дорогие, миниатюрные, с более мощным процессором роутеры WT3020
Обсуждение в разделе CyberWrt.
Теперь благодаря CyberWrt роутер можно превратить в робота или любое другое устройство за 2 клика
И для этого не нужно иметь специальных знаний, все настройки производятся из браузера Вашего ПК

Автор статьи: natural.
Предлагается такой способ автоматизации домашнего хозяйства при помощи wl500gp. Покупается arduino или его клон, я взял arduino nano (джидаи могут спаять такой сами ) Он представляет из себя avr-микроконтроллер с распаенным usb, размером 45х18мм. У arduino 14 цифровых входа\выхода, 8 аналоговых, таймеры, ацп и много другого интересного. С помощью скриптового языка python организуется связь роутера и мк.
И так, для примера заливаем такой код в мк:
PHP код:
int ledPin =  9;    // LED connected to digital pin 9
void setup()
{
  
// start serial port at 9600 bps:
  
Serial.begin(9600);
  
// initialize the digital pin as an output:
  
pinMode(ledPinOUTPUT);     
}

void loop()
{
  
// if we get a valid byte
  
if (Serial.available() > 0) {
    
// get incoming byte:
    
byte inByte Serial.read();
    switch (
inByte)
    {
        case 
'H':
        
digitalWrite(ledPinHIGH);   // set the LED on
        
Serial.print("Led is ON");
        break;
        case 
'L':
        
digitalWrite(ledPinLOW);   // set the LED oFF
        
Serial.print("Led is OFF");
        break;
    }        
  }

Т.е. по приходу символа 'H' мк выдаст логическую 1 на выходе 9, а по приходу 'L' выдаст логический 0. Если между выводом 9 и Gnd припаять светодиод катодом к Gnd через резистор 100 ом, то увидим как он будет зажигаться. А используя Serial Monitor, который поставляется вместе с arduino и служит для отладки, можно увидеть ответ от мк: "Led is ON","Led is OFF"
Теперь осталось научить роутер общаться с arduino через usb.
1. делаем пассы руками над роутером:
Цитата:
insmod ftdi_sio
mknod /dev/ttyUSB0 c 188 0
chmod 666 /dev/ttyUSB0
stty -crtscts -hupcl 9600 < /dev/ttyUSB0
эти хитрые строчки надо добавить в post-boot, незабыв апосля: flashfs save && flashfs commit && flashfs enable.
Теперь подключаем arduino. Выполняем:
lsusb
dmesg
Должны увидеть упоминания про FTDI FT232BM.
Значит все ок и роутер дал девайсу имя /dev/ttyUSB0.
2. Ставим python3. Как-то так:
Цитата:
ipkg update
ipkg install python3
3. Ставим pyserial, он облегчит нам доступ из скриптов питона к arduino. http://pyserial.sourceforge.net/. Т.е. загружаем и распаковываем pyserial-2.5-rc2.tar.gz (ну или более поздний, если будет). И запускаем установку: python setup.py install. Однако если в системе установлен питон более старой версии, то надо явно указать что ставим для питона3: python3 setup.py install. Либо в скрипте setup.py указать путь к третьему питону, либо предварительно пошаманить в каталоге с бинарями: ln -s python3.1 python.
4. Теперь запускаем python3, и пишем в него (или то же самое можно делать в скрипте):
Цитата:
>>> import serial
>>> ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=2)
>>> ser.write(b'H')
>>> ser.read(9)
>>> ser.write(b'L')
>>> ser.read(9)
>>> ser.close()
Коментировать не буду, и так понятно. Есть документация к pyserial. Есть еще полезная команда ser.inWaiting(), возвращает кол-во байт в буфере, но она почему-то в скриптах не работает.
Далее можете подключать к выводам мк реле, лампочки, моторчики, датчики, RFM-радиомодули, и т.п. и развлекаться с автоматизацией.
Я, например, успешно научил Carduino работать с flash-памятью SST25vf010 по SPI-интерфейсу, программатора нет, а надо было прошить.
Сейчас собираюсь прошить Carduino код чтоб работать с lcd дисплеем от motorola c350, благо есть успешный опыт его подключения к мк от тов. Pashgan, что на chipenable.ru. На экранчик можно будет выводить, например, количество свободного места на роутере, загрузку проца роутера, или температуру за бортом.
Вобщем тема arduino интересная (http://www.arduino.cc/ тут народ много чего выделывает), arduino - автоматизация автомобиля.
Admin вне форума   Ответить с цитированием
Старый 04.06.2011, 10:29   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Продолжение про arduino+wl500gp. Проделана работа по подключению arduino к wl500gp и к lcd-экранчику от телефона motorola c350. Экранчик позволяет рисовать цветную графику.
Что из этого получилось см. на фото. Еще приатачен скрипт для python3. И проект к arduino.
LCD показывает температуру от датчика DS18B20. Роутер периодически отправляет в arduino строку с количеством свободного места на диске и загрузке процессора. Для этого на роутере крутится скрипт на python3 и отсылает команды в роутер используя формат Firmata.
Далее можете подключать к выводам arduino реле, лампочки, моторчики, датчики, RFM-радиомодули и т.п. и развлекаться с автоматизацией.
распиновка lcd
Название: lcd_c350.png
Просмотров: 7095

Размер: 6.3 Кб
Нажмите на изображение для увеличения
Название: carduinoAsus.jpg
Просмотров: 1892
Размер:	85.3 Кб
ID:	138
Вложения
Тип файла: rar c350.rar (10.1 Кб, 764 просмотров)
Тип файла: rar pyduino.rar (4.6 Кб, 694 просмотров)
Admin вне форума   Ответить с цитированием
Старый 07.02.2012, 00:25   #3
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Нашел интересную статью, выкладываю перевод

UberFridge является доморощенный регулятор температуры брожения пива, который я построил из моего старого холодильника. Он работает на Arduino Nano и маршрутизаторе Asus WL520GU. Он может контролировать температуру брожения пива с точностью 0,1°C . Температуру графиков и настроек можно просматривать в веб-интерфейс по WiFi.

До сих пор мое пиво бродило в ведре на кухне. Поскольку пиво обычно бродит около 20° С, это нормально когда не жарко. Но прошлым летом мне пришлось остановить пивоварение на несколько месяцев, так как температура в доме поднялась до 26° C. Для того, чтобы варить круглый год и иметь больше контроля над температурой брожения я начал UberFridge проект. Краткий обзор возможностей, можно посмотреть на видео:


Характеристики
2 датчика температуры: один в брожения пива и один в холодильнике.
ПИД-регулятор пива температуры точностю 0,1° C
Интеллектуальный датчик включения-выключения контроль за температурой холодильника, чтобы держать в диапазоне -0.5 до +0.5 ° C .
Режимы работы: постоянная температура пива, постоянная температура холодильника или профиль температуры пива
4 × 20 символов OLED-дисплей
Запись данных через USB в формате JSON и CSV
Веб-интерфейс по WiFi
Графики пива и история температуры холодильника
Изменение режима работы и установки температуры
Температурный профиль в течении долгого времени может быть установлен в таблицы Google
Arduino можно перепрограммировать через веб-интерфейс

Связь между подсистемами
Самая большая проблема в создании моей бродильни в том, что она работает на самых разных уровнях, все с разными языками программирования. Я новичок в программировании на Python, PHP и JavaScript, так что я многому научился при создании этого проекта.
Нажмите на изображение для увеличения
Название: System-overview_small.png
Просмотров: 890
Размер:	109.9 Кб
ID:	247

Arduino- алгоритм контроля температуры и интерфейс на холодильнике. (C ++)
Маршрутизатор- прошивка DD-WRT Linux с Optware с USB Flash 4GB . (Команды оболочки, в основном, выполняются на PHP)
Python скрипт, выполняет на маршрутизаторе переговоры с Arduino через USB-порт и общается с веб-сервером через AF_UNIX . Температура регистрируется в файлах формата JSON для веб-сервера и CSV файлов для архивирования. (Python с gviz_api и pyserial)
Маршрутизатор работает как веб-сервер Lighttpd для обеспечения веб-интерфейса, где можно рассматривать графики и настройки могут быть изменены. (PHP)
Интерфейс создан с JQuery UI и API визуализаций Google. Графики создаются на стороне клиента, путем объединения нескольких файлов JSON в одной графе. Температурный профиль может быть создан в таблицы Google и загружены в холодильник по нажатию кнопки. (JavaScript + AJAX запросы к PHP)

Исходники проекта
Admin вне форума   Ответить с цитированием
Старый 07.02.2012, 13:11   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Зачем использовать Asus WL-500GU-маршрутизатор?
Чтобы раскрыть весь потенциал с открытым исходным кодом для маршрутизатора, вы можете установить DD-WRT и Optware. Это превращает роутер в WiFi + Линукс. Эта статья дает некоторые указания на действия, которые необходимо принять.
Зачем использовать Asus WL-500GU-маршрутизатор?
Asus WL-500GU маршрутизатор является одним из немногих DD-WRT подходящих маршрутизаторов, которые имеют порт USB. Это делает его отличным выбором для общения с Arduino. С концентратором USB подключенному к маршрутизатору можно подключить Arduino и USB Flash для хранения софта. Версия Asus WL-500GU имеет самую большую по обьему память, но Вы можете выбрать любой маршрутизатор Asus, и если вы хотите запустить памяти тяжелые скрипты Python то не забывайте про память.
Я купил свой маршрутизатор б/у за 15 евро, сравните эту стоимость с WiFi и MMC шилдом для Arduino за 50 долларов каждый.

Наличие маршрутизатора вместо шилда WiFi имеет много преимуществ:
-Маршрутизатор может работать как веб-сервер
-Много места для хранения (4 Гб), с файловой системой
-Доступ к файлам через SSH
-Маршрутизатор может быть WiFi клиентом в домашней сети или точкой доступа в отсутствие других сетей.

Установка DD-WRT на маршрутизаторе
Для установки DD-WRT на маршрутизаторе, чтобы раскрыть его потенциал, следуйте за этим руководством по DD-WRT вики . Я запускаю DD-WRT v24-sp2 (05/17/11) mini-USB, FTP ( SVN пересмотра 17084M NEWD Эко). Он упал в несколько раз, но пока стабильный. Я не знаю, является ли это лучшим выбором или нет?
Сначала я следовал этому руководству по TodBot начал с DD-WRT и Arduino, но только до момента установки драйверов. Я не использую JFFS, потому что я использую USB Flash, а не во внутренней памяти маршрутизатора. Я также не использоваю прокси ser2net чтобы напрямую общаться с Arduino, но я запрашиваю JavaScript PHP что бы спросить Python и чтобы поговорить с Arduino.
Мне потребовалось время, чтобы найти работающие драйверы, поэтому я их выкладываю здесь для вашего удобства.
Я не делал заметки во время установки DD-WRT, поэтому, пожалуйста, используйте инструкцию для помощи.

Установка Optware
Optware превращает ваш маршрутизатор в полнофункциональный Linux, и даже больше возможностей, чем в DD-WRT. Он поставляется со стандартным веб-сервер Lighttpd, автоматическая установка для хранения USB и многое другое.
Потому что она поставляется с менеджером пакетов очень проста в установке питона, pyserial, а все остальное мы узнаем позже. Просто для удовольствия я даже установил Irssi, клиента IRC, чтобы я мог общаться с моим холодильником. Работал очень хорошо на самом деле!
До сих пор самый простой способ установить Optware является Optware, правильный путь к Брату. Для этого мне потребовалось некоторое время, чтобы выяснить:
Цитата:
echo 0 &gt;/proc/sys/net/ipv4/tcp_ecn
Эта команда отключает уведомление, что приводит к ошибкам при Wget пытаясь загрузить исходник для Optware. Запустите его, прежде чем будете пытаться установить. Я добавил его к моей команде запуска в DD-WRT веб-интерфейс (administration->commands). Я также загрузил драйвера USB Serial в код запуска, так что мой код запуска выглядит так:
Цитата:
echo 0 &gt;/proc/sys/net/ipv4/tcp_ecn
insmod /opt/serialdrivers/usbserial.o
insmod /opt/serialdrivers/ftdi_sio.o
insmod /opt/serialdrivers/acm.o
Я использовал GParted Live CD, чтобы создать необходимые разделы на USB Flash. Я использую 2 Гб раздел Optware, 512 Мб своп и 1,5 ГБ для данных.
После установки Optware, отключить все услуги, которые Вам не нужны, так как для скрипта на Python будет нужно много памяти. Только сервисы я запустил автомонтирование, reloc_syslog, Lighttpd и fixtables.
Наконец установил программы, необходимые для UberFridge с ipkg-OPT
Admin вне форума   Ответить с цитированием
Старый 22.02.2012, 19:54   #5
Boris
Banned
 
Регистрация: 22.02.2012
Сообщений: 77
Вес репутации: 0
Boris is on a distinguished road
По умолчанию

У вас получилось запустить UberFridge ?
Boris вне форума   Ответить с цитированием
Старый 22.02.2012, 20:02   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Я не пробовал, это перевод немецкого проекта
Admin вне форума   Ответить с цитированием
Старый 02.04.2012, 17:33   #7
Bagunda
Member
 
Регистрация: 12.03.2012
Возраст: 39
Сообщений: 51
Вес репутации: 0
Bagunda is on a distinguished road
По умолчанию

Вау, WL-500GU для WiFi ардуины. Круто. Я вот что-то на WL-500GU не могу найти описание. Помогите плиз!
И еще - скажите - как роутеру посылать команды, чтобы они обрабатывались ардуиной?
Bagunda вне форума   Ответить с цитированием
Старый 12.05.2012, 00:39   #8
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию

Ну попробуй вот здесь поискать
Отправлять команды можно вот так:
Ставишь ser2net на роутер, вот это запихиваешь в автозагрузку ser2net -C "3001:raw:600:/dev/ttyUSB0:57600 NONE 1STOPBIT 8DATABITS -XONXOFF -LOCAL -RTSCTS"
Далее...
telnet 192.168.1.1 3001
...и твоя команда ардуине...

Последний раз редактировалось stD; 12.05.2012 в 00:56.
stD вне форума   Ответить с цитированием
Старый 13.06.2012, 20:33   #9
andrei
Junior Member
 
Регистрация: 12.06.2012
Сообщений: 1
Вес репутации: 0
andrei is an unknown quantity at this point
По умолчанию

если проект жив то можно по подробнее описать как все действо происходит .
Интересует
1 файл post-boot если его вручную создовать то в какой директории /usr/local/sbin/post-boot если тут то как его создать
2 неполучается установить python3 выподает ошибка,
root@DD-WRT:~# ipkg install python3
ipkg_get_install: ERROR: Cannot find package python3 in /jffs/usr/lib/ipkg/lists


пакет Optware установлен

Последний раз редактировалось andrei; 13.06.2012 в 20:54.
andrei вне форума   Ответить с цитированием
Старый 14.06.2012, 14:29   #10
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Это значит что нет такого пакета,
посмотри список доступных пакетов в репозитории
opkg update
opkg list
Admin вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 16:58. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика