Results 31 to 45 of 120

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

Threaded View

Previous Post Previous Post   Next Post Next Post
  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 22:32.

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
  •