-
Notifications
You must be signed in to change notification settings - Fork 0
nodemcu_api_ru
Перевод 4refr0nt esp8266.ru
Обсуждение перевода
###Версия перевода
09.03.2015
###TODO
Перевод команд onewire, bit и spi
###NodeMCU version 0.9.5 build 2015-02-13
##INDEX
###Команды node
- node.restart()
- node.dsleep()
- node.info()
- node.chipid()
- node.flashid()
- node.heap()
- node.key() --deprecated
- node.led() --deprecated
- node.input()
- node.output()
- node.readvdd33()
- node.compile()
###Файловая система
- file.remove()
- file.open()
- file.close()
- file.readline()
- file.writeline()
- file.read()
- file.write()
- file.flush()
- file.seek()
- file.list()
- file.format()
- file.rename()
###wifi
###wifi.sta клиент
- wifi.sta.config()
- wifi.sta.connect()
- wifi.sta.disconnect()
- wifi.sta.autoconnect()
- wifi.sta.getip()
- wifi.sta.setip()
- wifi.sta.getmac()
- wifi.sta.setmac()
- wifi.sta.getap()
- wifi.sta.status()
- wifi.sta.getbroadcast()
###wifi.ap точка доступа
- wifi.ap.config()
- wifi.ap.getip()
- wifi.ap.setip()
- wifi.ap.getmac()
- wifi.ap.setmac()
- wifi.ap.getbroadcast()
###timer
###gpio
###pwm ШИМ
- pwm.setup()
- pwm.close()
- pwm.start()
- pwm.stop()
- pwm.setclock()
- pwm.getclock()
- pwm.setduty()
- pwm.getduty()
###net module
###net.server sub-module
###net.socket sub-module
###i2c module
###adc module
###uart module
###1-wire module
- ow.setup()
- ow.reset()
- ow.skip()
- ow.select()
- ow.write()
- ow.write_bytes()
- ow.read()
- ow.read_bytes()
- ow.depower()
- ow.reset_search()
- ow.target_search()
- ow.search()
- ow.crc8()
- ow.check_crc16()
- ow.crc16()
###bit module
- bit.bnot()
- bit.band()
- bit.bor()
- bit.bxor()
- bit.lshift()
- bit.rshift()
- bit.arshift()
- bit.bit()
- bit.set()
- bit.clear()
- bit.isset()
- bit.isclear()
###spi module
###mqtt module
###mqtt.client sub-module
- mqtt.client:lwt()
- mqtt.client:connect()
- mqtt.client:close()
- mqtt.client:publish()
- mqtt.client:subscribe()
- mqtt.client:on()
##Новая таблица GPIO (начиная с версии 20141219 и более поздние)
##new_gpio_map
IO индекс | ESP8266 пин | IO индекс | ESP8266 пин |
---|---|---|---|
0 [*] | GPIO16 | 7 | GPIO13 |
1 | GPIO5 | 8 | GPIO15 |
2 | GPIO4 | 9 | GPIO3 |
3 | GPIO0 | 10 | GPIO1 |
4 | GPIO2 | 11 | GPIO9 |
5 | GPIO14 | 12 | GPIO10 |
6 | GPIO12 |
** [*] D0(GPIO16) может быть использован только как gpio чтение/запись. Нет поддержки прерываний. Нет pwm/i2c/ow **
##Старая таблица GPIO (до версии 20141212)
##old_gpio_map
IO индекс | ESP8266 пин | IO индекс | ESP8266 пин |
---|---|---|---|
0 | GPIO12 | 6 | GPIO9 |
1 | GPIO13 | 7 | GPIO10 |
2 | GPIO14 | 8 | GPIO0 |
3 | GPIO15 | 9 | GPIO2 |
4 | GPIO3 | 10 | GPIO4 |
5 | GPIO1 | 11 | GPIO5 |
#Как прошить NodeMCU ###Адрес
nodemcu_512k.bin: 0x00000
Используйте NodeMCU flash tool:
nodemcu-flasher
или любую другую программу
#node
####Описание Перезагрузка устройства
####Синтакс node.restart()
####Параметры
nil
####Возвращаемые значения
nil
####Пример
node.restart();
####Смотри также
####Описание Переход в режим глубокого сна, просыпается по таймауту
####Синтаксис
node.dsleep(us, option)
Примечание: Эта функция может быть использована только тогда, когда esp8266 PIN32(RST) и PIN8(XPD_DCDC aka GPIO16) соединены вместе.
####Параметры
-
us
: number(Integer) или nil, время в микросекундах. Если us = 0, то засыпает "навсегда". Если us = nil, время сна не будет установлено. -
option
: number(Integer) or nil. Если option = nil, будет установлено предыдущее значение по умолчанию.
####Возвращает
nil
####Пример
--do nothing
node.dsleep()
--sleep μs
node.dsleep(1000000)
--set sleep option, then sleep μs
node.dsleep(1000000, 4)
--set sleep option only
node.dsleep(nil,4)
####Смотри также - Содержание
####Описание Возвращает версию NodeMCU, chipid, flashid, размер flash, режим flash, скорость flash.
####Синтаксис
node.info()
####Параметры
nil
####Возвращает
-
majorVer
(number) -
minorVer
(number) -
devVer
(number) -
chipid
(number) -
flashid
(number) -
flashsize
(number) -
flashmode
(number) -
flashspeed
(number)
####Пример
majorVer, minorVer, devVer, chipid, flashid, flashsize, flashmode, flashspeed = node.info();
print("NodeMCU "..majorVer.."."..minorVer.."."..devVer)
####Смотри также - Содержание
####Описание Возвращает chip ID
####Синтаксис node.chipid()
####Параметры nil
####Возвращает number:chip ID
####Пример
id = node.chipid();
####Смотри также - Содержание
####Описание Возвращает flashid ID
####Синтаксис node.flashid()
####Параметры nil
####Возвращает number:flash ID
####Пример
flashid = node.flashid();
####Смотри также - Содержание
####Описание Возвращает размер свободной памяти в байтах
####Синтаксис node.heap()
####Параметры nil
####Возвращает number: размер свободной памяти в байтах
####Пример
heap_size = node.heap();
####Смотри также - Содержание
####Описание Задает функцию, вызываемую при нажатии ключа, ключ подключен к GPIO16.
####Синтаксис node.key(type, function())
####Параметры
type: тип нажатия, строка "long" или "short". long: нажать и удерживать более 3 сек, short: короткое нажатие(менее 3 сек)
function(): пользовательская функция, которая будет выполнена при нажатии ключа. Если nil, отменяет вызов функции по нажатию.
Действие по умолчанию: long: изменяет частоту мерцания светодиода, short: сброс чипа
####Возвращаемые значения nil
####Пример
node.key("long", function() print('hello world') end)
####Смотрите также - node.led
####Описание Задает время включения/выключения светодиода, подключенного к GPIO16, аналогично node.key()
####Синтаксис node.led(low, high)
####Параметры
Low: время нахождения светодиода в ВЫКЛЮЧЕННОМ состоянии, При low=0 светодио включен всегда. Время задается в миллисекундах, разрешение: 80100мс100мс
High: время нахождения светодиода в ВКЛЮЧЕННОМ состоянии. Время задается в миллисекундах, разрешение: 80
####Возвращаемые значения nil
####Пример
-- светодиод включен постоянно
node.led(0);
####Смотрите также - node.key
####Описание
Принимает строку и передает ее на выполнение в Lua интепретатор.
Аналогично pcall(loadstring(str)), но поддерживает значения, состоящие из нескольких строк.
####Синтаксис node.input(str)
####Параметры str: Lua порция, чанк (chunk)
####Возвращаемые значения nil
####Пример
-- never use node.input() in console. no effect.
sk:on("receive", function(conn, payload) node.input(payload) end)
####Описание Прямой вывод из lua интерпретатора в функцию
####Синтаксис node.output(function(str), serial_debug)
####Параметры
function(str): функция, принимающая str (может передать данные в сокет).
serial_debug: 1 вывод также в последовательный порт. 0: без вывода в последовательный порт
####Возвращаемые значения nil
####Пример
function tonet(str)
sk:send(str)
-- print(str) WRONG!!! never ever print something in this function
-- because this will cause a recursive function call!!!
end
node.ouput(tonet, 1) -- serial also get the lua output.
-- a simple telnet server
s=net.createServer(net.TCP)
s:listen(2323,function(c)
con_std = c
function s_output(str)
if(con_std~=nil)
then con_std:send(str)
end
end
node.output(s_output, 0) -- re-direct output to function s_ouput.
c:on("receive",function(c,l)
node.input(l) -- works like pcall(loadstring(l)) but support multiple separate line
end)
c:on("disconnection",function(c)
con_std = nil
node.output(nil) -- un-regist the redirect output function, output goes to serial
end)
end)
####Описание Считывает значение напряжения на пине vdd33
####Синтаксис node.readvdd33()
####Параметры нет ####Возвращаемые значения mV
####Пример
print(node.readvdd33())
output
3345
v = node.readvdd33() / 1000
print(v)
v=nil
output
3.315
####Описание Компилирует lua текстовый файл в бинарный lua файл и сохраняет его с расширением .lc
####Синтаксис node.compile("file.lua")
####Параметры lua текстовый файл с расширением ".lua" ####Возвращаемые значения nil
####Пример
file.open("hello.lua","w+")
file.writeline([[print("hello nodemcu")]])
file.writeline([[print(node.heap())]])
file.close()
node.compile("hello.lua")
dofile("hello.lua")
dofile("hello.lc")
#file module
####Описание Удаляет файл из файловой системы
####Синтаксис file.remove(filename)
####Параметры filename: имя файла для удаления
####Возвращаемые значения nil
####Пример
-- remove "foo.lua" from file system.
file.remove("foo.lua")
####Смотрите также
- file.open()
- file.close()
####Описание Открывает файл для чтения/записи
####Синтаксис file.open(filename, mode)
####Параметры
filename: имя файла, папки/каталоги не поддерживаются
режим:
"r": чтение (по умолчанию)
"w": запись
"a": добавление
"r+": обновление, все предыдущие данные сохраняются
"w+": обновление, все предыдущие данные удаляются
"a+": добавление c обновлением, предыдущие данные сохраняются, запись доступна только в конец файла
####Возвращаемые значения nil: файл не существует или не может быть открыт true: успешное открытие файла
####Пример
-- open 'init.lua', print the first line.
file.open("init.lua", "r")
print(file.readline())
file.close()
####Смотрите также
- file.close()
- file.readline()
####Описание Закрывает открытый ранее файл
####Синтаксис file.close()
####Параметры nil
####Возвращаемые значения nil
####Пример
-- open 'init.lua', print the first line.
file.open("init.lua", "r")
print(file.readline())
file.close()
####Смотрите также
- file.open()
- file.readline()
####Описание Считывает одну строку из ранее открытого файла
####Синтаксис file.readline()
####Параметры nil
####Возвращаемые значения
Содержимое файла, строка за строкой, включая символ конца строки EOL('\n')
Возвращает nil при достижении конца файла (EOF).
####Пример
-- print the first line of 'init.lua'
file.open("init.lua", "r")
print(file.readline())
file.close()
####Смотрите также
- file.open()
- file.close()
####Описание Записывает строку в ранее открытый файл добавляя в ее конец символ конца строки '\n'.
####Синтаксис file.writeline(string)
####Параметры string: строка для записи в файл
####Возвращаемые значения true: успех nil: ошибка
####Пример
-- open 'init.lua' in 'a+' mode
file.open("init.lua", "a+")
-- write 'foo bar' to the end of the file
file.writeline('foo bar')
file.close()
####Смотрите также
- file.open()
- file.write()
####Описание Чтение содержимого ранее открытого файла
####Синтаксис file.read()
####Параметры Если параметры не указаны, то возвращает все содержимое файла Если указано целое число n, то происходит чтение только n байт из файла, или меньше, если обнаружен конец файла EOF Если указана строка "q", то происходит чтение из файла до тех пор, пока не встретится 'q' или обнаружен конец файла EOF
####Возвращаемые значения
Содержимое файла в виде строки
Возвращает nil если обнаружен конец файла EOF
####Пример
-- print the first line of 'init.lua'
file.open("init.lua", "r")
print(file.read('\r'))
file.close()
-- print the first 5 byte of 'init.lua'
file.open("init.lua", "r")
print(file.read(5))
file.close()
####Смотрите также
- file.open()
- file.close()
####Описание Запись в файл
####Синтаксис file.write(string)
####Параметры string: содержимое для записи в файл
####Возвращаемые значения true: успех nil: ошибка
####Пример
-- open 'init.lua' in 'a+' mode
file.open("init.lua", "a+")
-- write 'foo bar' to the end of the file
file.write('foo bar')
file.close()
####Смотрите также
- file.open()
- file.writeline()
####Описание Сохраняет все данные, записанные в файл
####Синтаксис file.flush()
####Параметры nil
####Возвращаемые значения nil
####Пример
-- open 'init.lua' in 'a+' mode
file.open("init.lua", "a+")
-- write 'foo bar' to the end of the file
file.write('foo bar')
file.flush()
file.close()
####Смотрите также
- file.open()
- file.writeline()
####Описание Управляет позицией указателя в файле, отсчет идет от начала файла, к позиции со смещением плюс база, задаваемая строкой whence.
####Синтаксис file.seek(whence, offset)
####Параметры
whence:
"set": базовая позиция 0 (начало файла);
"cur": считать базовой текущую позицию;(по умолчанию)
"end": базовая позиция конец файла EOF;
offset: смещение, по умолчанию 0
####Возвращаемые значения
успех: возвращает позицию в файле после выполнения операции
ошибка: возвращает nil
####Пример
-- open 'init.lua' in 'a+' mode
file.open("init.lua", "a+")
-- write 'foo bar' to the end of the file
file.write('foo bar')
file.flush()
file.seek("set")
print(file.readline())
file.close()
####Смотрите также
- file.open()
- file.writeline()
####Описание Список всех файлов
####Синтаксис file.list()
####Параметры nil
####Возвращаемые значения таблица lua со структурой {file name: file size}
####Пример
l = file.list();
for k,v in pairs(l) do
print("name:"..k..", size:"..v)
end
####Смотрите также - file.remove()
####Описание Форматирование файловой системы
####Синтаксис file.format()
####Параметры nil
####Возвращаемые значения nil
####Пример
file.format()
####Смотрите также - file.remove()
####Описание Переименование файла. Примечание: если файл был открыт ранее, то происходит закрытие файла
####Синтаксис file.rename(oldname, newname)
####Параметры
oldname: старое имя файла, директории/папки/каталоги не поддерживаются
newname: новое имя файла, директории/папки/каталоги не поддерживаются
####Возвращаемые значения false: ошибка true: успех
####Пример
-- rename file 'temp.lua' to 'init.lua'.
file.rename("temp.lua","init.lua")
####Смотрите также
- file.close()
#wifi ##Константы wifi.STATION, wifi.SOFTAP, wifi.STATIONAP
####Описание Устанавливает режим wifi клиента и/или точки доступа (mode)
####Синтаксис wifi.setmode(mode)
####Параметры mode: одна из констант: wifi.STATION, wifi.SOFTAP or wifi.STATIONAP
####Возвращаемые значения Текущий режим после выполнения команды
####Пример
wifi.setmode(wifi.STATION)
####Смотрите также - wifi.getmode()
####Описание Позволяет получить текущий режим wifi.
####Синтаксис wifi.getmode()
####Параметры nil
####Возвращаемые значения wifi режим
####Пример
print(wifi.getmode())
####Смотрите также - wifi.setmode()
####Описание Запускает процесс автоконфигурации, если успешно, то устанавливает ssid и пароль
####Синтаксис wifi.startsmart(channel, function succeed_callback())
####Параметры
channel: 1~13, стартовый канал для поиска, если nil, то 6 по умолчанию. 20 сек на каждый канал.
succeed_callback: функция, которая вызывается после успешного выполнения команды и подключения к точке доступа
####Возвращаемые значения nil
####Пример
wifi.startsmart(6, function() end)
####Смотрите также - wifi.stopsmart()
####Описание Остановка процесса автоконфигурации
####Синтаксис wifi.stopsmart()
####Параметры nil
####Возвращаемые значения nil
####Пример
wifi.stopsmart()
####Смотрите также - wifi.startsmart()
####Описание Задает режим сна для wifi модема
####Синтаксис type_actual = wifi.sleeptype(type_need)
####Параметры
type_need:
wifi.NONE_SLEEP, wifi.LIGHT_SLEEP, wifi.MODEM_SLEEP
####Возвращаемые значения
type_actual:
wifi.NONE_SLEEP, wifi.LIGHT_SLEEP, wifi.MODEM_SLEEP
####Пример
realtype = wifi.sleeptype(wifi.MODEM_SLEEP)
####Смотрите также - node.dsleep()
#wifi.sta module
####Описание Задает ssid и пароль роутера, к которому подключаемся в режиме wifi клиента
####Синтаксис wifi.sta.config(ssid, password)
####Параметры
ssid: строка длинной менее 32 байт.
password: строка длинной менее 64 байт.
####Возвращаемые значения nil
####Пример
wifi.sta.config("myssid","mypassword")
####Смотрите также
- wifi.sta.connect()
- wifi.sta.disconnect()
####Описание Подключается к wifi точке доступа (режим wifi клиента)
####Синтаксис wifi.sta.connect()
####Параметры nil
####Возвращаемые значения nil
####Пример
wifi.sta.connect()
####Смотрите также
- wifi.sta.disconnect()
- wifi.sta.config()
####Описание Отключается от wifi точки доступа (режим wifi клиента)
####Синтаксис wifi.sta.disconnect()
####Параметры nil
####Возвращаемые значения nil
####Пример
wifi.sta.disconnect()
####Смотрите также
- wifi.sta.config()
- wifi.sta.connect()
####Описание Задает автоподключение к wifi точке доступа (режим wifi клиента) auto connect to AP in station mode.
####Синтаксис wifi.sta.autoconnect(auto)
####Параметры auto: 0 отключить автоподключение. 1 включить автоподключение
####Возвращаемые значения nil
####Пример
wifi.sta.autoconnect()
####Смотрите также
- wifi.sta.config()
- wifi.sta.connect()
- wifi.sta.disconnect()
####Описание Позволяет получить ip адрес, маску, шлюз по умолчанию (режим wifi клиента)
####Синтаксис wifi.sta.getip()
####Параметры nil
####Возвращаемые значения
ip адрес, маска, шлюз (строка, например:"192.168.0.111")
nil если ip = "0.0.0.0".
####Пример
-- print current ip, netmask, gateway
print(wifi.sta.getip())
-- 192.168.0.111 255.255.255.0 192.168.0.1
ip = wifi.sta.getip()
print(ip)
-- 192.168.0.111
ip, nm = wifi.sta.getip()
print(nm)
-- 255.255.255.0
####Смотрите также - wifi.sta.getmac()
####Описание Задает статический ip адрес, маску и шлюз по умолчанию (режим wifi клиента)
####Синтаксис wifi.sta.setip(cfg)
####Параметры
cfg: таблица, содержащая ip, маску и шлюз
{
"ip":"192.168.0.111",
"netmask":"255.255.255.0",
"gateway":"192.168.0.1"
}
####Возвращаемые значения
true если успешно
false если ошибка
####Пример
cfg =
{
"ip":"192.168.0.111",
"netmask":"255.255.255.0",
"gateway":"192.168.0.1"
}
wifi.sta.setip(cfg)
####Смотрите также - wifi.sta.setmac()
####Описание Позволяет получить MAC адрес (режим wifi клиента)
####Синтаксис wifi.sta.getmac()
####Параметры nil
####Возвращаемые значения mac адрес как строка, например:"18-33-44-FE-55-BB"
####Пример
-- print current mac address
print(wifi.sta.getmac())
####Смотрите также - wifi.sta.getip()
####Описание Позволяет задать MAC адрес (режим wifi клиента)
####Синтаксис wifi.sta.setmac(mac)
####Параметры mac адрес как строка байт, например:"\024\024\024\024\024\024"
####Возвращаемые значения true успех, false если ошибка
####Пример
print(wifi.sta.setmac("\024\024\024\024\024\024"))
####Смотрите также - wifi.sta.setip()
####Описание Сканирует wifi сеть и передает список доступных точек доступа lua таблицей в функцию
####Синтаксис wifi.sta.getap(function(table))
####Параметры
function(table): функция, которая вызывается по окончании сканирования сети
эта функция получает таблицу, с ключевым полем ssid, другие значения: authmode,rssi,bssid,channel
####Возвращаемые значения nil
####Пример
-- print ap list
function listap(t)
for k,v in pairs(t) do
print(k.." : "..v)
end
end
wifi.sta.getap(listap)
####Смотрите также - wifi.sta.getip()
####Описание Позволяет получить текущий статус
####Синтаксис wifi.sta.status()
####Параметры nil
####Возвращаемые значения number: 0~5 0: STATION_IDLE, 1: STATION_CONNECTING, 2: STATION_WRONG_PASSWORD, 3: STATION_NO_AP_FOUND, 4: STATION_CONNECT_FAIL, 5: STATION_GOT_IP.
####Описание Позволяет получить broadcast адрес подсети
####Синтаксис wifi.sta.getbroadcast()
####Параметры nil
####Возвращаемые значения
getbroadcast address строка, например:"192.168.0.255"
возвращает nil если ip = "0.0.0.0".
####Пример
bc = wifi.sta.getbroadcast()
print(bc)
-- 192.168.0.255
####Смотрите также - wifi.sta.getip()
#wifi.ap
####Описание Задает ssid и пароль сети в режиме точки доступа
####Синтаксис wifi.ap.config(cfg)
####Параметры cfg: lua таблица параметров
####Пример:
cfg={}
cfg.ssid="myssid"
cfg.pwd="mypwd"
wifi.ap.config(cfg)
####Возвращаемые значения nil
####Описание Позволяет получить ip адрес, маску и шлюз по умолчанию в режиме точки доступа
####Синтаксис wifi.ap.getip()
####Параметры nil
####Возвращаемые значения
ip, netmask, gateway address строка, например:"192.168.0.111"
возвращает nil если ip = "0.0.0.0".
####Пример
-- print current ip, netmask, gateway
print(wifi.ap.getip())
-- 192.168.4.1 255.255.255.0 192.168.4.1
ip = wifi.ap.getip()
print(ip)
-- 192.168.4.1
ip, nm = wifi.ap.getip()
print(nm)
-- 255.255.255.0
####Смотрите также - wifi.ap.getmac()
####Описание Устанавливает ip адрес, маску, шлюз по умолчанию для точки доступа
####Синтаксис wifi.ap.setip(cfg)
####Параметры
cfg: lua таблица параметров
{
"ip":"192.168.1.1",
"netmask":"255.255.255.0",
"gateway":"192.168.1.1"
}
####Возвращаемые значения true успех, false если ошибка
####Пример
cfg =
{
"ip":"192.168.1.1",
"netmask":"255.255.255.0",
"gateway":"192.168.1.1"
}
wifi.ap.setip(cfg)
####Смотрите также - wifi.ap.setmac()
####Описание Позволяет получить MAC адрес в режиме точки доступа
####Синтаксис wifi.ap.getmac()
####Параметры nil
####Возвращаемые значения mac адрес как строка, например:"1A-33-44-FE-55-BB"
####Пример
wifi.ap.getmac()
####Смотрите также - wifi.ap.getip()
####Описание Позволяет задать MAC адрес в режиме точки доступа
####Синтаксис wifi.ap.setmac(mac)
####Параметры mac адрес, строка байт, например:"\024\024\024\024\024\024"
####Возвращаемые значения true если успех, false если ошибка
####Пример
print(wifi.ap.setmac("\024\024\024\024\024\024"))
####Смотрите также - wifi.ap.setip()
####Описание Позволяет получить broadcast адрес в режиме точки доступа
####Синтаксис wifi.ap.getbroadcast()
####Параметры nil
####Возвращаемые значения
broadcast адрес как строка, например:"192.168.0.255"
возвращает nil если ip = "0.0.0.0".
####Пример
bc = wifi.ap.getbroadcast()
print(bc)
-- 192.168.0.255
####Смотрите также - wifi.ap.getip()
#timer
####Описание Задержка в микросекундах
####Синтаксис tmr.delay(us)
####Параметры us: задержка в микросекундах
####Возвращаемые значения nil
####Пример
-- delay 100us
tmr.delay(100)
####Смотрите также - tmr.now()
####Описание возвращает текущее значение счетчика времени: uint31, в микросекундах
####Синтаксис tmr.now()
####Параметры nil
####Возвращаемые значения uint31: значение в микросекундах
####Пример
-- print current value of counter
print(tmr.now())
####Смотрите также - tmr.delay()
####Описание Задает выполнение функции по расписанию
####Синтаксис tmr.alarm(id, interval, repeat, function do())
####Параметры
id: 0~6, идентификатор события
Interval: время в микросекундах
repeat: 0 - однократное выполнение, 1 - многократное выполнение
function do(): выполняемая функция
####Возвращаемые значения nil
####Пример
-- print "hello world" every 1000ms
tmr.alarm(0, 1000, 1, function() print("hello world") end )
####Смотрите также - tmr.now()
####Описание
Отмена выполнения функции по расписанию
####Синтаксис tmr.stop(id)
####Параметры id: 0~6, идентификатор события
####Возвращаемые значения nil
####Пример
-- print "hello world" every 1000ms
tmr.alarm(1, 1000, 1, function() print("hello world") end )
-- something else
-- stop alarm
tmr.stop(1)
####Смотрите также - tmr.now()
####Описание
Сброс системного сторожевого таймера
####Синтаксис tmr.wdclr()
####Параметры nil.
####Возвращаемые значения nil
####Пример
for i=1,10000 do
print(i)
tmr.wdclr() -- should call tmr.wdclr() in a long loop to avoid hardware reset caused by watchdog.
end
####Смотрите также - tmr.delay()
####Описание
Возвращает значение часов реального времени с момента запуска чипа в секундах, uint31
####Синтаксис tmr.time()
####Параметры nil.
####Возвращаемые значения number - значение в секундах
####Пример
####Смотрите также - tmr.now()
#GPIO module ##CONSTANT gpio.OUTPUT, gpio.INPUT, gpio.INT, gpio.HIGH, gpio.LOW
####Описание Переключение GPIO на вход/выход, управление внутренним подтягивающим резистором
####Синтаксис gpio.mode(pin, mode, pullup)
####Параметры
pin: 0~12, IO индекс из таблицы в начале этого руководства
mode: gpio.OUTPUT или gpio.INPUT, или gpio.INT(interrupt mode)
pullup: gpio.PULLUP or gpio.FLOAT, default: gpio.FLOAT.
####Возвращаемые значения nil
####Пример
-- set gpio 0 as output.
gpio.mode(0, gpio.OUTPUT)
####Смотрите также - gpio.read()
####Описание Чтение состояния GPIO
####Синтаксис gpio.read(pin)
####Параметры pin: 0~12, IO индекс из таблицы в начале этого руководства
####Возвращаемые значения number:0 - низкий уровень, 1 - высокий
####Пример
-- read value of gpio 0.
gpio.read(0)
####Смотрите также - gpio.mode()
####Описание Установка состояния GPIO
####Синтаксис gpio.write(pin)
####Параметры
pin: 0~12, IO индекс из таблицы в начале этого руководства
level: gpio.HIGH or gpio.LOW
####Возвращаемые значения nil
####Пример
-- set pin index 1 to GPIO mode, and set the pin to high.
pin=1
gpio.mode(pin, gpio.OUTPUT)
gpio.write(pin, gpio.HIGH)
####Смотрите также
- gpio.mode()
- gpio.read()
####Описание Назначение функции, выполняемой при изменении состояния GPIO
####Синтаксис gpio.trig(pin, type, function(level))
####Параметры
pin: 1~12, IO индекс из таблицы в начале этого руководства, пин D0 не поддерживает прерывания
type: "up", "down", "both", "low", "high", соответственно передний фронт, задний фронт, оба, низкий уровень, высокий уровень
function(level): вызываемой функции передается состояние GPIO как параметр.
####Возвращаемые значения nil
####Пример
-- use pin 0 as the input pulse width counter
pulse1 = 0
du = 0
gpio.mode(1,gpio.INT)
function pin1cb(level)
du = tmr.now() – pulse1
print(du)
pulse1 = tmr.now()
if level == 1 then gpio.trig(1, "down ") else gpio.trig(1, "up ") end
end
gpio.trig(1, "down ",pin1cb)
####Смотрите также
- gpio.mode()
- gpio.write()
#PWM module
####Описание Задает ШИМ на GPIO. Только 3 пина могут находится в состоянии ШИМ
####Синтаксис pwm.setup(pin, clock, duty)
####Параметры
pin: 112, IO индекс из таблицы в начале этого руководства1000, частота ШИМ
clock: 1
duty: 0~1023, ШИМ коэффициент заполнения, максимально 1023(10бит)
####Возвращаемые значения nil
####Пример
-- set pin index 1 as pwm output, frequency is 100Hz, duty cycle is half.
pwm.setup(1, 100, 512)
####Смотрите также - pwm.start()
####Описание Отключение режима ШИМ для GPIO
####Синтаксис pwm.close(pin)
####Параметры pin: 1~12, IO индекс из таблицы в начале этого руководства
####Возвращаемые значения nil
####Пример
pwm.close(1)
####Смотрите также - pwm.start()
####Описание Включение режима ШИМ для GPIO
####Синтаксис pwm.start(pin)
####Параметры pin: 1~12, IO индекс из таблицы в начале этого руководства
####Возвращаемые значения nil
####Пример
pwm.start(1)
####Смотрите также - pwm.stop()
####Описание Приостановка ШИМ для GPIO
####Синтаксис pwm.stop(pin)
####Параметры pin: 1~12, IO индекс из таблицы в начале этого руководства
####Возвращаемые значения nil
####Пример
pwm.stop(1)
####Смотрите также - pwm.start()
####Описание
Задание частоты ШИМ
-Примечание: Доступна только одна частота для чипа, при изменении на одном из пинов происходит синхронное изменение и на остальных
####Синтаксис pwm.setclock(pin, clock)
####Параметры
pin: 112, IO индекс из таблицы в начале этого руководства1000, частота ШИМ
clock: 1
####Возвращаемые значения nil
####Пример
pwm.setclock(1, 100)
####Смотрите также - pwm.getclock()
####Описание Получение текущей частоты ШИМ
####Синтаксис pwm.getclock(pin)
####Параметры pin: 1~12, IO индекс из таблицы в начале этого руководства
####Возвращаемые значения number: частота ШИМ
####Пример
print(pwm.getclock(1))
####Смотрите также - pwm.setclock()
####Описание Установка ШИМ коэффициента заполнения (duty cycle) для GPIO
####Синтаксис pwm.setduty(pin, duty)
####Параметры
pin: 112, IO индекс из таблицы в начале этого руководства1023, ШИМ коэффициента заполнения (duty cycle), максимально 1023(10bit).
duty: 0
####Возвращаемые значения nil
####Пример
pwm.setduty(1, 512)
####Смотрите также - pwm.getduty()
####Описание Получение ШИМ коэффициента заполнения (duty cycle) для GPIO
####Синтаксис pwm.getduty(pin)
####Параметры pin: 1~12, IO индекс из таблицы в начале этого руководства
####Возвращаемые значения number: ШИМ коэффициента заполнения, максимально 1023.
####Пример
-- D1 is connected to green led
-- D2 is connected to blue led
-- D3 is connected to red led
pwm.setup(1,500,512)
pwm.setup(2,500,512)
pwm.setup(3,500,512)
pwm.start(1)
pwm.start(2)
pwm.start(3)
function led(r,g,b)
pwm.setduty(1,g)
pwm.setduty(2,b)
pwm.setduty(3,r)
end
led(512,0,0) -- set led to red
led(0,0,512) -- set led to blue.
####Смотрите также - pwm.setduty()
#net ##Константы net.TCP, net.UDP
####Описание Запускает TCP сервер
####Синтаксис net.createServer(type, timeout)
####Параметры
type: net.TCP or net.UDP
timeout: для TCP сервера, таймаут 1~28800 сек для отключения неактивных клиентов
####Возвращаемые значения ссылка на net.server sub module
####Пример
net.createServer(net.TCP, 30) -- 30s timeout
####Смотрите также - net.createConnection()
####Описание Запускает TCP клиент
####Синтаксис net.createConnection(type, secure)
####Параметры
type: net.TCP or net.UDP
secure: 1 or 0, 1 для ssl соединения, 0 для обычного
####Возвращаемые значения ссылка на net.socket sub module
####Пример
net.createConnection(net.UDP, 0)
####Смотрите также - net.createServer()
#net.server module
####Описание Задает порт и адрес для входящих подключений на TCP сервере
####Синтаксис net.server.listen(port,[ip],function(net.socket))
####Параметры
port: порт
ip:ip адрес, как строка (необязательный параметр)
function(net.socket): функция, получающая как параметр сокет при успешном соединении
####Возвращаемые значения nil
####Пример
-- create a server
sv=net.createServer(net.TCP, 30) -- 30s time out for a inactive client
-- server listen on 80, if data received, print data to console, and send "hello world" to remote.
sv:listen(80,function(c)
c:on("receive", function(c, pl) print(pl) end)
c:send("hello world")
end)
####Смотрите также - net.createServer()
####Описание Остановка TCP сервера
####Синтаксис net.server.close()
####Параметры nil
####Возвращаемые значения nil
####Пример
-- create a server
sv=net.createServer(net.TCP, 30)
-- close server
sv:close()
####Смотрите также - net.createServer()
#net.socket module
####Описание Установка соединения с удаленным хостом
####Синтаксис connect(port, ip/domain)
####Параметры
port: номер порта
ip: ip адрес или доменное имя удаленного хоста
####Возвращаемые значения nil
####Смотрите также - net.socket:on() - Содержание
####Описание Отправка данных в сокет удаленному хосту
####Синтаксис send(string, function(sent))
####Параметры
string: данные для отправки
function(sent): вызываемая функция
####Возвращаемые значения
nil
####Смотрите также - net.socket:on()
####Описание Назначение функции для выполнения по событию
####Синтаксис on(event, function cb())
####Параметры
event
: событие, одно из: "connection", "reconnection", "disconnection", "receive", "sent"
function cb(net.socket, [string])
: функция, первый параметр - сокет
Если событие "receive", вторым параметром функция получает строку данных, полученных через сокет
####Возвращаемые значения
nil
####Пример
sk=net.createConnection(net.TCP, 0)
sk:on("receive", function(sck, c) print(c) end )
sk:connect(80,"192.168.0.66")
sk:send("GET / HTTP/1.1\r\nHost: 192.168.0.66\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n")
####Смотрите также - net.createServer()
####Описание Закрытие сокета
####Синтаксис close()
####Параметры nil
####Возвращаемые значения nil
####Смотрите также - net.createServer()
####Описание Получение IP адреса хоста по доменному имени
####Синтаксис dns(domain, function(net.socket, ip))
####Параметры
domain: доменное имя, например "www.esp8266.ru"
function (net.socket, ip): вызываемая функция. Первый параметр сокет, второй IP адрес, как строка
####Возвращаемые значения nil
####Пример
sk=net.createConnection(net.TCP, 0)
sk:dns("www.nodemcu.com",function(conn,ip) print(ip) end)
sk = nil
####Смотрите также - net.createServer()
#i2c module ##Константы i2c.SLOW, i2c.TRANSMITTER, i2c. RECEIVER. FAST(400k) в настоящее время не поддерживается
####Описание Инициализация i2c.
####Синтаксис i2c.setup(id, pinSDA, pinSCL, speed)
####Параметры
id = 0
pinSDA: 112, IO index12, IO index
pinSCL: 1
speed: i2c.SLOW
####Возвращаемые значения speed: установленная скорость.
####Смотрите также - i2c.read()
####Описание Старт i2c
####Синтаксис i2c.start(id)
####Параметры id = 0
####Возвращаемые значения nil
####Смотрите также - i2c.read()
####Описание Остановка i2c
####Синтаксис i2c.stop(id)
####Параметры id = 0
####Возвращаемые значения nil
####Смотрите также - i2c.read()
####Описание Установка i2c адреса и направления
####Синтаксис i2c.address(id, device_addr, direction)
####Параметры
id=0
device_addr: адрес устройства
direction: i2c.TRANSMITTER для передачи , i2c.RECEIVER лоя приема
####Возвращаемые значения true: ответ получен false: ответ не получен
####Смотрите также - i2c.read()
####Описание Передача данных по to i2c, данные могут состоять из нескольких чисел, строк или таблицы lua
####Синтаксис i2c.write(id, data1, data2,...)
####Параметры
id=0
data: данные могут состоять из нескольких чисел, строк или таблицы lua
####Возвращаемые значения number: количество переданных байт
####Пример
i2c.write(0, "hello", "world")
####Смотрите также - i2c.read()
####Описание Чтение данных по i2c
####Синтаксис i2c.read(id, len)
####Параметры
id=0
len: длинна данных
####Возвращаемые значения string:data received.
####Пример
id=0
sda=1
scl=2
-- initialize i2c, set pin1 as sda, set pin2 as scl
i2c.setup(id,sda,scl,i2c.SLOW)
-- user defined function: read from reg_addr content of dev_addr
function read_reg(dev_addr, reg_addr)
i2c.start(id)
i2c.address(id, dev_addr ,i2c.TRANSMITTER)
i2c.write(id,reg_addr)
i2c.stop(id)
i2c.start(id)
i2c.address(id, dev_addr,i2c.RECEIVER)
c=i2c.read(id,1)
i2c.stop(id)
return c
end
-- get content of register 0xAA of device 0x77
reg = read_reg(0x77, 0xAA)
print(string.byte(reg))
####Смотрите также - i2c.write()
#adc АЦП ##Константы нет
####Описание Чтение данных АЦП по id, esp8266 имеет только один АЦП 10bit adc, id=0, pin TOUT
####Синтаксис adc.read(id)
####Параметры id = 0
####Возвращаемые значения значение АЦП
#uart
##Константы нет
####Описание Устанавливает параметры последовательного порта: скорость, биты данных, четности, стоп-бит и эхо.
####Синтаксис uart.setup( id, baud, databits, parity, stopbits, echo )
####Параметры
id = 0, поддерживается только один последжовательный порт.
baud = 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 74880, 115200, 230400, 256000, 260800, 921600, 1843200, 3686400 .
databits = 5, 6, 7, 8.
parity = 0(none).
stopbits = 1(1 stopbit), 2(2 stopbit).
echo = 0
####Возвращаемые значения baud.
####Описание Позволяет задать функцию, вызываемую по событиям последовательного порта
####Синтаксис uart.on(method, [number/end_char], [function], [run_input])
####Параметры
method = "data", событие: получение данных
number/end_char: размер буфера приема n<255, функция будет вызвана, когда будет получено n байт
Если n=0, функция будет вызываться после получения каждого байта
Если задан не числовой параметр, а симовол "c", функция будет вызвана, когда будет получен символ "c", или когда будет получено max n=255 байт
function: вызываемая функция, которой передаются принятые данные в качестве параметра, при получении данных (наступлении события "data"): function(data) end
run_input: 0 или 1, 0: данные не будут переданы lua интерпретатору, можно использовать для приема бинарных данных
1: данные передаются на выполнение lua интерпретатору.
####Возвращаемые значения nil
####Пример
-- when 4 chars is received.
uart.on("data", 4,
function(data)
print("receive from uart:", data)
if data=="quit" then
uart.on("data")
end
end, 0)
-- when '\r' is received.
uart.on("data", "\r",
function(data)
print("receive from uart:", data)
if data=="quit\r" then
uart.on("data")
end
end, 0)
####Описание Передача строк(и) в последовательный порт
####Синтаксис uart.write( id, string1, string2... )
####Параметры
id = 0, поддерживается только один последовательный порт
string1..n: строка для передачи
####Возвращаемые значения nil
#onewire
##Константы none
####Описание
set a pin in onewire mode.
####Синтаксис ow.setup(pin)
####Параметры
pin: 1~12, IO index
####Возвращаемые значения nil
####Описание
Perform a 1-Wire reset cycle.
####Синтаксис ow.reset(pin)
####Параметры
pin: 1~12, IO index
####Возвращаемые значения number: Returns 1 if a device responds with a presence pulse. Returns 0 if there is no device or the bus is shorted or otherwise held low for more than 250uS
####Описание
Issue a 1-Wire rom skip command, to address all on bus.
####Синтаксис ow.skip(pin)
####Параметры
pin: 1~12, IO index
####Возвращаемые значения nil
####Описание
Issue a 1-Wire rom select command, make sure you do the ow.reset(pin) first.
####Синтаксис ow.select(pin, rom)
####Параметры
pin: 1~12, IO index
rom: string value, len 8, rom code of the salve device
####Возвращаемые значения nil
####Пример
-- 18b20 Example
pin = 9
ow.setup(pin)
count = 0
repeat
count = count + 1
addr = ow.reset_search(pin)
addr = ow.search(pin)
tmr.wdclr()
until((addr ~= nil) or (count > 100))
if (addr == nil) then
print("No more addresses.")
else
print(addr:byte(1,8))
crc = ow.crc8(string.sub(addr,1,7))
if (crc == addr:byte(8)) then
if ((addr:byte(1) == 0x10) or (addr:byte(1) == 0x28)) then
print("Device is a DS18S20 family device.")
repeat
ow.reset(pin)
ow.select(pin, addr)
ow.write(pin, 0x44, 1)
tmr.delay(1000000)
present = ow.reset(pin)
ow.select(pin, addr)
ow.write(pin,0xBE,1)
print("P="..present)
data = nil
data = string.char(ow.read(pin))
for i = 1, 8 do
data = data .. string.char(ow.read(pin))
end
print(data:byte(1,9))
crc = ow.crc8(string.sub(data,1,8))
print("CRC="..crc)
if (crc == data:byte(9)) then
t = (data:byte(1) + data:byte(2) * 256) * 625
t1 = t / 10000
t2 = t % 10000
print("Temperature="..t1.."."..t2.."Centigrade")
end
tmr.wdclr()
until false
else
print("Device family is not recognized.")
end
else
print("CRC is not valid!")
end
end
####Описание
Write a byte. If 'power' is 1 then the wire is held high at the end for parasitically powered devices. You are responsible for eventually depowering it by calling depower() or doing another read or write.
####Синтаксис ow.write(pin, v, power)
####Параметры
pin: 1~12, IO index
v: byte to be written to salve device
power: 1 for wire being held high for parasitically powered devices.
####Возвращаемые значения nil
####Пример
####Описание
Write multi bytes. If 'power' is 1 then the wire is held high at the end for parasitically powered devices. You are responsible for eventually depowering it by calling depower() or doing another read or write.
####Синтаксис ow.write_bytes(pin, buf, power)
####Параметры
pin: 1~12, IO index
buf: string to be written to salve device
power: 1 for wire being held high for parasitically powered devices.
####Возвращаемые значения nil
####Пример
####Описание
read a byte.
####Синтаксис ow.read(pin)
####Параметры
pin: 1~12, IO index
####Возвращаемые значения byte read from slave device.
####Пример
####Описание
read multi bytes.
####Синтаксис ow.read_bytes(pin, size)
####Параметры
pin: 1~12, IO index
size: number of bytes to be read from slave device.
####Возвращаемые значения string: bytes read from slave device.
####Пример
####Описание
Stop forcing power onto the bus. You only need to do this if you used the 'power' flag to ow.write() or used a ow.write_bytes() and aren't about to do another read or write.
####Синтаксис ow.depower(pin)
####Параметры
pin: 1~12, IO index
####Пример
####Возвращаемые значения nil
####Описание
Clear the search state so that it will start from the beginning again.
####Синтаксис ow.reset_search(pin)
####Параметры
pin: 1~12, IO index
####Возвращаемые значения nil
####Пример
####Описание
Setup the search to find the device type 'family_code' on the next call to ow.search() if it is present.
####Синтаксис ow.target_search(pin, family_code)
####Параметры
pin: 1~12, IO index
family_code: byte for family code.
####Возвращаемые значения nil
####Пример
####Описание
Look for the next device.
####Синтаксис ow.search(pin)
####Параметры
pin: 1~12, IO index
####Возвращаемые значения
if succeed return a string length of 8, which contain the rom code of slave device.
if failed in searching next device return nil.
####Пример
####Описание
Compute a Dallas Semiconductor 8 bit CRC, these are used in the ROM and scratchpad registers.
####Синтаксис ow.crc8(buf)
####Параметры
buf: string value, data to be calculated check sum in string.
####Возвращаемые значения crc result in byte.
####Пример
####Описание
Compute the 1-Wire CRC16 and compare it against the received CRC.
####Синтаксис ow.check_crc16(buf, inverted_crc0, inverted_crc1, crc)
####Параметры
buf: string value, data to be calculated check sum in string.
inverted_crc0: LSB of received CRC.
inverted_crc1: MSB of received CRC.
crc: crc starting value (optional)
####Возвращаемые значения bool: true, if the CRC matches; false for dismatches.
####Пример
####Описание
Compute a Dallas Semiconductor 16 bit CRC. This is required to check the integrity of data received from many 1-Wire devices. Note that the CRC computed here is not what you'll get from the 1-Wire network, for two reasons:
1) The CRC is transmitted bitwise inverted.
2) Depending on the endian-ness of your processor, the binary representation of the two-byte return value may have a different byte order than the two bytes you get from 1-Wire.
####Синтаксис ow.crc16(buf, crc)
####Параметры
buf: string value, data to be calculated check sum in string.
crc: crc starting value (optional)
####Возвращаемые значения return The CRC16, as defined by Dallas Semiconductor.
####Пример
#bit module
##CONSTANT none
####Описание
Bitwise negation, equivalent to ~value in C.
####Синтаксис bit.bnot(value)
####Параметры value: the number to negate.
####Возвращаемые значения number: the bitwise negated value of the number.
####Пример
####Описание
Bitwise AND, equivalent to val1 & val2 & ... & valn in C.
####Синтаксис bit.band(val1, val2, ... valn)
####Параметры
val1: first AND argument.
val2: second AND argument.
valn: nth AND argument.
####Возвращаемые значения number: the bitwise AND of all the arguments.
####Пример
####Описание
Bitwise OR, equivalent to val1 | val2 | ... | valn in C.
####Синтаксис bit.bor(val1, val2, ... valn)
####Параметры
val1: first OR argument.
val2: second OR argument.
valn: nth OR argument.
####Возвращаемые значения number: the bitwise OR of all the arguments.
####Пример
####Описание
Bitwise XOR, equivalent to val1 ^ val2 ^ ... ^ valn in C.
####Синтаксис bit.bxor(val1, val2, ... valn)
####Параметры
val1: first XOR argument.
val2: second XOR argument.
valn: nth XOR argument.
####Возвращаемые значения number: the bitwise XOR of all the arguments.
####Пример
####Описание
Left-shift a number, equivalent to value << shift in C.
####Синтаксис bit.lshift(value, shift)
####Параметры
value: the value to shift.
shift: positions to shift.
####Возвращаемые значения number: the number shifted left
####Пример
####Описание
Logical right shift a number, equivalent to ( unsigned )value >> shift in C.
####Синтаксис bit.rshift(value, shift)
####Параметры
value: the value to shift.
shift: positions to shift.
####Возвращаемые значения number: the number shifted right (logically).
####Пример
####Описание
Arithmetic right shift a number equivalent to value >> shift in C.
####Синтаксис bit.arshift(value, shift)
####Параметры
value: the value to shift.
shift: positions to shift.
####Возвращаемые значения number: the number shifted right (arithmetically).
####Пример
####Описание
Generate a number with a 1 bit (used for mask generation). Equivalent to 1 << position in C.
####Синтаксис bit.bit(position)
####Параметры position: position of the bit that will be set to 1.
####Возвращаемые значения number: a number with only one 1 bit at position (the rest are set to 0).
####Пример
####Описание
Set bits in a number.
####Синтаксис bit.set(value, pos1, pos2, ..., posn)
####Параметры
value: the base number.
pos1: position of the first bit to set.
pos2: position of the second bit to set.
posn: position of the nth bit to set.
####Возвращаемые значения number: the number with the bit(s) set in the given position(s).
####Пример
####Описание
Clear bits in a number.
####Синтаксис bit.clear(value, pos1, pos2, ..., posn)
####Параметры
value: the base number.
pos1: position of the first bit to clear.
pos2: position of the second bit to clear.
posn: position of thet nth bit to clear.
####Возвращаемые значения number: the number with the bit(s) cleared in the given position(s).
####Пример
####Описание
Test if a given bit is set.
####Синтаксис bit.isset(value, position)
####Параметры
value: the value to test.
position: bit position to test.
####Возвращаемые значения boolean: true if the bit at the given position is 1, false otherwise.
####Пример
####Описание
Test if a given bit is cleared.
####Синтаксис bit.isclear(value, position)
####Параметры
value: the value to test.
position: bit position to test.
####Возвращаемые значения boolean: true if the bit at the given position is 0, false othewise.
####Пример
#spi module ##CONSTANT MASTER, SLAVE, CPHA_LOW, CPHA_HIGH, CPOL_LOW, CPOL_HIGH, DATABITS_8, DATABITS_16
####Описание
setup spi configuration.
####Синтаксис spi.setup( id, mode, cpol, cpha, databits, clock )
####Параметры
id: spi id number.
mode: MASTER or SLAVE(not supported yet).
cpol: CPOL_LOW or CPOL_HIGH, clock polarity.
cpha: CPHA_HIGH or CPHA_LOW, clock phase.
databits: DATABITS_8 or DATABITS_16.
clock: spi clock (not supported yet).
####Возвращаемые значения number: 1.
####Пример
####Описание
send data to spi.
####Синтаксис wrote = spi.send( id, data1, [data2], ..., [datan] )
####Параметры
id: spi id number.
data: data can be either a string, a table or an 8-bit number
####Возвращаемые значения number: bytes writen count.
####Пример
####Описание
recv data from spi.
####Синтаксис read = spi.recv( id, size )
####Параметры
id: spi id number.
size: data size want to read.
####Возвращаемые значения string: string bytes read from spi.
####Пример
#mqtt module ##CONSTANT
####Описание Create a MQTT client. The client adheres to version 3.1.1 of the MQTT protocol, make sure that your broker supports and is correctly configured for version 3.1.1 of the MQTT protocol. The client is incompatible with brokers running version 3.1 of the MQTT protocol.
####Синтаксис mqtt.Client(clientid, keepalive, user, pass)
####Параметры
clientid: the client id.
keepalive: keepalive second, a number.
user: user name, a string.
pass: user password, a string.
####Возвращаемые значения mqtt client.
####Пример
-- init mqtt client with keepalive timer 120sec
m = mqtt.Client("clientid", 120, "user", "password")
-- setup Last Will and Testament (optional)
-- Broker will publish a message with qos = 0, retain = 0, data = "offline"
-- to topic "/lwt" if client don't send keepalive packet
m:lwt("/lwt", "offline", 0, 0)
m:on("connect", function(con) print ("connected") end)
m:on("offline", function(con) print ("offline") end)
-- on publish message receive event
m:on("message", function(conn, topic, data)
print(topic .. ":" )
if data ~= nil then
print(data)
end
end)
-- for secure: m:connect("192.168.11.118", 1880, 1)
m:connect("192.168.11.118", 1880, 0, function(conn) print("connected") end)
-- subscribe topic with qos = 0
m:subscribe("/topic",0, function(conn) print("subscribe success") end)
-- publish a message with data = hello, QoS = 0, retain = 0
m:publish("/topic","hello",0,0, function(conn) print("sent") end)
m:close();
-- you can call m:connect again
#mqtt client module
####Описание
setup Last Will and Testament (optional)
Broker will publish a message with qos = 0, retain = 0, data = "offline"
to topic "/lwt" if client don't send keepalive packet.
####Синтаксис mqtt:lwt(topic, message, qos, retain)
####Параметры
topic: the topic to publish to, String.
message: the message to publish, Buffer or String.
qos: qos level, default 0.
retain: retain flag, default 0.
####Возвращаемые значения nil.
####Пример
####Описание Connects to the broker specified by the given host, port, and secure options
####Синтаксис mqtt:connect( host, port, secure, function(client) )
####Параметры
host: host domain or ip, string.
port: number, broker port.
secure: 0 or 1, default 0.
function(client): when connected, call this function.
####Возвращаемые значения nil.
####Пример
####Описание close connection to the broker.
####Синтаксис mqtt:close()
####Параметры nil
####Возвращаемые значения nil.
####Пример
####Описание Publish a message
####Синтаксис mqtt:publish( topic, payload, qos, retain, function(client) )
####Параметры
topic: the topic to publish to, string
message: the message to publish, string
qos: qos level, default 0
retain: retain flag, default 0
function(client): callback fired when PUBACK received.
####Возвращаемые значения nil.
####Пример
####Описание Subscribe to a topic or topics
####Синтаксис mqtt:subscribe(topic, qos, function(client, topic, message))
####Параметры
topic: a string topic to subscribe to
qos: qos subscription level, default 0
function(client, topic, message): callback fired when message received.
####Возвращаемые значения nil.
####Пример
####Описание register callback function to event.
####Синтаксис mqtt:on(event, function(client, [topic], [message]))
####Параметры
event: string, which can be: "connect", "message", "offline"
function cb(client, [topic], [message]): callback function. The first param is the client.
If event is "message", the 2nd and 3rd param are received topic and message in string.
####Возвращаемые значения nil.
####Пример