ESP8266

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Skull
Сообщения: 38
Зарегистрирован: Вт фев 17, 2015 1:52 pm
Благодарил (а): 11 раз
Поблагодарили: 0

Re: ESP8266

Сообщение Skull » Ср фев 18, 2015 10:15 am

Я уже пробовал ложить этот код- ничего не происходит. Или ручки ровнять пора....
А тот что выше- сейчас попробую и отпишусь
kostya066 писал(а): Этот код правильный, но у вас в классе объект называется ID устройство.
Я не силен в PHP, но делал как в Вики- там тоже так вроде- объект как ID....

UPD Данные появились, спасибо!!!
Skull
Сообщения: 38
Зарегистрирован: Вт фев 17, 2015 1:52 pm
Благодарил (а): 11 раз
Поблагодарили: 0

Re: ESP8266

Сообщение Skull » Ср фев 18, 2015 7:15 pm

Теперь родился второй вопрос- если переменные мы сделали глобальными- как подключить другие модули ??
И как должен работать код, который давали ранее ? Может имеет смысл его попробовать чтобы иметь возможность подключить несколько модулей
kostya066
Сообщения: 53
Зарегистрирован: Чт ноя 27, 2014 10:43 am
Благодарил (а): 7 раз
Поблагодарили: 13 раз

Re: ESP8266

Сообщение kostya066 » Ср фев 18, 2015 9:36 pm

Skull писал(а):Теперь родился второй вопрос- если переменные мы сделали глобальными- как подключить другие модули ??
И как должен работать код, который давали ранее ? Может имеет смысл его попробовать чтобы иметь возможность подключить несколько модулей

Код: Выделить всё

$light=$params['light'];  //Данные с датчика BH1750
$ds=$params['ds'];        //Данные с датчика DS18B20
$bmpt=$params['bmpt'];  //Данные с датчика BMP (температура)
$bmpp=$params['bmpp'];  //Данные с датчика BMP (давление)
$dhtt1=$params['dhtt1']; //Данные с первого датчика DHT (температура)
$dhth1=$params['dhth1'];  //Данные с первого датчика DHT (влажность)
$dhtt2=$params['dhtt2']; // Данные со второго датчика DHT (температура)
$dhth2=$params['dhth2'];  //Данные со второго датчика DHT (влажность)
$idesp=$params['idesp'];  //ID устройства
$ver=$params['ver'];     //Версия прошивки
$vdd=$params['vdd']; //Напряжение на модуле
$freemem=$params['freemem']; //Объем свободной памяти модуля
setGlobal(($idesp.".light"),$light);
setGlobal(($idesp.".ds"),$ds);
setGlobal(($idesp.".bmpt"),$bmpt);
setGlobal(($idesp.".bmpp"),$bmpp);
setGlobal(($idesp.".dhtt1"),$dhtt1);
setGlobal(($idesp.".dhtt2"),$dhtt2);
setGlobal(($idesp.".dhth1"),$dhth1);
setGlobal(($idesp.".dhth2"),$dhth2);
setGlobal(($idesp.".idesp"),$idesp);
setGlobal(($idesp.".ver"),$ver);
setGlobal(($idesp.".vdd"),$vdd);
setGlobal(($idesp.".freemem"),$freemem); 
с этим кодом точно знаю что можно хоть сколько подключать модулей. у самого 3 модуля в сети.
А в объектах должно быть к примеру:
ESP8266
-ID устройства.
-ID устройства.
-ID устройства.
За это сообщение автора kostya066 поблагодарил:
Skull (Ср фев 18, 2015 9:53 pm)
Рейтинг: 1.16%
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: ESP8266

Сообщение Amarok » Чт фев 19, 2015 5:32 am

А как из сценария создать объект, если его нет?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
AirKing
Сообщения: 87
Зарегистрирован: Вс фев 01, 2015 10:43 pm
Откуда: Муром
Благодарил (а): 16 раз
Поблагодарили: 7 раз

Re: ESP8266

Сообщение AirKing » Чт фев 19, 2015 4:51 pm

Всем привет.
А подскажите пож. у вас данные модули устойчиво работают?
мой что то постоянно виснет, пинг на него идет 30-1500 мс, и каждые 15-12 пакетов обрывается.
Веб морда вообще тупит. главная страница открывается, остальные могут вообще не открыться.
питание подаю от стабилизатора 3.3в.
Получи Cashback до 18% с покупок
MaksMS82
Сообщения: 422
Зарегистрирован: Ср сен 05, 2012 7:30 am
Откуда: Киров
Благодарил (а): 0
Поблагодарили: 70 раз
Контактная информация:

Re: ESP8266

Сообщение MaksMS82 » Пт фев 20, 2015 3:46 pm

Или питание все же плохое или расстояние большое. Может какая-то проблема совместимости скорости с роутером.
AirKing
Сообщения: 87
Зарегистрирован: Вс фев 01, 2015 10:43 pm
Откуда: Муром
Благодарил (а): 16 раз
Поблагодарили: 7 раз

Re: ESP8266

Сообщение AirKing » Пт фев 20, 2015 7:12 pm

[quote="MaksMS82"
MaksMS82 писал(а):Или питание все же плохое или расстояние большое. Может какая-то проблема совместимости скорости с роутером.
растояние 3 метраю. питание http://www.ebay.com/itm/LM2596-S-ADJ-DC ... 4ae536f9a1
ну а если не совпадение протоколов Wi-Fi хз незнаю как проверить
Получи Cashback до 18% с покупок
MaksMS82
Сообщения: 422
Зарегистрирован: Ср сен 05, 2012 7:30 am
Откуда: Киров
Благодарил (а): 0
Поблагодарили: 70 раз
Контактная информация:

Re: ESP8266

Сообщение MaksMS82 » Пт фев 20, 2015 7:57 pm

Этот преобразователь может давать высокочастотные помехи, можно попробовать линейный стабилизатор 1117 например или тут наставить керамик емкостей
Skull
Сообщения: 38
Зарегистрирован: Вт фев 17, 2015 1:52 pm
Благодарил (а): 11 раз
Поблагодарили: 0

Re: ESP8266

Сообщение Skull » Сб фев 21, 2015 10:56 pm

AirKing писал(а): питание http://www.ebay.com/itm/LM2596-S-ADJ-DC ... 4ae536f9a1
ну а если не совпадение протоколов Wi-Fi хз незнаю как проверить
У меня такой же. проблема ушла после установки LC фильтра и танталовой емкости на ноги модуля. по 6 суток полет нормальный. Иногда народмон жалуется на неверные показания датчика температуры, но думаю это связано с датчиком DHT11.(0.0 показания)


Вопрос на засыпку- код, что выкладывали как прикручивается и что где показать должен ?

Код: Выделить всё

$idesp=$params['idesp'];
if (!$idesp) return;
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj) 
{
    if (gg($obj['TITLE'].".idesp") ==$idesp)
    {
        if (is_array($params)) {
           foreach($params as $k=>$v) {    
            if ($k!="script") {
            sg($obj['TITLE'].".".$k,$v);
               }
           }
         }
    }
} 
Платная прошивка отличается от бесплатной по кол-ву данных и кто его знает что там искать надоть...
Jon2015
Сообщения: 28
Зарегистрирован: Чт фев 05, 2015 8:07 pm
Благодарил (а): 9 раз
Поблагодарили: 5 раз

Re: ESP8266

Сообщение Jon2015 » Сб фев 21, 2015 11:52 pm

Skull писал(а): Вопрос на засыпку- код, что выкладывали как прикручивается и что где показать должен ?

Код: Выделить всё

addClass('ESP8266'); 
$idesp=$params['idesp'];
if (!$idesp) return;
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj) 
{
    if (gg($obj['TITLE'].".idesp") ==$idesp)
    {
        if (is_array($params)) {
           foreach($params as $k=>$v) {    
            if ($k!="script") {
            sg($obj['TITLE'].".".$k,$v);
               }
           }
         }
    }
}
Этот код записывается в сценарий с обязательным именем espdata .
Сценарий запускается самим модулем ESP8266 с заданной периодичностью.
Вслед за командой запуска, модуль пристегивает к запросу показания своих внутренних переменных.
Код сценария анализирует эти переменные и добавляет (если не находит) к классу с именем ESP8266 эти переменные в виде свойств объекта.
Короче все автоматизировано до предела.
Главное правильно указать в модуле ИП адрес МДМ и в мажордоме иметь сценарий espdata с этим кодом.
Через 5 минут работы в классе ESP8266 появится объект с уникальным именем (ИД модуля) и со списком свойств в виде названий переменных и показаниями этих переменных.
Замечу, что список будет состоять только из тех переменных, которые активированы в модуле.
А куда вывести эти значения переменных это уже другой вопрос.
P.S. В начале сценария добавил строчку кода по добавлению класса ESP8266.
Последний раз редактировалось Jon2015 Вс фев 22, 2015 12:56 pm, всего редактировалось 1 раз.
За это сообщение автора Jon2015 поблагодарил:
AVL (Вс янв 03, 2016 1:43 am)
Рейтинг: 1.16%
Ответить