Page 1 of 8 123 ... LastLast
Results 1 to 15 of 120

Thread: Домашняя автоматизация или Умный дом

  1. #1

    Thumbs up Домашняя автоматизация или Умный дом

    Предлагается такой способ автоматизации домашнего хозяйства при помощи wl500gp. Покупается arduino или его клон, я взял freeduino nano (freeduino.ru) около 900р (джидаи могут запаять такой сами ) Он представляет из себя avr-микроконтроллер с распаенным usb, размером 45х18мм. У freeduino 14 цифровых входа\выхода, 8 аналоговых, таймеры, ацп и много другого интересного. С помощью скриптового языка python организуется связь роутера и мк.
    И так, для примера заливаем такой код в мк:

    Code:
    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(ledPin, OUTPUT);     
    }
    
    void loop()
    {
      // if we get a valid byte
      if (Serial.available() > 0) {
        // get incoming byte:
        byte inByte = Serial.read();
        switch (inByte)
        {
            case 'H':
            digitalWrite(ledPin, HIGH);   // set the LED on
            Serial.print("Led is ON");
            break;
            case 'L':
            digitalWrite(ledPin, LOW);   // 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. делаем пассы руками над роутером:
    Code:
    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. Как-то так:
    Code:
    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-радиомодули, и т.п. и развлекаться с автоматизацией.
    Я, например, успешно научил freeduino работать с flash-памятью SST25vf010 по SPI-интерфейсу, программатора нет, а надо было прошить.
    Сейчас собираюсь прошить freeduino код чтоб работать с lcd дисплеем от motorola c350, благо есть успешный опыт его подключения к мк от тов. Pashgan, что на chipenable.ru. На экранчик можно будет выводить, например, количество свободного места на роутере, загрузку проца роутера, или температуру за бортом.
    Вобщем тема arduino интересная (http://www.arduino.cc/ тут народ много чего выделывает), есть клон carduino - автоматизация автомобиля.
    Last edited by natural; 03-05-2010 at 23:32.

  2. #2

    Умный дом

    Добрый день!

    Возможно баян, но поиск не нашел.

    Был ли у кого-нибудь опыт устройства "Умного дома" на базе wl500gp

    как я понимаю проблем несколько
    1. Повесить на USB датчики и контроллеры для управления электроникой, снятия параметров и т.д.
    2. Вменяемый софт для управления всем этим хозяйством.

    Очень интересна эта тема, если у кого-то есть опыт или мысли предлагаю обсудить.


    Для чего вообще это надо:
    1. Управление устройствами в доме через интернет или при срабатывании датчиков: например включение обогрева, освещения
    2. управление дверным звонком - разные сигналы в разное время суток и т.д.
    3. Управление замком - можно сделать практически невскрываемый замок, надо только продумать аварийный вариант открывания
    4. выполнение действий при включении какого-либо устройства, например включаем телевизор - автоматически включается видик
    5. Управление камерами в глазке, на лестнице с возможностью онлайн просмотра

    Возможностей еще много, описал только то, что на поверхности

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

  4. Умный дом

    Народ, я ща именно тем и занимаюсь что пытаюсь прилепить к роутеру уже некую существующую систему умного дома. Только вот в чём трабла, отправить даные с роутера на своё устройство я могу, а обратно - никак...
    Что только не делал, поначалу смирился, но подумав немного решил что так непойдёт...
    Вообщем, что на данный момент прикручено к роутеру:
    Переходник на шину RS485(свой) и на этой шине висит один модуль управления жалюзями. Остальные девайсы нецеплял т.к. непашет и это доконца...

    Кто сталкивался с подобной проблемой - отзовитесь

  5. #5

    Управление устройствами с Маршрутизаторо (У меня DIR-320 c прошивкой от Олега)

    Пред история)))
    Почитав статейку вот эту - Что нам стоит Умный дом построить
    Руки зачесались тоже чем-то по управлять с роутера. По расспрашивал друзей, говорят нужно демона писать чтоб слушал порт. Порылся в сишных кодах научился отправлять и принимать байты с собранного, тестового, девайса. Застрял на вопросе - как с браузера отправить и принять данные с С?
    Нашел в форуме busybox_httpd - я туда рою? Как с html связатся с прогой на роутере?

    Охота чтоб не подключать внешние носители.

  6. #6
    Quote Originally Posted by LastLeader View Post
    Пред история)))
    Почитав статейку вот эту - Что нам стоит Умный дом построить
    Руки зачесались тоже чем-то по управлять с роутера. По расспрашивал друзей, говорят нужно демона писать чтоб слушал порт. Порылся в сишных кодах научился отправлять и принимать байты с собранного, тестового, девайса. Застрял на вопросе - как с браузера отправить и принять данные с С?
    Нашел в форуме busybox_httpd - я туда рою? Как с html связатся с прогой на роутере?

    Охота чтоб не подключать внешние носители.
    туда, туда роеш а примеры реализации смотри в вэб морде роутера
    DIR-320 много,+ другие уже тож много + медиа-плееры и планшеты, и все на мипс

  7. #7
    Вообщем научился я отправлять данные на контроллер. Но только с Shell. Делается это через CGI.
    Простой пример двух клавиш: включить, выключить
    Code:
    #!/bin/sh
    #
    # $Id: package.cgi 6240 2007-06-17 22:29:05Z marceln $
    #
    
    
    #
    # HTML Header
    #
    cat << EOF
    Content-type: text/html
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
    <meta name="generator" content="CGI:shell" />
    <meta name="version" content="\$Id: package.cgi 6240 2007-06-17 22:29:05Z marceln $" />
    <title>Neuro WEB Interface</title>
    
    </head>
    
    <body>
    <h1>Test On/Off Led</h1>
    <form methode="GET">
    <table>
    
    </table>
    <input type="submit" name="onled" value="On">
    <input type="submit" name="offled" value="Off">
    </form>
          </body>
    </html>
    EOF
    
    
    NAMEFILTER=.
    
    # QUERY_STRING=task=install&package=atk
    IFS='&'
    set -- ${QUERY_STRING}
    for i in $@
    do
        case ${i%%=*} in    
            offled)
                OFFLED="${i#*=}"
                ;;
            onled)
                ONLED="${i#*=}"
                ;;
            *)
                echo "<b>ERROR</b>: Unkown option '${i}'"
                echo '</body>'
                echo '</html>'
                exit 1
                ;;
        esac
    done
    
    if [ "${ONLED}" != ""  ]
    then
        echo "1" > /dev/usb/tts/0
    fi
       
       if [ "${OFFLED}" != ""  ]
    then
        echo "2" > /dev/usb/tts/0
    fi
    
    echo '</body>'
    echo '</html>'
    Для чайников как я объясняю))) как все работает в действительности.
    есть устройство, оно через адаптер UART (или 5 вольтовыq RS232) -> USB
    чтото наподобие что-то здесь, но у меня взят просто из шнурка для телефона.
    Тогда включаем драйвера устройства, я это сделал по автомату в post-mount
    ну и чтоб по десять раз не бегать туда же втыкаем запуск web сервера на 81 порт.
    Code:
    insmod usbserial.o
    insmod pl2303.o
    busybox httpd -p 81 -h <тут каталог где будет индекс файл сервера>
    в каталоге который вы указали создаем под катоалог cgi-bin туда кладем файл тот что вы создали в нем кладем тот текст что я написал, разрешаем права на чтение запись...
    flashfs save
    flashfs commit
    flashfs enable

    и reboot)))
    По идее появится веб страничка на адресе вашего роутера на 81 порту.
    ссылка примерно такая - http://<IP вашего роутера>:81/cgi-bin/<Название вашего файла со скриптом> Сейчас мой девайс включает лампочку когда на порт попадает 1 а выключает когда попадает 2. (это чтоб было понятно что делает скрипт)
    Сейчас пишу CGI скрипт на си. что сейчас получается вывести на сайт так это фразу Hellow Word))).
    Я только начинаю писать на Си
    Может кто поможет с етим?
    вот пример программы на си чтоб вывести на страничку знаменитую фразу)):
    Code:
    #include <stdio.h>
    
    int main()
    {
        printf("Content-Type: text/html\n\n");
        printf("<h1>Hello World!</h1>\n");
    }
    Научился читать данные на Си с устройства
    Это делается примерно так:
    Code:
    #include <stdio.h> /* Standard input/output definitions */
    #include <string.h> /* String function definitions */
    #include <unistd.h> /* UNIX standard function definitions */
    #include <fcntl.h> /* File control definitions */
    #include <errno.h> /* Error number definitions */
    #include <termios.h> /* POSIX terminal control definitions */
    //#include <iostream>
    
    //using namespace std
    int main(void)
    {
    int n;
    int fd; /* File descriptor for the port */
    char buf[200];
    struct termios options;
    
    fd = open("/dev/usb/tts/0", O_RDWR | O_NOCTTY | O_NONBLOCK);
    if (fd == -1) perror("open_port: Unable to open /dev/ttyS0 - ");
    else
    { 
    fcntl(fd, F_SETFL, 0);
    
    tcgetattr(fd, &options); 
    cfmakeraw(&options);
    
    /************************************************************************/
    // c_cflag
    options.c_cflag |= CS8;
    options.c_cflag |= PARENB;
    options.c_cflag &= ~CSTOPB;
    options.c_cflag |= CREAD; // Enable Receiver
    options.c_cflag |= CLOCAL; // Ignore modem control lines.
    
    cfsetispeed(&options, B9600);
    cfsetospeed(&options, B9600);
    
    tcsetattr(fd, TCSAFLUSH, &options);
    tcflush(fd, TCIOFLUSH); /**/
    
    // Main code   
    char buf = 0;
    while ( buf != 'A') {
    
    read (fd, &buf, 1);
    
    printf ("%c\n",buf);
    }
    
      
    }
    }
    Сейчас у меня задача:
    Написать демона чтоб слушал порт tts и CGI на си чтоб общался с демоном и выдавал инфу на сайт.

    По поводу самого интересного вопроса. Какое устройство я буду использовать)))
    Ответ прост))) Я инженер конструктор. Это первый проект который я хотел бы поставить на производство. Первая плата уже на заводе. Скоро буду собирать. Постараюсь чтоб она была доступна.

    Читаю книжки по С, Но не могу найти толковых примеров про написание CGI скриптов. мне нужно просто вывести клавишу на сайт и принять данные с устройства и поместить на той же веб-странице.
    Кто может помочь по данному вопросу буду очень признательный... Охота сделать проект овпенсорным.

  8. #8
    Сегодня пришла печятка с завода))) По идее на следующей неделе уже будет готово 3 опытных образца

  9. #9

    умный дом

    добрый всем день!хочу переделать вебморду и создать услугу мониторинга недвижимости. ищу партнеров.

  10. #10
    Доделал первый вариант контроллера. Промахи есть но получился довольно симпотный


    Теперь буду кодить. Один, одинешенький(((.
    Last edited by LastLeader; 21-10-2010 at 10:48.

  11. #11
    Quote Originally Posted by LastLeader View Post
    Доделал первый вариант контроллера. Промахи есть но получился довольно симпотный
    Теперь буду кодить. Один, одинешенький(((.
    Приветствую!
    Проблема бюджетного умного дома стоит остро.
    Беда в том, что надо иметь дом, уметь немного паять и кодить и быть жадным до покупки дорогих поделок
    Моя автоматизация удобно-уютного дома началась с датчиков температуры DS18B20 и кардшаринга на роутере.
    Есть мысль прикруть еще всякие ардуины-фридуины туда.

    Что делает твой контроллер? Его спецификация? цена?

  12. #12
    Quote Originally Posted by nivlad View Post
    Приветствую!
    Проблема бюджетного умного дома стоит остро.
    Беда в том, что надо иметь дом, уметь немного паять и кодить и быть жадным до покупки дорогих поделок
    Моя автоматизация удобно-уютного дома началась с датчиков температуры DS18B20 и кардшаринга на роутере.
    Есть мысль прикруть еще всякие ардуины-фридуины туда.

    Что делает твой контроллер? Его спецификация? цена?
    Моя автоматизация началась с увеличения Робототехникой)))
    Прикручивать других производителей не хочу, хочу сделать доступную автоматику. Для офисов и частного дома, для начала. В будущем промышленные.
    Контроллер может клацать релюхами (250В 10А) есть 8 входо/выходов на которые можно подцепить:
    1. Даласокий протокол.(1-Ware)
    2. Сухие контакты (всякие датчики и кнопки)
    3. платы расширения релле
    4. плата ИК приемник/передатчик
    5. плата радио брелка
    6. Считыватели RIFD карточек

    Доп платы еще не разработаны но они очень простые. Когда появится потребность сделаем)))

    Цену пока не придумал (Не забывай я из Украины). В начале платы будут дороже Арудион))) Пока не налажены связи с пставщиками, сами платы не отточены. В будущем хочу спустится где-то до 25-30$ пока наверно будет раза в два дороже.
    Last edited by LastLeader; 21-10-2010 at 15:11.

  13. #13
    Quote Originally Posted by LastLeader View Post
    В будущем хочу спустится где-то до 25-30$ пока наверно будет раза в два дороже.
    К этому бы еще веб-интерфейс в роутере, с рабочими скриптами. И может получится неплохой начальный набор УД. что то вроде раздела "установка программ для чайника"
    Для меня приемлемая цена - не более 50 уе.
    так что 1 потенциальный заказчик у тебя есть

    Посмотри еще ссылочки:
    http://smart-andy.livejournal.com/
    http://ab-log.ru/smart-house

  14. #14
    Quote Originally Posted by nivlad View Post
    К этому бы еще веб-интерфейс в роутере, с рабочими скриптами. И может получится неплохой начальный набор УД. что то вроде раздела "установка программ для чайника"
    Для меня приемлемая цена - не более 50 уе.
    так что 1 потенциальный заказчик у тебя есть

    Посмотри еще ссылочки:
    http://smart-andy.livejournal.com/
    http://ab-log.ru/smart-house
    Веб интерфейс уже по немногу пишу (хотя если б кто-то помог был очень рад, так как программирование в буквальном смысле начал заниматься месяц назад). Он не может получится а он получится))) Посмотрел на те две ссылки, немного примитивно. Я хочу на эти девайсы поставить мини операцыонку с возможностью до устанавливать маленькие проги. Чтоб не опытному пользователю нужно было ставить только галочки а не изучать Ассемблер или С/С++)))

    Я скоро хочу подключит веб-камеру к роутеру и дать возможность по управлять этим устройством с интернета.

  15. #15
    Эх... тоже год назад где-то занялся умным домом. Точнее это должна была быть охранно-пожарная сигнализация + все остальные плюшки, которые позволяет 1-wire (мониторинг t, управление какой-то нагрузкой и т.п.). Делал отдельный контроллер на atmega16 который мониторит охранно-пожарные датчики, в случае чего, сигнализирует, и позволяет ставить/снимать объект с охраны таблетками ibutton. На атмеге консоль, через которую можно наблюдать за всем этим + рулить другими датчиками. Дальше планировалось этот контроллер цеплять к роутеру, чтобы через него (web-интерфейс) можно было управлять/мониторить всем этим делом. atmegу процентов на 80 доделал (написал софт и отладил на железе) до роутера руки так и не дошли, в общем, энтузиазм пропал...

Page 1 of 8 123 ... LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •