smart room

Тема в разделе "Глядите, что я сделал", создана пользователем semolik, 19 апр 2017.

  1. semolik

    semolik Нерд

    использована програма remotexy (pro)
    я решил доработать RGB подсветку по периметру комнаты и сделать её управляемой с телефона, также я доработал лампу добавив в её схему МОП транзистор, у меня также имелась лазерная установка я добавил реле по питанию (с транзистором у неё двигатель не включался) я поставил двигатель лазерной установки через МОП управлять скоростью : Чтобы вот сам Движения проэкт http://remotexy.com/ru/editor/578a13ff2 ... aa8644441 / управлять лентой и лампой также можно с переменных резитосторов и скетч
    Код (C++):
    REMOTEXY_MODE__HARDSERIAL
    #define PINR 11
    #define PING 10
    #define PINB 9
    #define PINW 7
    #define LAMP_PIN 8 // на этот пин выводится авто подсветка по наступлению темноты
    #define POT_PIN A0 // яркость ампы
    #define ШТЫРЕЙ 6
    #define LAMPR_PIN 5
    #define POTR А1
    #define POTG А2
    #define POTB А3
    #include <RemoteXY.h>

    // настройки соединения
    #define REMOTEXY_SERIAL Последовательный
    #define REMOTEXY_SERIAL_SPEED 9600


    // конфигурация интерфейса
    #pragma упаковка (толчок, 1)
    uint8_t RemoteXY_CONF [] =
      {255,9,0,0,0,10,1,6,5,4,
      4,0,3,2,12,47, 1,1,4,0,
      19,2,13,47,4,1,4,0,36,2,
      13,47,6,1,2,0,6,12,25,12,
      2, 2,79,78,0,79,70,70,0,2,
      0,73,11,25,12,2,2,79,78,0,
      79,70,70,0,4,0, 58,3,8,49,
      2,2,2,0,7,29,23,11,2,2,
      115,108,105,100,101,114,0,112,111,116,
      0,4,0,38,4,8,47,2,2, 3,
      3,88,19,8,22,2,1,131,0,23,
      54,21,8,2,1,208,187,208,181,208,
      189,209,130,208,176,0,131,1,2,54,
      20,8,2,2,209,129,208,178,208,181,
      209130, 0,129,0,8,3,22,7,9,
      2.208.187.208.176.208.188.208.191.208,
      176,0,129,0,76,3,20,7,9,2,
      208.187.208.176.208.183.208.181.209.128,
      0,129,0,70,32,18,6,9, 2,0,
      129,0,70,20,18,6,9,1,208,178,
      209,139,208,186,208,187,0,129,0,69,
      34,18,6,9,1,208,187,208,176,208,
      188,208,191,208,176,0,129,0,71,27,
      16, 6,9,1,208,187,208,181,208,189,
      209,130,208,176,0,129,0,64,11,34,
      6,9,1,208,176,208,178,209,130,208,
      190,32,209,128,208,181,208,182,208,184,
      208,188,0};

    // структура определяет вся переменная ваш интерфейс управление
    структурой {

        // входная переменная
      int8_t slider_1; // = 0..100 положение слайдера
      int8_t slider_2; // = 0..100 положение слайдера
      int8_t slider_3; // = 0..100 положение слайдера
      uint8_t switch_1; // = 1 если переключатель включен и = 0 если отключен
      uint8_t switch_2; // = 1 если переключатель включен и = 0 если отключен
      int8_t slider_4; // = 0..100 положение слайдера
      uint8_t switch_3; // = 1 если переключатель включен и = 0 если отключен
      int8_t slider_5; // = 0..100 положение слайдера
      uint8_t select_1; // = 0 если переключатель в положении А, = 1 если в положении B = 2 если в положении C, ...

        // другая переменная
      uint8_t connect_flag; // = 1 , если провод подключен, иначе = 0

    } RemoteXY;
    #pragma упаковка (поп)


    /////////////////////////////////////////////
    // END RemoteXY включают //
    /////////////////////////////////////////////

    #define PIN_SWITCH_1 13
    #define PIN_SWITCH_2 12
    #define PIN_SWITCH_3 3
    INT LDR = 4;

    недействительные установки ()
    {pinMode (LAMPR_PIN, OUTPUT);
      pinMode (POT_PIN, INPUT);
      pinMode (PINR, OUTPUT);
      pinMode (PING, OUTPUT);
      pinMode (PINB, OUTPUT);
      pinMode (ШТЫРИ, ВЫХОД);
      pinMode (POTR, INPUT);
      pinMode (POTG, INPUT);
      pinMode (POTB, INPUT);
      pinMode (PINW, OUTPUT);
      RemoteXY_Init ();

      pinMode (PIN_SWITCH_1, OUTPUT);
      pinMode (PIN_SWITCH_2, OUTPUT);
      pinMode (PIN_SWITCH_3, OUTPUT);

      // TODO вы настроечный код

    }

    пустота петли ()
    {
      RemoteXY_Handler ();

      digitalWrite (PIN_SWITCH_1 (RemoteXY.switch_1 == 0) LOW: HIGH?);
      digitalWrite (PIN_SWITCH_2 (RemoteXY.switch_2 == 0) LOW:? HIGH);
      digitalWrite (PIN_SWITCH_3 (RemoteXY.switch_3 == 0) LOW: HIGH?);
       analogWrite (ШТЫРИ, RemoteXY.slider_4 * 2,55);
      если (RemoteXY.switch_3 == 0) {INT вращение, яркость;
      вращение = analogRead (POT_PIN);
      Яркость = вращение / 4;
      analogWrite (LAMPR_PIN, яркость);}
      если (RemoteXY.switch_3 == 1) {analogWrite (LAMPR_PIN, RemoteXY.slider_5 * 2,55);}
    если (RemoteXY.switch_3 == 0) {INT вращение, яркость;
    вращение = analogRead (POTR);
    Яркость = вращение / 4;
    analogWrite (PINR, яркость);}
    если (RemoteXY.switch_3 == 0) {INT вращение, яркость;
    вращение = analogRead (POTG);
    Яркость = вращение / 4;
    analogWrite (PING, яркость);}
    если (RemoteXY.switch_3 == 0) {INT вращение, яркость;
    вращение = analogRead (POTB);
    Яркость = вращение / 4;
    analogWrite (PINB, яркость);}
    если (RemoteXY.switch_3 == 1) {analogWrite (PINR, RemoteXY.slider_1 * 2,55);}
    если (RemoteXY.switch_3 == 1) {analogWrite (PING, RemoteXY.slider_2 * 2,55) ;}
    если (RemoteXY.switch_3 == 1) {analogWrite (PINB, RemoteXY.slider_3 * 2,55);}
      если (RemoteXY.select_1 == 0) {
        / * текущее состояние А * /
      }
      иначе , если (RemoteXY.select_1 == 1) {если (analogRead (LDR) <800) digitalWrite (PINW, HIGH);
    остальное digitalWrite (PINW, LOW); digitalWrite (PINR, LOW); digitalWrite (PING, LOW); digitalWrite (PINB, LOW);}
        / * текущее состояние B * /
      иначе , если (RemoteXY.select_1 == 2) {если (analogRead (LDR) <800) digitalWrite (LAMP_PIN, HIGH);}
    еще digitalWrite (LAMP_PIN, LOW) ;} // иначе выключает
        / * текущее состояние С * /
     
    ИгорьК нравится это.
  2. semolik

    semolik Нерд

    Screenshot_2017-04-19-13-36-27.png Screenshot_2017-04-19-13-36-34.png
     
    ИгорьК нравится это.
  3. ИгорьК

    ИгорьК Гуру

    Сделано здорово, но в чем smart этой комнаты? Телевизор включается с пульта - он же не становится от этого умным?
     
    NikitOS нравится это.
  4. semolik

    semolik Нерд

    ну типо со смартфона управляется
     
  5. ИгорьК

    ИгорьК Гуру

    :)
     
  6. NikitOS

    NikitOS Король шутов Администратор

    Это точно
     
  7. hook

    hook Нуб

    Прикольно, тоже хочу управлялку для ленты сделать в доме)
     
  8. NikitOS

    NikitOS Король шутов Администратор

    У них и свои есть;);)