ESP8266

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

Модератор: immortal

Аватара пользователя
prmres
Сообщения: 428
Зарегистрирован: Пт ноя 24, 2017 2:24 am
Откуда: оттуда
Благодарил (а): 113 раз
Поблагодарили: 123 раза

Re: ESP8266

Сообщение prmres » Вт фев 13, 2018 9:17 pm

yurik писал(а):апач выдает Fatal Error : Uncaught error : Call to undefined function curl_init()
вот и вся беда...
ну тут вы могли чего то по инструкции не доделать

вообще я бы посоветовал вам сделать бекап мажордомо, снести виртуалку, поставить МИНИМАЛЬНУЮ убунту
а потом на убунте с помощью скриптов поставить MD и потом накатить бекап
скрипты тут: https://majordomo.smartliving.ru/forum/ ... 341#p42341

НО сначала попробуйте код из этого сообщения: https://majordomo.smartliving.ru/forum/ ... 775#p71775
Не только лишь все!
yurik
Сообщения: 52
Зарегистрирован: Вс фев 11, 2018 7:32 pm
Благодарил (а): 10 раз
Поблагодарили: 2 раза

Re: ESP8266

Сообщение yurik » Вт фев 13, 2018 9:18 pm

всем спасибо, вопрос решен, посмотрев логи. я обнаружил что не стоит php-curl, гы...
зато теперь я знаю все три способа соединения виртуалки ubuntu с железом!
Электрик-любитель II-го разряда, java, matlab, php, DIY
Аватара пользователя
prmres
Сообщения: 428
Зарегистрирован: Пт ноя 24, 2017 2:24 am
Откуда: оттуда
Благодарил (а): 113 раз
Поблагодарили: 123 раза

Re: ESP8266

Сообщение prmres » Вт фев 13, 2018 9:20 pm

yurik писал(а):всем спасибо, вопрос решен, посмотрев логи. я обнаружил что не стоит php-curl, гы...
зато теперь я знаю все три способа соединения виртуалки ubuntu с железом!
это потому что ставили руками и что то пропустили
в моём предыдущем сообщении я давал ссылку на скрипты установки - работают на-ура! надо всего лишь на несколько вопросов ответить остальное делают сами автоматом ставят всё необходимое
Последний раз редактировалось prmres Вт фев 13, 2018 9:26 pm, всего редактировалось 1 раз.
За это сообщение автора prmres поблагодарил:
yurik (Ср фев 14, 2018 9:40 am)
Рейтинг: 1.16%
Не только лишь все!
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 531 раз
Контактная информация:

Re: ESP8266

Сообщение Vovix » Вт фев 13, 2018 9:21 pm

нафик, больше с советами к Линуксоидам вообще соваться не буду!!!

чё нить напишут на клаве в своей любимой консоле, или наоборот забудут написать
а потом голову ломают!
то права на папки раздают (забывают раздать)
то с элементарным звуком воюют неделями если не больше...
ну да зато потом надежность...
правда чёто у меня Rasberry Pi2 светом управляет через 1-wire, и не сказал бы я что сильно надежно это выходит!
:D :D :D
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
yurik
Сообщения: 52
Зарегистрирован: Вс фев 11, 2018 7:32 pm
Благодарил (а): 10 раз
Поблагодарили: 2 раза

Re: ESP8266

Сообщение yurik » Ср фев 14, 2018 10:39 am

По поводу правильного кода для esp8266, все эти условия if-ы от лукавого,
вот вариант (по крайней мере я к нему прибился)

$st=$this->getProperty('gpiout2');
getURL('http://192.168.1.111/gpiout?st='.$st.'&pin=2', 0,'esp01','esp01');

сейчас для меня узкое место заключается в следующем, допустим два выключателя (а может даже больше плюс датчики всякие) работают на одном и том же esp8266 (благо куча пинов позволяют, в том числе VGPIO). В каждом выключателе указан метод вызова из объекта ESP8266.. например refresh, для двух выключателей получается код будет следующий

$st2=$this->getProperty('gpiout2');
getURL('http://192.168.1.111/gpiout?st='.$st2.'&pin=2', 0,'esp01','esp01');
$st5=$this->getProperty('gpiout5');
getURL('http://192.168.1.111/gpiout?st='.$st5.'&pin=5', 0,'esp01','esp01');

получается логичней сделать цикл конечно же (это не проблема, по маске свойства у объекта просканить), НО этот вариант мне не нравится (ведь есть ООП)!!! при "щелкании" одним выключателем идут лишние запросы на другие выключатели...а это нагрузка на http... Единственное решение которое приходит в голову, это насоздавать объекты внутри ESP8266, которые по факту будут дублировать свойства (например gpio2, gpio5 ну и т.д.), а выключатели уже можно будет связывать со свойствами состояния этих пинов. Тогда http запрос будет отправляться в одном экземпляре соответсвующим объектом (пусть будет например esp8266pin2/классаesp8266 названия вымышленные, над реализацией только думаю). Тогда можно сделать и глобальный refresh (для esp8266 в своем классе), и refresh отдельного пина (класс esp8266pin, название не принципиально). Теперь о минусах, на настоящий момент жутко не хватает параметрического вызова методов объекта (экземпляра класса). С выключателями это не так критично (SetPinOn и SetPinOff будет достаточно), но вот уже дальше сложней, как например для RGB ленты сделать я уже затрудняюсь.Очень сильно не хватает полноченных инкапсуляции и полиморфизма...

Вчера вот увидел модуль PropTransfer (полезный и классный, за что автору огромное спасибо), вроде бы он может помочь в нашей ситуации - сделаем трансфер gpio-пинов из esp8266 в объекты (экземпляры класса esp8266pin) esp8266pin2, esp8266pin5, ну и т.д. Работать конечно же будет, но это не то, что бы хотелось, пользоваться кодом сможет только тот человек, который его написал, так как надо в голове держать всю структуру классов и объектов, и тем более установленных связей в PropTransfer, т.е. человек/пользователь теперь выступает в роли диспетчера ООП, а в голове держать столько информации не каждый может... Что получается в реальности - на одном eps я буду использовать пару выключателей (для света например в комнате), напишу "корявый" код, главное чтобы работало и не зависало! И лучше этот код потом никому не давать :lol:
Электрик-любитель II-го разряда, java, matlab, php, DIY
Аватара пользователя
prmres
Сообщения: 428
Зарегистрирован: Пт ноя 24, 2017 2:24 am
Откуда: оттуда
Благодарил (а): 113 раз
Поблагодарили: 123 раза

Re: ESP8266

Сообщение prmres » Ср фев 14, 2018 1:19 pm

yurik писал(а):По поводу правильного кода для esp8266, все эти условия if-ы от лукавого,
понятно, значит и так работает
признаться в программировании не силён
Не только лишь все!
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: ESP8266

Сообщение skysilver » Ср фев 14, 2018 1:35 pm

yurik писал(а):Очень сильно не хватает полноченных инкапсуляции и полиморфизма...
А модуль из маркета для wifi-iot не подошел?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
yurik
Сообщения: 52
Зарегистрирован: Вс фев 11, 2018 7:32 pm
Благодарил (а): 10 раз
Поблагодарили: 2 раза

Re: ESP8266

Сообщение yurik » Чт фев 15, 2018 9:46 am

skysilver писал(а):
yurik писал(а):Очень сильно не хватает полноченных инкапсуляции и полиморфизма...
А модуль из маркета для wifi-iot не подошел?
дело не в том подошел, или не подошел... Подойти то может все, но не бывает универсальных решений, каждый сам для себя решает - использовать готовое, допиливать его либо создавать что-то свое! Я только лишь поделился своими соображениями, что для одной-двух кнопок для лампочек скорее всего ничего и не нужно, ну будет два http запроса параллельно (хотя это тоже учесть легко) - это не критично! Ну и данные тоже не должны дублироваться, иначе нарушаются базовые принципы объектного программирования.

Просто интересно самому разобраться, еще раз повторюсь движок МД просто суперский и может быть один из лучших на просторах рунета, я вообще удивляюсь как Сергею удается столько времени посвящать проекту!

Вчера порылся на форуме, оказывается появился новый модуль "Простые устройства" в альфаветке https://majordomo.smartliving.ru/forum/ ... 0%B2%D0%B0 , обсуждение полным ходом, добавятся группы простых устройств, вот как раз для esp8266 и нужна такая "группа устройств", что-то вроде контейнера разнородных датчиков и исполнительных элементов!
Электрик-любитель II-го разряда, java, matlab, php, DIY
Аватара пользователя
woow
Сообщения: 821
Зарегистрирован: Пн июл 04, 2016 8:46 am
Откуда: Mazeikiai
Благодарил (а): 125 раз
Поблагодарили: 46 раз

Re: ESP8266

Сообщение woow » Пт мар 02, 2018 12:00 pm

Как толкова прошивать ESP.
1. метод. С Arduino IDE, одни проблемы, то ошибки в библиотеках, то в самом скетче показывает хотя там действительности их нет,
2. метод. Atom+ тоже не совсем получается, входит в цикл и не останавливается,
3. метод. проще всего прошивать конечно *.bin файлы, но там не чего изначально не изменишь, что касается, настроек сети и тут танцы с бубном, поймаешь или не поймаешь: прошиваешь, жмёшь резет и смотришь WiFi на телефоне появится или нет, если появилась новая AP ура начинаешь вводить свои настройки и тут бац и её нету пропала и с концами, пере запускай, переключай питание один гвоздь результат не какой.
Помогает пере прошивка и опять всё с начала...
Что делаю не так по 3. методу, как поймать ток IP 192.168.4.1 который почему-то в каждую прошивку засовывает или мой телефон кривой или руки.
Raspberry Pi 3B+
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

Re: ESP8266

Сообщение Jilber » Пт мар 02, 2018 12:12 pm

woow писал(а):Что делаю не так по 3. методу, как поймать ток IP 192.168.4.1 который почему-то в каждую прошивку засовывает или мой телефон кривой или руки.
Если один раз уже изменили 192.168.4.1 на IP своей сети, то пробуйте подключаться к ESP уже по новому IP. После повторной перепрошивки ваш новый изменённый IP обычно сохраняется (т.е. часть прошивки с данными Wi-Fi не затирается).
Ответить