ESP8266

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

Модератор: immortal

SergeyM
Сообщения: 100
Зарегистрирован: Вт ноя 11, 2014 5:16 pm
Откуда: Шатура
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: ESP8266

Сообщение SergeyM » Пн мар 30, 2015 11:48 am

Скрипт надо немного допилить и будет работать:

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

$idesp=$params['idesp'];
if (!$idesp) return;
say ($idesp);
addClass('ESP8266');                    //Создаем класс ESP8266
addClassObject('ESP8266',$idesp);     //Создаёт класс заданного имени дочерним от ParentClass
sg ('ESP8266.'.$idesp.".idesp",$idesp);
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj) 
{
    if (gg($obj['TITLE'].".idesp") ==$idesp) //
    {
        if (is_array($params)) {
         sg ($obj['TITLE'].".LastUpdate",date("H:i",time()));
           foreach($params as $k=>$v) {    
            if ($k!="script") {
            sg($obj['TITLE'].".".$k,$v);
               }
           }
         }
    }
}
 

Windows, Debian 8, 1-Wire
Connect
visitor2100
Сообщения: 19
Зарегистрирован: Пт фев 20, 2015 5:24 pm
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: ESP8266

Сообщение visitor2100 » Вт мар 31, 2015 10:45 pm

Amarok, что то автоматом не создает, можешь экспорт класса выложить.
visitor2100
Сообщения: 19
Зарегистрирован: Пт фев 20, 2015 5:24 pm
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: ESP8266

Сообщение visitor2100 » Вт мар 31, 2015 11:28 pm

Вот мой рабочий скрипт:

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

//$light=$params['light'];  //Данные с датчика BH1750
//$ds=$params['ds'];        //Данные с датчика DS18B20
$adc=$params['adc'];
$counter=$params['counter'];
//$countrst=$params['countrst'];
$counterreset=$params['counterreset'];
$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.".adc"),$adc);
setGlobal(($idesp.".counter"),$counter);
//setGlobal(($idesp.".countrst"),$countrst);
setGlobal(($idesp.".counterreset"),$counterreset);
setGlobal(($idesp.".bmpt"),$bmpt);
setGlobal(($idesp.".bmpp"),$bmpp);
setGlobal(($idesp.".dhtt1"),$dhtt1);
setGlobal(($idesp.".dhth1"),$dhth1);
//setGlobal(($idesp.".dhtt2"),$dhtt2);
//setGlobal(($idesp.".dhth2"),$dhth2);
setGlobal(($idesp.".idesp"),$idesp);
setGlobal(($idesp.".ver"),$ver);
setGlobal(($idesp.".vdd"),$vdd);
setGlobal(($idesp.".freemem"),$freemem); 
+Аналоговый вход ADC;
+Counter Reset
Последний раз редактировалось visitor2100 Вт мар 31, 2015 11:33 pm, всего редактировалось 1 раз.
visitor2100
Сообщения: 19
Зарегистрирован: Пт фев 20, 2015 5:24 pm
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: ESP8266

Сообщение visitor2100 » Вт мар 31, 2015 11:33 pm

SergeyM писал(а):Скрипт надо немного допилить и будет работать:

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

$idesp=$params['idesp'];
if (!$idesp) return;
say ($idesp);
addClass('ESP8266');                    //Создаем класс ESP8266
addClassObject('ESP8266',$idesp);     //Создаёт класс заданного имени дочерним от ParentClass
sg ('ESP8266.'.$idesp.".idesp",$idesp);
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj) 
{
    if (gg($obj['TITLE'].".idesp") ==$idesp) //
    {
        if (is_array($params)) {
         sg ($obj['TITLE'].".LastUpdate",date("H:i",time()));
           foreach($params as $k=>$v) {    
            if ($k!="script") {
            sg($obj['TITLE'].".".$k,$v);
               }
           }
         }
    }
}
 
Этот код у меня ESP на колени ставит) отваливаются. По LastUpdate почти каждую секунду запись. ХЗ может только у меня.
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: ESP8266

Сообщение Amarok » Ср апр 01, 2015 8:33 am

visitor2100 писал(а):Amarok, что то автоматом не создает, можешь экспорт класса выложить.
Его нет смысла выкладывать. Эту версию попробуй:
espdataПоказать

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

if ($params['idesp']=="") { return; } //Если ID устройства отсутствует, то перестаем отрабатывать сценарий
addClass('ESP8266'); //Создаем класс ESP8266
addClassObject('ESP8266',$params['idesp']); //Создаем в классе ESP8266 объект где в качестве имени 
addClassProperty('ESP8266', 'vdd', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'bmpp', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'bmpt', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'dhth1', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'dhth2', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'dhtt1', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'dhtt2', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'dsw1', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней
addClassProperty('ESP8266', 'updated', 1); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 1 дней
addClassProperty('ESP8266', 'updatedTime', 1); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 1 дней
addClassProperty('ESP8266', 'alive', 1); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 1 дней
 
//Распихиваем всё по свойствам. Если полученное значение пустое, то свойство не записываем
if ($params['bmpp']!="") { sg(($params['idesp'].".bmpp"),$params['bmpp']); } //Данные с датчика BMP (давление)
if ($params['bmpt']!="") { sg(($params['idesp'].".bmpt"),$params['bmpt']); } //Данные с датчика BMP (температура)
if ($params['counter']!="") { sg(($params['idesp'].".counter"),$params['counter']); } //Количество импульсов со счетчика
if ($params['dhth1']!="") { sg(($params['idesp'].".dhth1"),$params['dhth1']); } //Данные с первого датчика DHT (влажность)
if ($params['dhth2']!="") { sg(($params['idesp'].".dhth2"),$params['dhth2']); } //Данные со второго датчика DHT (влажность)
if ($params['dhtt1']!="") { sg(($params['idesp'].".dhtt1"),$params['dhtt1']); } //Данные с первого датчика DHT (температура)
if ($params['dhtt2']!="") { sg(($params['idesp'].".dhtt2"),$params['dhtt2']); } //Данные со второго датчика DHT (температура)
if ($params['dsw1']!="") { sg(($params['idesp'].".dsw1"),$params['dsw1']); } //Данные с датчика DS18B20 №1
if ($params['dsw2']!="") { sg(($params['idesp'].".dsw2"),$params['dsw2']); } //Данные с датчика DS18B20 №2
if ($params['dsw3']!="") { sg(($params['idesp'].".dsw3"),$params['dsw3']); } //Данные с датчика DS18B20 №3
if ($params['dsw4']!="") { sg(($params['idesp'].".dsw4"),$params['dsw4']); } //Данные с датчика DS18B20 №4
if ($params['dsw5']!="") { sg(($params['idesp'].".dsw5"),$params['dsw5']); } //Данные с датчика DS18B20 №5
if ($params['freemem']!="") { sg(($params['idesp'].".freemem"),$params['freemem']); } //Объем свободной памяти модуля
if ($params['hostname']!="") { sg(($params['idesp'].".hostname"),$params['hostname']); } //Имя модуля
if ($params['light']!="") { sg(($params['idesp'].".light"),$params['light']); } //Данные с датчика BH1750
if ($params['uptime']!="") { sg(($params['idesp'].".uptime"),$params['uptime']); } //Время непрерывной работы модуля
if ($params['vdd']!="") { sg(($params['idesp'].".vdd"),$params['vdd']); } //Напряжение на модуле
if ($params['ver']!="") { sg(($params['idesp'].".ver"),$params['ver']); } //Версия прошивки
if ($params['ip']!="") { sg(($params['idesp'].".ip"),$params['ip']); } //Версия прошивки
sg(($params['idesp'].".idesp"),$params['idesp']);  // 
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
SergeyM
Сообщения: 100
Зарегистрирован: Вт ноя 11, 2014 5:16 pm
Откуда: Шатура
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: ESP8266

Сообщение SergeyM » Ср апр 01, 2015 12:50 pm

оба скрипта рабочие, разница только в том, что в одном параметры прописаны жестко, а в другом появляются по мере их передачи из модуля (подключения соответствующих датчиков)
проблема, скорее всего в БД, зайдите через PHPMyadmin и посмотрите, наверняка такие объекты существуют, но Вы их не видите в Админке. Саму же ESP скрипт вешать не должен.
Windows, Debian 8, 1-Wire
Connect
visitor2100
Сообщения: 19
Зарегистрирован: Пт фев 20, 2015 5:24 pm
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: ESP8266

Сообщение visitor2100 » Ср апр 01, 2015 11:27 pm

Спасибо. Буду пробовать.
ignat99
Сообщения: 206
Зарегистрирован: Сб дек 21, 2013 9:21 pm
Откуда: Spain
Благодарил (а): 1 раз
Поблагодарили: 22 раза

Re: ESP8266

Сообщение ignat99 » Чт апр 02, 2015 10:22 am

https://olimex.wordpress.com/2015/03/31 ... duino-ide/

ESP8266 теперь совместима с Arduino 1.6.1 IDE

Arduino IDE для ESP8266 брать тут:

https://github.com/esp8266/Arduino/rele ... x64.tar.xz
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: ESP8266

Сообщение sergejey » Чт апр 02, 2015 10:57 am

ignat99 писал(а):https://olimex.wordpress.com/2015/03/31 ... duino-ide/
ESP8266 теперь совместима с Arduino 1.6.1 IDE
Интересная новость! Надо при случае попробовать.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Jon2015
Сообщения: 28
Зарегистрирован: Чт фев 05, 2015 8:07 pm
Благодарил (а): 9 раз
Поблагодарили: 5 раз

Re: ESP8266

Сообщение Jon2015 » Чт апр 02, 2015 10:58 am

ignat99 писал(а):https://olimex.wordpress.com/2015/03/31 ... duino-ide/
ESP8266 теперь совместима с Arduino 1.6.1 IDE
Arduino IDE для ESP8266 брать тут:
https://github.com/esp8266/Arduino/rele ... x64.tar.xz
Ядро поддержки ESP8266, ESP8266WiFi, Ticker, ESP8266WebServer библиотеки были написаны Иваном Grokhotkov, поэтому
обращайтесь к первоисточникам.
англоязычный форум:http://www.esp8266.com/arduino
русскоязычный форум:http://esp8266.ru/arduino-ide-esp8266/#fast-start
Ответить