Страница 18 из 121

Re: ESP8266

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

UPD Данные появились, спасибо!!!

Re: ESP8266

Добавлено: Ср фев 18, 2015 7:15 pm
Skull
Теперь родился второй вопрос- если переменные мы сделали глобальными- как подключить другие модули ??
И как должен работать код, который давали ранее ? Может имеет смысл его попробовать чтобы иметь возможность подключить несколько модулей

Re: ESP8266

Добавлено: Ср фев 18, 2015 9:36 pm
kostya066
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 устройства.

Re: ESP8266

Добавлено: Чт фев 19, 2015 5:32 am
Amarok
А как из сценария создать объект, если его нет?

Re: ESP8266

Добавлено: Чт фев 19, 2015 4:51 pm
AirKing
Всем привет.
А подскажите пож. у вас данные модули устойчиво работают?
мой что то постоянно виснет, пинг на него идет 30-1500 мс, и каждые 15-12 пакетов обрывается.
Веб морда вообще тупит. главная страница открывается, остальные могут вообще не открыться.
питание подаю от стабилизатора 3.3в.

Re: ESP8266

Добавлено: Пт фев 20, 2015 3:46 pm
MaksMS82
Или питание все же плохое или расстояние большое. Может какая-то проблема совместимости скорости с роутером.

Re: ESP8266

Добавлено: Пт фев 20, 2015 7:12 pm
AirKing
[quote="MaksMS82"
MaksMS82 писал(а):Или питание все же плохое или расстояние большое. Может какая-то проблема совместимости скорости с роутером.
растояние 3 метраю. питание http://www.ebay.com/itm/LM2596-S-ADJ-DC ... 4ae536f9a1
ну а если не совпадение протоколов Wi-Fi хз незнаю как проверить

Re: ESP8266

Добавлено: Пт фев 20, 2015 7:57 pm
MaksMS82
Этот преобразователь может давать высокочастотные помехи, можно попробовать линейный стабилизатор 1117 например или тут наставить керамик емкостей

Re: ESP8266

Добавлено: Сб фев 21, 2015 10:56 pm
Skull
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);
               }
           }
         }
    }
} 
Платная прошивка отличается от бесплатной по кол-ву данных и кто его знает что там искать надоть...

Re: ESP8266

Добавлено: Сб фев 21, 2015 11:52 pm
Jon2015
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.