ESP8266
Модератор: immortal
-
- Сообщения: 422
- Зарегистрирован: Ср сен 05, 2012 7:30 am
- Откуда: Киров
- Благодарил (а): 0
- Поблагодарили: 70 раз
- Контактная информация:
Re: ESP8266
Да, интересно конечно, это намного лучше чем ЛУА, хоть ресурсов не так жрет и можно больше функционала запихать в модуль, но все равно не дотягивает до чистого Си по оптимизации кода, т.к. там все равно есть обертка Ардуины.. Но все равно это прогресс.
Проект еще сырой, но думаю быстро это исправится. Вот только кривой SDK тормозит этот процесс...
Не смотря, что это Ардуино ИДЕ, но там много отличий в написании прошивки, например нельзя бездумно тыкать везде delay_ms.
Проект еще сырой, но думаю быстро это исправится. Вот только кривой SDK тормозит этот процесс...
Не смотря, что это Ардуино ИДЕ, но там много отличий в написании прошивки, например нельзя бездумно тыкать везде delay_ms.
-
- Сообщения: 422
- Зарегистрирован: Ср сен 05, 2012 7:30 am
- Откуда: Киров
- Благодарил (а): 0
- Поблагодарили: 70 раз
- Контактная информация:
-
- Сообщения: 206
- Зарегистрирован: Сб дек 21, 2013 9:21 pm
- Откуда: Spain
- Благодарил (а): 1 раз
- Поблагодарили: 22 раза
Re: ESP8266
http://www.esp8266.com/viewtopic.php?p= ... a33#p11989
Посмотрел, кастрированный olimex сервер esphttpd не потдерживает подключение к роутеру.
А исходный проект сервера из Голландии не собирается стандартным SDK (тот который кривой?).
Выше по ссылке кажется решение, как собрать веб-сервер, но при этом слетают пароли.
Оба не имеют различных библиотек для сенсоров.
Как я написал тут:
http://forum.katera.ru/index.php?/topic ... v-i-iakht/
cуществует 4 варианта решения (один от Адафрут на С++). Если кто то знает готовое решение для сенсоров приведитье тут.
Если Ардвино IDE для ESP будет поддерживать в будущем большинство сенсоров, да ещё UEXT шину, то это очень хорошо.
Посмотрел, кастрированный olimex сервер esphttpd не потдерживает подключение к роутеру.
А исходный проект сервера из Голландии не собирается стандартным SDK (тот который кривой?).
Выше по ссылке кажется решение, как собрать веб-сервер, но при этом слетают пароли.
Оба не имеют различных библиотек для сенсоров.
Как я написал тут:
http://forum.katera.ru/index.php?/topic ... v-i-iakht/
cуществует 4 варианта решения (один от Адафрут на С++). Если кто то знает готовое решение для сенсоров приведитье тут.
Если Ардвино IDE для ESP будет поддерживать в будущем большинство сенсоров, да ещё UEXT шину, то это очень хорошо.
-
- Сообщения: 206
- Зарегистрирован: Сб дек 21, 2013 9:21 pm
- Откуда: Spain
- Благодарил (а): 1 раз
- Поблагодарили: 22 раза
Re: ESP8266
Я так и подумал.MaksMS82 писал(а): Это не SDK , а компилятор..

/home/vagrant/tmp/esp-open-sdk/crosstool-NG
То есть вот этот субмодуль SDK кривой?
Мне то же надо экономить время-деньги и нужно всё сразу и чтоб памяти 50% оставалось


https://github.com/esp8266/esp8266-wiki/wiki/Memory-Map
00000h 4k boot.bin Bootloader
01000h 64k app.v6.flash1.bin User application, slot 1
11000h 180k app.v6.irom0text1.bin SDK libraries, slot 1
3E000h 8k master_device_key.bin OTA device key
40000h 4k Unused
41000h 64k app.v6.flash1.bin User application, slot 2
51000h 180k app.v6.irom0text1.bin SDK libraries, slot 2
7E000h 8k blank.bin Filled with FFh. May be WiFi configuration.
-
- Сообщения: 28
- Зарегистрирован: Чт фев 05, 2015 8:07 pm
- Благодарил (а): 9 раз
- Поблагодарили: 5 раз
Re: ESP8266
Я уже писал:http://smartliving.ru/forum/viewtopic.p ... 361#p20361
этот SDK шикарно работает с WiFi. Доработанные библиотеки связанные с низкоуровневым программированием (OneWire, DHT) скачивать там же.
Обычные библиотеки работают нормально (то что я успел проверить).
этот SDK шикарно работает с WiFi. Доработанные библиотеки связанные с низкоуровневым программированием (OneWire, DHT) скачивать там же.
Обычные библиотеки работают нормально (то что я успел проверить).
-
- Сообщения: 10
- Зарегистрирован: Пн мар 10, 2014 10:05 am
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: ESP8266
Подскажите пожалуйста, какой код нужно дописать в espdata, чтобы записывать полность весь полученный GET запрос в TXT файл. Необходимо для отладки т.к. время от времени просто не обрабатывает одну переменную и в базу ничего не записывает, хотя в GET запросе она присутствует.
Amarok писал(а):Код: Выделить всё
if ($params['idesp']=="") { return; } //Если ID устройства отсутствует, то перестаем отрабатывать сценарий addClass('ESP8266'); //Создаем класс ESP8266 addClassObject('ESP8266',$params['idesp']); //Создаем в классе ESP8266 объект где в качестве имени addClassProperty('ESP8266', 'vdd', 90); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 90 дней addClassProperty ........ //Распихиваем всё по свойствам. Если полученное значение пустое, то свойство не записываем if ($params['bmpp']!="") { sg(($params['idesp'].".bmpp"),$params['bmpp']); } //Данные с датчика BMP (давление) ........ sg(($params['idesp'].".idesp"),$params['idesp']); //
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: ESP8266
DebMes("espdata request: ".$_SERVER['REQUEST_URI']);Goerg писал(а):Подскажите пожалуйста, какой код нужно дописать в espdata, чтобы записывать полность весь полученный GET запрос в TXT файл. Необходимо для отладки т.к. время от времени просто не обрабатывает одну переменную и в базу ничего не записывает, хотя в GET запросе она присутствует.
После этого в XRay во вкладке debug можно смотреть результат.
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 44
- Зарегистрирован: Чт апр 09, 2015 8:09 am
- Благодарил (а): 2 раза
- Поблагодарили: 1 раз
Re: ESP8266
[quote="Amarok"]Что то этот код не работает:
А этот (моё творение) работает:
Внимание, вопрос: как завести первый код? Всё таки он изящнее и короче.[/q
а если только 2 датчика температуры, в сценарии надо только 2 датчика оставить?
Код: Выделить всё
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);
}
}
}
}
}
Код: Выделить всё
$bmpp=$params['bmpp']; //Данные с датчика BMP (давление)
$bmpt=$params['bmpt']; //Данные с датчика BMP (температура)
$counter=$params['counter']; //Количество импульсов со счетчика
$dhth1=$params['dhth1']; //Данные с первого датчика DHT (влажность)
$dhth2=$params['dhth2']; //Данные со второго датчика DHT (влажность)
$dhtt1=$params['dhtt1']; //Данные с первого датчика DHT (температура)
$dhtt2=$params['dhtt2']; //Данные со второго датчика DHT (температура)
$dsw1=$params['dsw1']; //Данные с датчика DS18B20 №1
$dsw2=$params['dsw2']; //Данные с датчика DS18B20 №2
$dsw3=$params['dsw3']; //Данные с датчика DS18B20 №3
$dsw4=$params['dsw4']; //Данные с датчика DS18B20 №4
$dsw5=$params['dsw5']; //Данные с датчика DS18B20 №5
$freemem=$params['freemem']; //Объем свободной памяти модуля
$hostname=$params['$hostname']; //Имя модуля
$idesp=$params['idesp']; //ID устройства
$light=$params['light']; //Данные с датчика BH1750
$uptime=$params['uptime']; //Время непрерывной работы модуля
$vdd=$params['vdd']; //Напряжение на модуле
$ver=$params['ver']; //Версия прошивки
if ($idesp=="") { return; } //Если ID устройства отсутствует, то перестаем отрабатывать сценарий
addClass('ESP8266'); //Создаем класс ESP8266
addClassObject('ESP8266',$idesp); //Создаёт класс заданного имени дочерним от ParentClass
say("yyyyyyyyyyyyy");
//Распихиваем всё по свойствам. Если полученное значение пустое, то свойство не записываем
if ($bmpp!="") { sg(($idesp.".bmpp"),$bmpp); }
if ($bmpt!="") { sg(($idesp.".bmpt"),$bmpt); }
if ($counter!="") { sg(($idesp.".counter"),$counter); }
if ($dhth1!="") { sg(($idesp.".dhth1"),$dhth1); }
if ($dhth2!="") { sg(($idesp.".dhth2"),$dhth2); }
if ($dhtt1!="") { sg(($idesp.".dhtt1"),$dhtt1); }
if ($dhtt2!="") { sg(($idesp.".dhtt2"),$dhtt2); }
if ($dsw1!="") { sg(($idesp.".dsw1"),$dsw1); }
if ($dsw2!="") { sg(($idesp.".dsw2"),$dsw2); }
if ($dsw3!="") { sg(($idesp.".dsw3"),$dsw3); }
if ($dsw4!="") { sg(($idesp.".dsw4"),$dsw4); }
if ($dsw5!="") { sg(($idesp.".dsw5"),$dsw5); }
if ($freemem!="") { sg(($idesp.".freemem"),$freemem); }
if ($hostname!="") { sg(($idesp.".hostname"),$hostname); }
if ($light!="") { sg(($idesp.".light"),$light); }
if ($uptime!="") { sg(($idesp.".uptime"),$uptime); }
if ($vdd!="") { sg(($idesp.".vdd"),$vdd); }
if ($ver!="") { sg(($idesp.".ver"),$ver); }
а если только 2 датчика температуры, в сценарии надо только 2 датчика оставить?
-
- Сообщения: 9
- Зарегистрирован: Чт фев 27, 2014 4:21 pm
- Благодарил (а): 0
- Поблагодарили: 5 раз
Re: ESP8266
Попробуйте вот такой код:
Код: Выделить всё
//объект ищем по свойству idesp, так как имя объекта будет осмысленным,
//а если не нашли - то добавляем с именем равным его айди
$idesp=$params['idesp'];
if (!$idesp) return;
//запишем в лог что пришло
DebMes("espdata request: ".$_SERVER['REQUEST_URI']);
$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);
}
}
}
//объект найден, свойства записаны, выходим
return;
}
}
//сюда попадет если нет объекта - создадим его, и запишем только одно свойство - его айди
//на следующем запросе мы попадем в первый цикл и все запишется
addClassObject('ESP8266', $idesp);
sg(($idesp.".idesp"),$idesp);