The use of the ESP8266 in the world of IoT

User avatar
By bhgv
#74158 LuOS9p IoT esp8266
-----------------------

https://github.com/bhgv/LuOS9p-ESP8266

this is a multithreaded lua 5.3.4 IoT OS. partly compatible with nodemcu by sources, but has simpler C-module system.

what is included:
==============
* lua 5.3.4 (bits operations: |, &, ^),
* threads. `thread` lua module. ex: thread.start ( thread_main_foo ),

* easy to use UART based remote shell. lua ops + unix-like file ops (ls, cd, mkdir, rm, cat etc)
* remote shell based embedded editor ( edit "/my_apps/my_prog.lua" ),

* lua module to work with popular OLED ssd1306-based I2C displays (oled.print(0, 10, "hello world"). text ops, graphic ops,
* a module for create simply GUIs using OLED (examples by the link),

* wifi Sta mode and Ap mode,

* I2C module,
* SPI module,
* ADC module,
* module for PCA9685 PWM 16 channel extension,
* module for PCF8575 PIO 16 channel extension,
* module for PCF8591 ADC/DAC (4 adc, 1 dac) extension,

* easy to use PID module for smooth controlling of complex processes,

* embedded Webserver. it supports:
* * regular HTTP: html, js, css, pictures. up to 5 connections
* * WebSock. up to 5 connections. examples by the link on github.
* * direct access to devices using WebSock.
* * lua-based CGI. may be used with both HTTP and WebSock.

* server for distributed network filesystem 9p/Styx. using it you can access to the LuOS9p based device (or devices) as it is a set of local files (Windows, Linux, MacOS, Android). it allows:
* * to access to lua's embedded modules (devices and other) and read/write to them remotely,
* * to access to remote LuOS9p device's filesystem and read, write, edit, upload, download, copy, move, create etc as they are in the local filesystem,
* * create and use on device syntetic CGI-like files for special functions (lua based),
* * a special file `rpc`. specially for Remote Procedure Calls. just write to it a lua code and read from it the result of execution (ex: `<> ./rpc {echo 'local PWM[8] = 100.0 - ADC[2]; return ADC[3];' >[1=0]; read}` ).

* a graphical remote client `pc-studio`. it is a high-portable lua-based PC (windows, linux) graphical client for accessing by UART to LuOS9p device. it has/allows:
* * terminal. may be used as a regular terminal for embedded shell,
* * editor. to edit internal and external files,
* * load/store access to both devece's internal and external (PC's) filesistems. may be used to upload/ download files to/from device.

etc (don't remember now. and this is a long list)

youtube: https://youtube.com/watch?v=ojTmyH3cTSQ

LuOS9p there was demonstrated using the special board designed specially for it.
the board includes all chips, keyboard, OLED, many power keys (DC/AC 110/220 and PWM leds up to 28v 1.2a).
but you may compile and use LuOS9p on other board (maybe with some changes in drivers). the OS itself depends only to ESP8266 (except external chip's drivers)

all sources and exampes lua and html are on gihub.

now i'm working on the docs/mans

to build
=======
(Linux)
configure your paths and call `bld.sh`
to flash - `flash.sh`