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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.04.2015, 08:29   #1
Prana
Junior Member
 
Регистрация: 17.03.2015
Сообщений: 27
Вес репутации: 0
Prana is an unknown quantity at this point
По умолчанию Модуль "Light Switch"

Модуль для удаленного управления освещением или другими нагрузками

Позволяет реализовать следующие варианты:
1. Выключатель
2. Кнопка без фиксации
3. Триггер (спусковой курок)
4. Диммер

Не забудьте установить драйвер для ардуины

Конфигурировать пины можно в веб интерфейсе модуля, для этого Вам не придется перепрошивать Arduino
Вам достаточно один раз прошить ниже приведенный скетч и подключать нагрузки на любые пины.
Конфигурируете уже все эти пины в самом модуле
Выбор пинов возможен в диапазоне от D0 до D99

Модуль сохраняет настройки, при этом заново генерируется фаил index.cgi, учитывайте, если планируете ручные изменения файла.
Обратная связь пока не реализована, это будет сделано в следующей версии. Данная версия не устанавливает БД, она "легкая".

Для диммера пока только используется пины с поддержкой ШИМ
Для Arduino Nano, UNO и другие на контроллере Atmega88/168/328, пины D3, D5, D6, D9, D10 и D11
Для Arduino Mega, пины начиная с D2 по D13

Код для Arduino
PHP код:
void setup()   
{   
  
Serial.begin(57600);    
}  

void loop()  
{  
    if (
Serial.available()>7)  
    {    
       
uint8_t inByte Serial.read(); 
        if(
inByte == 'D'
        {   
          
inByte Serial.read(); 
          
SortIdev(inByte); 
        }     
    } 


void SortIdev(uint8_t idev

   
  
uint8_t pinDec = (Serial.read()-48)*10;  
  
uint8_t pinUnit = (Serial.read()-48);  
  
uint8_t pin pinDec pinUnit;   
  
uint8_t separator Serial.read();    
   
 if(
separator == '='
 { 
   
uint8_t statHund = (Serial.read()-48)*100
   
uint8_t statDec = (Serial.read()-48)*10
   
uint8_t statUnit Serial.read()-48;  
   
uint8_t stat statHund statDec statUnit;  
    
  switch (
idev)  
  { 
    case 
'S'//выключатель 
      
pinMode(pinOUTPUT);  
      
digitalWrite(pinstat);    
     break; 

    case 
'D'//Dimmer 
      
pinMode(pinOUTPUT);  
      
analogWrite(pinstat);  
     break;    
      
    case 
'B'//кнопка 
      
pinMode(pinOUTPUT);
      if(
stat<2)
       {
         
digitalWrite(pinstat);
       } else 
        if(
stat==2)
         {  
           for (
int i=010i++)
           {
           
digitalWrite(pin1);
           
delay(50);
           
digitalWrite(pin0);
           
delay(50);
           }  
         } 
     break;         
   } 
 }  

Название: light.jpg
Просмотров: 4709

Размер: 35.2 Кб

поведение выключателя: каждое нажатие включает, либо выключает пин, что отображается в интерфейсе
поведение кнопки: включается при нажатии, выключается при отпускании. Если нажимать кнопку на планшете или смартфоне, то "удержания" нажатой кнопки не происходит, нагрузка просто "мигнет"
поведение триггера: при нажатии на пин отправляется 002, обработка зависит от скетча
поведение диммера: значение меняется от 0 до 255, на странице же значение отображается в процентах (0-100%)

важные особенности-ограничения реализации:
1. Таймер задержки работает на стороне браузера, поэтому нельзя уходить со страницы, если нажали кнопку. Одновременно можно запускать только один таймер, несколько - будут глючить.
2. Считывания состояния портов нет.

Последний раз редактировалось Prana; 21.04.2015 в 07:28.
Prana вне форума   Ответить с цитированием
Старый 15.04.2015, 11:19   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Светодиод на ардуине не включается
Попробовал из терминала команды echo 1 > /dev/ttyUSB0 и echo 0 > /dev/ttyUSB0, ардуина эти команды отрабатывает
Admin вне форума   Ответить с цитированием
Старый 15.04.2015, 15:10   #3
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Подправил, только проверить пока не могу
Admin вне форума   Ответить с цитированием
Старый 15.04.2015, 16:09   #4
Scorpion
Junior Member
 
Регистрация: 03.03.2014
Сообщений: 21
Вес репутации: 0
Scorpion is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Проверил, не работает.
А с HTML кнопкой, работает
Scorpion вне форума   Ответить с цитированием
Старый 15.04.2015, 21:20   #5
Prana
Junior Member
 
Регистрация: 17.03.2015
Сообщений: 27
Вес репутации: 0
Prana is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

Цитата:
Сообщение от Scorpion Посмотреть сообщение
Проверил, не работает.
А с HTML кнопкой, работает
нашел досадную багу, уже исправил. Совместно с Admin-ом пытаемся сделать новую версию модуля, с конфигурацией
Prana вне форума   Ответить с цитированием
Старый 15.04.2015, 16:20   #6
mclaren
Junior Member
 
Регистрация: 14.03.2015
Сообщений: 15
Вес репутации: 0
mclaren is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

блин ребят помог бы да возможности нет... такой вопрос созрел, допустим есть 3 кнопки, и каждая будет отсылать 0 и 1 ? или сделано последовательно? 0 1, 2 3 и т.д ? ибо назначать пины на ардуино нужно же под разные команды...
mclaren вне форума   Ответить с цитированием
Старый 15.04.2015, 17:02   #7
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию Re: CyberWrt модуль "HTML Кнопка"

если отправлять идентификатор кнопки , то достаточно 1 и 0
Если без идентификатора , то 1,0, 2,3 и т.д.
Admin вне форума   Ответить с цитированием
Старый 16.04.2015, 00:47   #8
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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
По умолчанию Re: Модуль "Light Switch"

Проверил, модуль работает.
Можете пользоваться
Admin вне форума   Ответить с цитированием
Старый 16.04.2015, 06:24   #9
mclaren
Junior Member
 
Регистрация: 14.03.2015
Сообщений: 15
Вес репутации: 0
mclaren is an unknown quantity at this point
По умолчанию Re: Модуль "Light Switch"

Ребят, а не проще сделать, что-то типо такого?
void loop() {

if (Serial.available() > 0) {

int i = Serial.read()-48;

if (i == 1)digitalWrite(ledPin_1, !digitalRead(ledPin_1));

if (i == 2)digitalWrite(ledPin_2, !digitalRead(ledPin_2));

Или есть сложности с тем что бы отправлять с роутера 0 1 2 3 и т.д? Проще 0 1 и как сказал admin идентификатор кнопки?
mclaren вне форума   Ответить с цитированием
Старый 16.04.2015, 07:49   #10
Prana
Junior Member
 
Регистрация: 17.03.2015
Сообщений: 27
Вес репутации: 0
Prana is an unknown quantity at this point
По умолчанию Re: Модуль "Light Switch"

Цитата:
Сообщение от mclaren Посмотреть сообщение
Или есть сложности с тем что бы отправлять с роутера 0 1 2 3 и т.д? Проще 0 1 и как сказал admin идентификатор кнопки?
с этим никаких сложностей нет, но есть желание сделать довольно универсальное решение, с управлением не только выключателями, но и ШИМ, шаговыми двигателями - в таком случае лучше команду в отдельном пакете присылать
Prana вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 3 (пользователей: 0 , гостей: 3)
 

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

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

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


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


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