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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.12.2012, 18:03   #51
NEXT
Member
 
Регистрация: 23.11.2012
Сообщений: 47
Вес репутации: 184
NEXT has much to be proud ofNEXT has much to be proud ofNEXT has much to be proud ofNEXT has much to be proud ofNEXT has much to be proud ofNEXT has much to be proud ofNEXT has much to be proud ofNEXT has much to be proud ofNEXT has much to be proud of
По умолчанию

Цитата:
Сообщение от andr128 Посмотреть сообщение
Может этот переключатель вам поможет.
К сожалению не поможет, но вот нашел проект отдаленно похожий, что я хочу сделать http://engenheirando.com/projetos/automacao/
буду изучать....
NEXT вне форума   Ответить с цитированием
Старый 17.12.2012, 21:33   #52
d00m
Senior Member
 
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0
d00m is an unknown quantity at this point
По умолчанию

похоже нет принципиальной возможности в php реализовать toggle button..
нам некуда сохранять промежуточное значение флага..
можно конечно попробовать сохранять данные сессии или тупо писать флажок в какойто файл на диске, но в случае openwrt могут возникнуть трудности..
есть вариант, но он прокатит только если MK не ресетится каждый раз после обращения к порту на котором он висит (а обновление странички с php кодом $serial->deviceOpen(); всегда ресетит мой Uno rev3 ) - нужно сразу после нажатия кнопки определять - "горит лампочка" или нет. если вкл - то кнопка выключает, если наоборот, то наоборот.
d00m вне форума   Ответить с цитированием
Старый 17.12.2012, 21:42   #53
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Состояние должно сохраняться в переменную ардуино и вы должны его при обращении к ардуино читать и анализировать в php и затем показывать на странице.
Как то так. Вообще низкоуровневое обращение к serial порту нужно писать на C, а не на php т.е. нужен какой-то промежуточный сервер который будет посредником между php и ардуиной.
andr128 вне форума   Ответить с цитированием
Старый 17.12.2012, 22:16   #54
d00m
Senior Member
 
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0
d00m is an unknown quantity at this point
По умолчанию

если состояние нужно сохранять в переменную, то эта переменная должна инициализироваться при старте скетча и лучше всего если она при старте будет присваиваться текущему состоянию "лампочки": 0 - выключено, 1 - включено.
значит нам нужно уметь считывать это состояние при старте..
скажем, в случае светодиода, наверное это просто.. в случае серва - уже нет..
d00m вне форума   Ответить с цитированием
Старый 17.12.2012, 23:02   #55
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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
По умолчанию

На случай сброса контроллера, лучше писать состояние в EEPROM энергонезависимую память
Admin вне форума   Ответить с цитированием
Старый 17.12.2012, 23:06   #56
d00m
Senior Member
 
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0
d00m is an unknown quantity at this point
По умолчанию

Цитата:
лучше писать состояние в EEPROM энергонезависимую память
не пойму куда это.. можно пример ?
я до сих пор бодаюсь с авторесетом своего МК..
или научится запускать его в openwrt без ресета или както научится не дергать сервами при запуске скетча.. ничего в голову не идет..
d00m вне форума   Ответить с цитированием
Старый 17.12.2012, 23:08   #57
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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
По умолчанию

Вот пример
вместо переменной addr нужно указать адрес ячейки EEPROM
Диапазон адресов для Atmega328 от 0 до 1023

PHP код:
#include <EEPROM.h>
byte val=55;

void setup()  

EEPROM.write(addrval); // сохраняем в EEPROM 

val EEPROM.read(addr); // считываем значение из EEPROM[/QUOTE]
}

void loop() 
{  } 
Admin вне форума   Ответить с цитированием
Старый 17.12.2012, 23:43   #58
d00m
Senior Member
 
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0
d00m is an unknown quantity at this point
По умолчанию

спасибо. возможно это поможет правильно инициализировать сервы в моем случае..
только мне же нужно сохранять данные в loop - после каждого изменения положения серва. ведь питание может выключится в любой момент..
d00m вне форума   Ответить с цитированием
Старый 18.12.2012, 00:15   #59
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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
По умолчанию

Это только пример записи и считывания.
Вставляйте запись и чтение в любое место кода, только не забывайте что число циклов записи в EEPROM Arduino 10000 циклов
Admin вне форума   Ответить с цитированием
Старый 18.12.2012, 00:31   #60
d00m
Senior Member
 
Регистрация: 06.11.2012
Сообщений: 153
Вес репутации: 0
d00m is an unknown quantity at this point
По умолчанию

а вот этот лимит - это уже не хорошо.. лично мне не нравится такое решение..
буду копать в сторону отключения авторесета..
d00m вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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