• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Создать REST (web) интерфейс

psy21d

New member
Заказал пару модулей ESP-12E, хочу собрать простейшую штуку.
Должна по своему IP адресу на запросы типа (нестрого, но что-то вроде этого)
192.168.1.2/1/on
192.168.1.2/1/off
192.168.1.2/2/on
включать и выключать напряжения на пинах.
По запросу из сети.

В принципе, это всё. Больше от этой штуковины вообще ничего не требуется.
Совсем.
Чем проще, тем лучше. Главное, стабильность.

Откликнитесь, кто собирал устройства, подскажите true unix-way.

До сих пор даже понять не смог, много всего прочёл, а как она настраивается вообще после старта? Неужели только AT командами? У неё есть стартовый веб-интерфейс или что-то вроде?
 

Victor

Administrator
Команда форума
как она настраивается вообще после старта
AT командами на стандартной прошивке это не реализовать.
Вам придется написать для ESP8266 прошивку в Arduino IDE (это не так сложно, как может показаться на первый взгляд)
https://github.com/esp8266/Arduino + документация http://arduino.esp8266.com/versions/1.6.5-947-g39819f0/doc/reference.html
статья на русском (была написана пару месяцев назад и кое-что могло устареть)
ну и библиотека aRest, которая уже в примерах, делает именно то, что вам требуется.
Для первых экспериментов и т.д. пригодится эта статья
Удачи!
 

psy21d

New member
Отличная и подробная подборка ссылок. Респект!
Как минимум одно типовое решение уже есть.

Я программирую на javascript.
Есть прошивка для него http://esp8266.ru/category/esp8266/esp8266-и-smart-js/
Было бы очень здорово сделать на нём, это реально?
 

AlexSuslov

New member
День добрый!
Сделал себе для теста такой "REST"

по GET запускает скрипт с по имени пути

relay1 подключается как модуль

192.168.1.2/relay1/on => relay1("on")
192.168.1.2/relay1/on => relay1("off")
192.168.1.2/relay1/on => relay1("status")

если relay1.lua файла нет, вернет 404

Устроит такое?

Удачи Александр.
PS: Как вариант могу сделать еще
1. Сохранения/ востановление состояния
2.
[POST] 192.168.1.2/relay1/on => on
[POST] 192.168.1.2/relay1/on => off
[GET] 192.168.1.2/relay1/ => status



Заказал пару модулей ESP-12E, хочу собрать простейшую штуку.
Должна по своему IP адресу на запросы типа (нестрого, но что-то вроде этого)
192.168.1.2/1/on
192.168.1.2/1/off
192.168.1.2/2/on
включать и выключать напряжения на пинах.
По запросу из сети.

В принципе, это всё. Больше от этой штуковины вообще ничего не требуется.
Совсем.
Чем проще, тем лучше. Главное, стабильность.

Откликнитесь, кто собирал устройства, подскажите true unix-way.

До сих пор даже понять не смог, много всего прочёл, а как она настраивается вообще после старта? Неужели только AT командами? У неё есть стартовый веб-интерфейс или что-то вроде?
 

psy21d

New member
это отличный вариант, lua освоил, вполне сносно можно делать код.
Задача с rest пока что на практике отложена, есть другое решение.
Работаю с модемами SIMCOM, в них самих lua и они не глючат (не нужно их перевтыкать, для чего и планировался REST)
Но я думаю многим будет интересна практическая реализация.

Запостите скрипт.
В ESP8266 есть прошивка с lua, она не идёт по умолчанию или идёт?
Долго её ставить?

QPST подходит для чтения файловой системы esp8266 или он только для ARM?
 

AlexSuslov

New member
Я только изучаю ESP модули, но у меня есть опыт работы еще в кодах для кр544 серии.
Вспомнил молодость.
-------------
Lua очень похож на JS. На JS много пишу.
-------------
Возможно раньше были проблемы с перетыканием, я пока не заметил.
-------------
Реализаций http много, нужно собрать хотелки и дописать и выложить на гит хаб.

Из за ограничений памяти, написал оптимизатор файловой системы. ( компилирует все скрипты в "lc" (кроме init.lua) при старте )

После компиляции не работает

"dofile('test.lua')"

написал обертку

doFile('test')

думаю может сделать

по

[GET] http://esp/path/?query

[POST] http://esp/path/?query

doFile('get_path')(query, body)

doFile('post_path')(query, body)

-------------
Ставить минуты. Шил при помощи pl2303(5v) от "Малины". При помощи питон скипта.
-------------
Файловая система доступна через LUA.
https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en#filewriteline
-------------
Не знаю что такое QPST.
-------------

это отличный вариант, lua освоил, вполне сносно можно делать код.
Задача с rest пока что на практике отложена, есть другое решение.
Работаю с модемами SIMCOM, в них самих lua и они не глючат (не нужно их перевтыкать, для чего и планировался REST)
Но я думаю многим будет интересна практическая реализация.

Запостите скрипт.
В ESP8266 есть прошивка с lua, она не идёт по умолчанию или идёт?
Долго её ставить?

QPST подходит для чтения файловой системы esp8266 или он только для ARM?
 

psy21d

New member
Что значит "доступна через lua"? Как скрипты заливать, стартовать?
QPST это программа для чтения файловой системы через diag port.
И много чего ещё.
http://www.bj-portal.ru/6592

Давайте сделаем подборку по работе с сокетами и http, отлично будет.
Это и есть основа модуля. Пишут, что либа работы с сетью кривая, он перебирает сокеты и спит, оттуда задержки по три секунды.
Так-то девайсы делать шикарно. Дёшево и просто, ничего лишнего.

С nodeJS прошивкой модуля пока не пойму, в чём профит.
Что на нём можно писать, какого уровня софт.
Работает ли там веб-сервер через nodejs сделанный, какая производительность.
В чём урезание. Интересно ещё, как компилятор собран.
Поишут что lua 1:1, nodejs 1:30 (медленный).
Узнать бы это в деле для esp8266
 

AlexSuslov

New member
Я сейчас в лесу, к проекту доступа нет. Как доберусь, выложу.
------
Доступ через LUA

file.open("init.lua", "a+")
file.writeline('foo bar')
file.close()

Это значит чтобы залить файл через терминал,
открыть file
file.open("init.lua", "w+")

нужно обернуть строки из вашего файла в file.writeline('строка файла')

закрыть файл
file.close()
-----------
ESPlorer
делает это сам.
http://esp8266.ru/esplorer-ide-esp8266/


Что значит "доступна через lua"? Как скрипты заливать, стартовать?
QPST это программа для чтения файловой системы через diag port.
И много чего ещё.
http://www.bj-portal.ru/6592

Давайте сделаем подборку по работе с сокетами и http, отлично будет.
Это и есть основа модуля. Пишут, что либа работы с сетью кривая, он перебирает сокеты и спит, оттуда задержки по три секунды.
Так-то девайсы делать шикарно. Дёшево и просто, ничего лишнего.

С nodeJS прошивкой модуля пока не пойму, в чём профит.
Что на нём можно писать, какого уровня софт.
Работает ли там веб-сервер через nodejs сделанный, какая производительность.
В чём урезание. Интересно ещё, как компилятор собран.
Поишут что lua 1:1, nodejs 1:30 (медленный).
Узнать бы это в деле для esp8266
 

psy21d

New member
ESPlorer есть, скачал. Туплю. Он как раз-таки для SimCom не подошёл.
Через терминал лить безполезно, даже не пытайтесь. Будут горы мусора и дисконнекты.
 
Сверху Снизу