Ключевое ?лово

vk

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Железо для умного дома

ТЕМА: Конструктор кода в конструкторе прошивки ESP8266

Конструктор кода в конструкторе прошивки ESP8266 29 Нояб 2017 09:08 #20568

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7195
  • Спасибо получено: 1114
  • Репутация: 194
Документация по КК:

GPIO_ALL_GET(x) - чтения состояния входа или выхода GPIO, в том числе расширителей портов.
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.

Конструктор кода в конструкторе прошивки ESP8266 29 Нояб 2017 09:14 #20569

  • abv2003
  • abv2003 аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 69
  • Спасибо получено: 8
  • Репутация: 2
Я наоборот с удаленного устройства через Virtual GPIO изменяю состояние локального GPIO (всегда есть незадействованные). На локальном устройстве отслеживаю его состояние. Работает быстрее и можно менять состояние через OpenHAB.
Администратор запретил публиковать записи гостям.

Конструктор кода в конструкторе прошивки ESP8266 29 Нояб 2017 10:19 #20570

  • serenya
  • serenya аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 50
  • Спасибо получено: 8
  • Репутация: 3
Мне нужен этакий пинг тест, включилось устройство, выставило 1 на порту. Пока есть эта единица - держать включенным гпио на локальном устройстве. А если его удаленно включать, то не будет известно что его надо выключить при выключении удаленного устройства. Опенхабы и иже с ним считаю в данном случае излишеством.
Администратор запретил публиковать записи гостям.

Конструктор кода в конструкторе прошивки ESP8266 29 Нояб 2017 10:24 #20571

  • serenya
  • serenya аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 50
  • Спасибо получено: 8
  • Репутация: 3
Adminhs пишет:
Документация по КК:

GPIO_ALL_GET(x) - чтения состояния входа или выхода GPIO, в том числе расширителей портов.

Спасибо, вроде получилось. К сожалению тут не сказано про VGPIO, по этому не пробовал.
Администратор запретил публиковать записи гостям.

Конструктор кода в конструкторе прошивки ESP8266 02 Дек 2017 21:54 #20675

  • Smart111
  • Smart111 аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 150
  • Спасибо получено: 14
  • Репутация: 1
Следующий код облегчает работу с PowerMonitor
//собирая в конструкторе выбирать : Количество настроек - 2 настройки и Глобальные переменные - 5 . 
int32_t x0=24297850 ; //число, что бы получить показания счетчика Вт(показания электросчетчика в Вт/ч - pmwh)
int32_t x1 ; // последние оплаченные показания


void ICACHE_FLASH_ATTR
startfunc(){
    //установка состояния  старте
}
void ICACHE_FLASH_ATTR
timerfunc(uint32_t  timersrc)
{
if (sensors_param.cfgdes[0] != x0){ valdes[0] = sensors_param.cfgdes[0];} else { sensors_param.cfgdes[0] = valdes[0];}  //число, что бы получить показания счетчика Вт/ч
x0=sensors_param.cfgdes[0];
if (sensors_param.cfgdes[1] != x1){ valdes[1] = sensors_param.cfgdes[1];} else { sensors_param.cfgdes[1] = valdes[1];}  //последние оплаченные показания в Вт/ч
x1=sensors_param.cfgdes[1];

//Показания электросчетчика Вт
sensors_param.cfgdes[2] = pmwh + (valdes[0]);
valdes[2] = sensors_param.cfgdes[2];

//Расход с момента последней оплаты
sensors_param.cfgdes[3] = (valdes[2])-(valdes[1]);
valdes[3] = sensors_param.cfgdes[3];

//Показания электросчетчика кВт
sensors_param.cfgdes[4] = (valdes[2])/1000;
valdes[4] = sensors_param.cfgdes[4];

}

void webfunc(char *pbuf) 
{
os_sprintf(HTTPBUFF," Показания счетчика <b>%d Вт</b><Br> ", pmwh+(valdes[0]) ); 
os_sprintf(HTTPBUFF," Расход с момента оплаты  <b>%d Вт</b> ",pmwh+(valdes[0])-(valdes[1]) );
}
Код рабочий.
Хочу попросить автора этого кодаd77 допилить мой код, до такой красоты, как в термостате.
Администратор запретил публиковать записи гостям.

Конструктор кода в конструкторе прошивки ESP8266 04 Дек 2017 19:23 #20710

  • Lsar
  • Lsar аватар
  • Не в сети
  • Завсегдатай
  • Сообщений: 190
  • Спасибо получено: 15
  • Репутация: 1
Переделал код уважаемого ansh, для управления тв самсунгом:
static uint16_t cdron1[]={4550,4450, 600,1650, 600,1650, 600,1600, 600,550, 600,500, 600,550, 600,500, 600,500, 600,1650, 600,1650, 600,1600, 600,550, 600,500, 600,550, 600,500, 600,500, 600,550, 600,1600, 600,550, 600,500, 600,500, 600,550, 600,500, 600,550, 600,1600, 600,550, 600,1600, 600,1650, 600,1650, 600,1650, 600,1600, 600,1650, 600};//код вкл.выкл. пульта
static uint16_t cdron2[]={4650,4400, 600,1650, 600,1650, 550,1650, 600,550, 550,600, 600,450, 650,500, 600,550, 550,1700, 550,1650, 600,1650, 600,500, 600,550, 600,550, 550,550, 600,550, 550,1700, 550,1600, 600,1700, 600,500, 550,600, 600,500, 550,600, 550,550, 550,600, 600,500, 550,600, 550,1650, 600,1650, 600,1650, 600,1650, 600,1600, 550};//громче
static uint16_t cdron3[]={4550,4500, 600,1600, 600,1650, 600,1650, 600,500, 600,550, 600,500, 600,500, 600,550, 600,1600, 600,1650, 600,1650, 600,500, 600,550, 600,500, 600,500, 600,550, 600,1650, 550,1650, 600,550, 600,1600, 600,550, 600,500, 600,550, 550,550, 600,500, 600,550, 600,1600, 600,550, 600,1650, 550,1650, 600,1650, 600,1650, 600};//тише
static uint16_t cdron4[]={4550,4450, 600,1650, 600,1600, 600,1650, 600,500, 600,550, 600,500, 600,550, 600,500, 600,1650, 600,1600, 600,1650, 600,550, 600,500, 600,500, 600,550, 600,500, 600,500, 600,1650, 600,550, 600,500, 600,1650, 600,500, 600,500, 600,550, 600,1600, 650,500, 600,1650, 600,1600, 600,550, 600,1600, 600,1650, 600,1650, 600};//канал_выше
static uint16_t cdron5[]={4550,4450, 600,1600, 600,1650, 600,1650, 600,500, 600,550, 600,500, 600,500, 600,550, 600,1600, 600,1650, 600,1650, 600,500, 600,550, 600,500, 600,500, 600,550, 600,500, 600,550, 600,500, 600,500, 600,1650, 600,500, 600,550, 600,500, 600,1650, 600,1650, 600,1600, 600,1650, 600,500, 600,1650, 600,1650, 600,1650, 600};//канал_ниже

void webfunc(char *pbuf) {
os_sprintf(HTTPBUFF,"<br>GPIO15_TvOff");
os_sprintf(HTTPBUFF,"<br>GPIO14_TvGromko");
os_sprintf(HTTPBUFF,"<br>GPIO13_TvTishe");
os_sprintf(HTTPBUFF,"<br>GPIO12_TvKanalWische");
os_sprintf(HTTPBUFF,"<br>GPIO4_TvKanalNige");
 }
 
 void ICACHE_FLASH_ATTR
startfunc(){
// выполняется один раз при старте модуля.

}
void ICACHE_FLASH_ATTR
 timerfunc(uint32_t  timersrc) {
 
 if(digitalRead(15)==1)
{
ir_remote_send_raw(cdron1, 68, 38000);
delay(5);
digitalWrite(15,0);
}

if(digitalRead(14)==1)
{
ir_remote_send_raw(cdron2, 68, 38000);
delay(5);
digitalWrite(14,0);
}

if(digitalRead(13)==1)
{
ir_remote_send_raw(cdron3, 68, 38000);
delay(5);
digitalWrite(13,0);
}

if(digitalRead(12)==1)
{
ir_remote_send_raw(cdron4, 68, 38000);
delay(5);
digitalWrite(12,0);
}

if(digitalRead(4)==1)
{
ir_remote_send_raw(cdron5, 68, 38000);
delay(5);
digitalWrite(4,0);
}
}

На перовой странице обозвал кнопки. Но пришлось использовать гпио ESP. В связи с этим вопрос. Как не тратить гпио модуля таким расточительным способом? даже гпио6 не смог задействовать, не работает код, если гпио не настроено на выход.


кстати, пытался управлять так
http://192.168.0.110/irrawremote?hz=38000&data=11c61162025806720258064002580672025801f402580226025801f402580226025801f402580672025806400258067202580226025801f4025801f402580226025801f4025801f40258067202580226025801f4025801f402580226025801f4025801f4025806720258022602580640025806720258067202580640028a0640025806720258
но сервер надолго зависает потом, даже браузер зависает, если написать в строке поиска.
Последнее редактирование: 04 Дек 2017 19:33 от Lsar.
Администратор запретил публиковать записи гостям.
Модераторы: FlyRouter
Время создания страницы: 0.162 секунд

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.