Для детской игры мне нужен светофор с радио управлением. У меня уже есть Z-Wave контроллер RaZberry, поэтому и светофор я решил сделать с управлением по Z-Wave. Суть проста: 4 разноцветные лампочки управляются с помощью 4-х реле (четвертая — синяя, режим турбо).
Для разработки своего Z-Wave устройства с 4-мя реле я выбрал плату Z-UNO второй версии, которая стала более компактная.

Программирование и заливка прошивки осуществляются в Arduino IDE. Для работы с Z-Wave к синтаксису Arduino добавлены специфичные Z-Wave функции.

Модули реле используются 5 вольтовые, управляемые оптопарой PC817C (datasheet), подключены к ножкам 9,10,11,12. Стоит обратить внимание, что максимальный ток проходящий через ножку Z-UNO может быть не более 8мА, поэтому ограничиваем ток резистором на 220Ом.

Скетч пишется на Си с возможностью использовать Arduino функции и специфичные Z-Wave вызовы.

Скетч 4-х канальное Z-Wave реле
/*
*
* 4 Relays controlled thouth resistors 220Omh and optocouplers 817С
* Off — HIGH
* On — LOW
*/

// Pins definitions
#define LedPin1 9
#define LedPin2 10
#define LedPin3 11
#define LedPin4 12

// Global variables to store data reported via getters
byte switchValue1 = 1;
byte switchValue2 = 1;
byte switchValue3 = 1;
byte switchValue4 = 1;

ZUNO_SETUP_SLEEPING_MODE(ZUNO_SLEEPING_MODE_ALWAYS_AWAKE);

// Set up 10 channels
ZUNO_SETUP_CHANNELS(
ZUNO_SWITCH_BINARY(getterSwitch1, setterSwitch1),
ZUNO_SWITCH_BINARY(getterSwitch2, setterSwitch2),
ZUNO_SWITCH_BINARY(getterSwitch3, setterSwitch3),
ZUNO_SWITCH_BINARY(getterSwitch4, setterSwitch4)
);

void setup() {
// set up I/O pins. Analog and PWM will be automatically set up on analogRead/analogWrite functions call
pinMode(LedPin1, OUTPUT);
pinMode(LedPin2, OUTPUT);
pinMode(LedPin3, OUTPUT);
pinMode(LedPin4, OUTPUT);
}

void loop() {
// Empty
}

// Getters and setters

void setterSwitch1(byte value) {
digitalWrite(LedPin1, (value > 0)? LOW: HIGH);
switchValue1 = value;
}

byte getterSwitch1(){
return switchValue1;
}

void setterSwitch2(byte value) {
digitalWrite(LedPin2, (value > 0)? LOW: HIGH);
switchValue2 = value;
}

byte getterSwitch2(){
return switchValue2;
}

void setterSwitch3(byte value) {
digitalWrite(LedPin3, (value > 0)? LOW: HIGH);
switchValue3 = value;
}

byte getterSwitch3(){
return switchValue3;
}

void setterSwitch4(byte value) {
digitalWrite(LedPin4, (value > 0)? LOW: HIGH);
switchValue4 = value;
}

byte getterSwitch4(){
return switchValue4;
}

Заливаем скетч в Z-UNO, после чего добавляем наше устройство в Z-Wave контроллер. Немного кастомизируем иконки и пульт управления светофором готов.


На телефоне веб интерфейс RaZberry тоже не плохо выглядит.


Также этим светофором можно управлять с других Z-Wave устройств, например брелока Key Fob с 4 кнопками.


В игре я сам буду управлять светофором в зависимости от дорожной ситуации, но с помощью дополнительных датчиков, расписания и приложений RaZberry можно было бы и автоматизировать систему.


Плата Z-UNO позволяет разрабатывать Z-Wave устройства любого типа: реле, диммеры, датчики освещенности, движения, расстояния и многие другие. Z-UNO это одно из самых дешевых Z-Wave устройств. За 3000р вы можете сделать например 10-канальное реле или 10 канальный RGBW модуль! Это очень круто!

Комментарии (12)


  1. sisaenkov
    31.03.2016 17:13

    Еще бы найти это чудо в продаже.


    1. aivs
      31.03.2016 17:21

      Через 2 недели с производства придут Z-UNO второй версии. Чуть-чуть подождать.


  1. impetus
    31.03.2016 18:45

    Э-э-э… Сколько лет детям? Вы не опасаетсь внедрить им несколько неправильное понимание логики работы настоящих светофоров? т.е. понятно что игра, понарошку и всё такое прочее, но рефлексы вещь долгоиграющая — иногда через столько лет срабатывают (типа эффект велосипеда — раз научивись хрен разучишься) и иногда весьма неожиданно.


    1. impetus
      31.03.2016 18:52

      во, нашёл:
      image
      полный размер:
      http://olga.ru.com/travel/india/deli2/2910.jpg
      угадай страну по светофору


      1. AlexanderG
        31.03.2016 19:43

        Угадай страну по фрагменту ссылки: india/deli2/
        А в метро, кстати, синий есть:
        image


        1. Lethal_Weapon
          01.04.2016 13:46

          Синий и бело-лунный используются на железной дороге для маневровых составов (вместо красного и зелёного).


          1. AlexanderG
            02.04.2016 18:15

            Так точно. Еще бывает два белых, маневры на свободный путь со скоростью до 40 км/ч.
            А в метро синий это разрешение движения по показаниям АЛС-АРС, белый разрешает маневры, два белых разрешают маневры в направлении главных путей (при движении с парковых путей депо).


            1. Lethal_Weapon
              05.04.2016 14:07

              Спасибо (не могу поставить плюс).


      1. Lethal_Weapon
        31.03.2016 21:20

        В США, например, тоже есть светофоры с 4 сегментами — четвёртый в качестве доп. секции.


  1. aivs
    31.03.2016 23:39

    Дети такого возраста, что уже знают на какой сигнал ехать можно, а на какой нет. Да и синий должен включаться в исключительных случаях, в основном он выключен.


  1. VGusev2007
    01.04.2016 18:51

    Спасибо за статью. Буду весьма рад, если расскажете что за светодиодные лампы используются?


    1. aivs
      01.04.2016 19:50

      Красная Feron, остальные http://horoz-electric.ru/shop/good/jcdr_svetodiod