- Что за модуль ESP8266?
- Сергей_Ф
- nikolz
- zlolik
- nikolz
- WiFi Module¶
- wifi.getchannel()¶
- Syntax¶
- Parameters¶
- Returns¶
- wifi.getmode()¶
- Syntax¶
- Parameters¶
- Returns¶
- See also¶
- wifi.mode()¶
- Syntax¶
- Parameters¶
- Returns¶
- Example¶
- See also¶
- wifi.start()¶
- Syntax¶
- Parameters¶
- Returns¶
- See also¶
- wifi.stop()¶
- Syntax¶
- Parameters¶
- Returns¶
- See also¶
- wifi.sta Module¶
- wifi.sta.config()¶
- Syntax¶
- Parameters¶
- Returns¶
- Example¶
- See also¶
- wifi.sta.connect()¶
- Syntax¶
- Parameters¶
- Returns¶
- See also¶
- wifi.sta.disconnect()¶
- Syntax¶
- Parameters¶
- Returns¶
- See also¶
- wifi.sta.settxpower¶
- Syntax¶
- Parameters¶
- Returns¶
- Example¶
- wifi.sta.on()¶
- Syntax¶
- Parameters¶
- Returns¶
- Example¶
- wifi.sta.getmac()¶
- NodeMCU (Lua) — Wi-Fi
- Клиент
- Точка доступа
- Совмещенный режим
- События
- Поиск сетей
Что за модуль ESP8266?
Добрый день!
Попал в руки вот такой модуль — 1pcs D1 mini Mini NodeMcu 4M bytes Lua WIFI Internet of Things development board based ESP8266 by WeMos купить на AliExpress
Подскажите, пожалуйста, что это и с чем его едят?)))
Что можно реализовать на нем?
Спасибо.
Сергей_Ф
Moderator
nikolz
Well-known member
zlolik
New member
PORT OPEN 115200 Communication with MCU..Got answer! Communication with MCU established. AutoDetect firmware. Can't autodetect firmware, because proper answer not received (may be unknown firmware). Please, reset module or continue. 29 2016 15:10:17) SDK version:1.5.2(7eee54f4) Ai-Thinker Technology Co. Ltd. May 5 2016 17:30:30 OK AT+RST OK WIFI DISCONNECT ets Jan 8 2013,rst cause:2, boot mode:(3,0) load 0x40100000, len 1856, room 16 tail 0 chksum 0x63 load 0x3ffe8000, len 776, room 8 tail 0 chksum 0x02 load 0x3ffe8310, len 552, room 8 tail 0 chksum 0x79 csum 0x79 2nd boot version : 1.5 SPI Speed : 40MHz SPI Mode : DIO SPI Flash Size & Map: 8Mbit(512KB+512KB) jump to run user1 @ 1000 don't use rtc mem data rl��s� Ai-Thinker Technology Co. Ltd. ready WIFI CONNECTED WIFI GOT IP
nikolz
Well-known member
PORT OPEN 115200 Communication with MCU..Got answer! Communication with MCU established. AutoDetect firmware. Can't autodetect firmware, because proper answer not received (may be unknown firmware). Please, reset module or continue. 29 2016 15:10:17) SDK version:1.5.2(7eee54f4) Ai-Thinker Technology Co. Ltd. May 5 2016 17:30:30 OK AT+RST OK WIFI DISCONNECT ets Jan 8 2013,rst cause:2, boot mode:(3,0) load 0x40100000, len 1856, room 16 tail 0 chksum 0x63 load 0x3ffe8000, len 776, room 8 tail 0 chksum 0x02 load 0x3ffe8310, len 552, room 8 tail 0 chksum 0x79 csum 0x79 2nd boot version : 1.5 SPI Speed : 40MHz SPI Mode : DIO SPI Flash Size & Map: 8Mbit(512KB+512KB) jump to run user1 @ 1000 don't use rtc mem data rl��s� Ai-Thinker Technology Co. Ltd. ready WIFI CONNECTED WIFI GOT IP
Я получил два -все нормально. Но я брал по 168 р.
Еще заказал.
Попробуйте записать nodemcu и отформатировать файловую систему. потом посмотреть ее размер.
WiFi Module¶
The NodeMCU WiFi control is spread across several tables:
- wifi for overall WiFi configuration
- wifi.sta for station mode functions
- wifi.ap for access point (AP) functions
wifi.getchannel()¶
Gets the current WiFi channel.
Syntax¶
Parameters¶
Returns¶
- current WiFi channel (primary channel)
- HT20/HT40 information (secondary channel). One of the constants:
- wifi.HT20
- wifi.HT40_ABOVE
- wifi.HT40_BELOW
wifi.getmode()¶
Syntax¶
Parameters¶
Returns¶
The WiFi mode, as one of the wifi.STATION , wifi.SOFTAP , wifi.STATIONAP or wifi.NULLMODE constants.
See also¶
wifi.mode()¶
Configures the WiFi mode to use. NodeMCU can run in one of four WiFi modes:
- Station mode, where the NodeMCU device joins an existing network
- Access point (AP) mode, where it creates its own network that others can join
- Station + AP mode, where it both creates its own network while at the same time being joined to another existing network
- WiFi off
When using the combined Station + AP mode, the same channel will be used for both networks as the radio can only listen on a single channel.
Syntax¶
Parameters¶
- mode value should be one of
- wifi.STATION for when the device is connected to a WiFi router. This is often done to give the device access to the Internet.
- wifi.SOFTAP for when the device is acting only as an access point. This will allow you to see the device in the list of WiFi networks (unless you hide the SSID, of course). In this mode your computer can connect to the device, creating a local area network. Unless you change the value, the NodeMCU device will be given a local IP address of 192.168.4.1 and assign your computer the next available IP address, such as 192.168.4.2.
- wifi.STATIONAP is the combination of wifi.STATION and wifi.SOFTAP . It allows you to create a local WiFi connection and connect to another WiFi router.
- wifi.NULLMODE disables the WiFi interface(s). Use wifi.stop() to fully shut down the WiFi interface.
- true WiFi mode configuration will be retained through power cycle. (Default)
- false WiFi mode configuration will not be retained through power cycle.
Returns¶
Example¶
See also¶
wifi.start()¶
Starts the WiFi interface(s). On system startup the WiFi interface(s) are not running. This is to enable users to choose whether to expend the power necessary for radio comms. A sensor device running on battery might only want to enable WiFi every 10th boot for example.
Syntax¶
Parameters¶
Returns¶
See also¶
wifi.stop()¶
Shuts down the WiFi interface(s).
Syntax¶
Parameters¶
Returns¶
See also¶
wifi.sta Module¶
wifi.sta.config()¶
Sets the WiFi station configuration.
The WiFi mode must be set to wifi.STATION or wifi.STATIONAP before this function can be used.
Note that the earlier auto-connect feature is no longer available due to being removed in the SDK/IDF. After start-up it is necessary to call wifi.stat.connect() manually.
Syntax¶
Parameters¶
- station_config table containing configuration data for station
- ssid string which is less than 32 bytes.
- pwd string which is 8-64 or 0 bytes. Empty string indicates an open WiFi access point.
- bssid string that contains the MAC address of the access point (optional)
- You can set BSSID if you have multiple access points with the same SSID.
- Note: if you set BSSID for a specific SSID and would like to configure station to connect to the same SSID only without the BSSID requirement, you MUST first configure to station to a different SSID first, then connect to the desired SSID
- The following formats are valid:
- «DE:C1:A5:51:F1:ED»
- «AC-1D-1C-B1-0B-22»
- «DE AD BE EF 7A C0»
- wifi.sta.PMF_OFF
- wifi.sta.PMF_AVAILABLE
- wifi.sta.PMF_REQUIRED . Defaults to wifi.sta.PMF_AVAILABLE . PMF is required when joining to WPA3-Personal access points.
- true configuration will be retained through power cycle.
- false configuration will not be retained through power cycle. (Default)
Returns¶
Example¶
--connect to Access Point (DO NOT save config to flash) station_cfg=<> station_cfg.ssid="NODE-AABBCC" station_cfg.pwd="password" wifi.sta.config(station_cfg) --connect to Access Point (DO save config to flash) station_cfg=<> station_cfg.ssid="NODE-AABBCC" station_cfg.pwd="password" wifi.sta.config(station_cfg, true) --connect to Access Point with specific MAC address station_cfg=<> station_cfg.ssid="NODE-AABBCC" station_cfg.pwd="password" station_cfg.bssid="AA:BB:CC:DD:EE:FF" wifi.sta.config(station_cfg)
See also¶
wifi.sta.connect()¶
Connects to the configured AP in station mode. You will want to call this on start-up after wifi.start() , and quite possibly also in response to disconnected events.
Syntax¶
Parameters¶
Returns¶
See also¶
wifi.sta.disconnect()¶
Disconnects from AP in station mode.
Please note that disconnecting from Access Point does not reduce power consumption much. If power saving is your goal, please use wifi.stop() .
Syntax¶
Parameters¶
Returns¶
See also¶
wifi.sta.settxpower¶
Allows adjusting the maximum TX power for the WiFi. This is (unfortunately) needed for some boards which have a badly matched antenna.
Syntax¶
Parameters¶
- power The maximum transmit power in dBm. This must have the range 2dBm — 20dBm. This value is a float.
Returns¶
A boolean where true is OK.
Example¶
# Needed for the WEMOS C3 Mini wifi.sta.settxpower(8.5)
wifi.sta.on()¶
Registers callbacks for WiFi station status events.
Syntax¶
Parameters¶
- event WiFi station event you would like to set a callback for:
- «start»
- «stop»
- «connected»
- «disconnected»
- «authmode_changed»
- «got_ip»
Event information provided for each event is as follows:
- start : no additional info
- stop : no additional info
- connected : information about network/AP that was connected to:
- ssid : the SSID of the network
- bssid : the BSSID of the AP
- channel : the primary channel of the network
- auth authentication method, one of wifi.AUTH_OPEN , wifi.AUTH_WPA_PSK , wifi.AUTH_WPA2_PSK , wifi.WPA_WPA2_PSK , wifi.AUTH_WPA3_PSK , wifi.AUTH_WAPI_PSK
- ssid : the SSID of the network
- bssid : the BSSID of the AP
- reason : an integer code for the reason (see table below for mapping)
- old_mode : the previous auth mode used
- new_mode : the new auth mode used
- ip : the IP address assigned
- netmask : the IP netmask
- gw : the gateway («0.0.0.0» if no gateway)
Table containing disconnect reasons.
Disconnect reason value UNSPECIFIED 1 AUTH_EXPIRE 2 AUTH_LEAVE 3 ASSOC_EXPIRE 4 ASSOC_TOOMANY 5 NOT_AUTHED 6 NOT_ASSOCED 7 ASSOC_LEAVE 8 ASSOC_NOT_AUTHED 9 DISASSOC_PWRCAP_BAD 10 DISASSOC_SUPCHAN_BAD 11 IE_INVALID 13 MIC_FAILURE 14 4WAY_HANDSHAKE_TIMEOUT 15 GROUP_KEY_UPDATE_TIMEOUT 16 IE_IN_4WAY_DIFFERS 17 GROUP_CIPHER_INVALID 18 PAIRWISE_CIPHER_INVALID 19 AKMP_INVALID 20 UNSUPP_RSN_IE_VERSION 21 INVALID_RSN_IE_CAP 22 802_1X_AUTH_FAILED 23 CIPHER_SUITE_REJECTED 24 BEACON_TIMEOUT 200 NO_AP_FOUND 201 AUTH_FAIL 202 ASSOC_FAIL 203 HANDSHAKE_TIMEOUT 204 Returns¶
Example¶
--register callback wifi.sta.on("got_ip", function(ev, info) print("NodeMCU IP config:", info.ip, "netmask", info.netmask, "gw", info.gw) end) --unregister callback wifi.sta.on("got_ip", nil)
wifi.sta.getmac()¶
Gets MAC address in station mode.
NodeMCU (Lua) — Wi-Fi
Начиная свое знакомство с микроконтроллером ESP8266, первым делом захочется подключиться к Wi-Fi и попробовать сетевые возможности данного микроконтроллера. Для работы с Wi-Fi в NodeMCU существует специальный модуль, который так и называется WiFi module. Данный модуль позволяет устанавливать различные режимы работы и настраивать подключения к Wi-Fi сети.
Существует три режима работы Wi-Fi в ESP8266
- Клиент. (STA)
- Точка доступа. (AP)
- Совмещенный режим. (STA + AP)
- Wi-Fi выключен.
Клиент
Один из самых часто используемый режимов работы это режим клиента. Для того чтобы подключиться достаточно несколько строк кода, где нужно указать SSID и пароль вашей Wi-Fi сети.
cfg = > cfg.ssid = "MY-NET" -- SSID cfg.pwd = "myPassword" -- пароль cfg.save = false -- не сохранять настройки (по умолчанию true) wifi.setmode(wifi.STATION) -- выбор режима wifi.sta.config(cfg) -- установка настроек и подключения к Wi-Fi
Точка доступа
В режиме точки доступа, ESP8266 создает свою собственную сеть, к которой могут присоединиться другие устройства (телефон, ПК и т.д). Максимальное количество устройств, которые могут быть одновременно подключены — пять. Данный режим часто используется как промежуточный этап перед подключением ESP8266 к WiFi в режиме клиента. Например, для первоначальной настройки.
cfg= ssid="NODE-XXXXXX", pwd="password" > wifi.setmode(wifi.SOFTAP) wifi.ap.config(cfg)
Если пароль не указывать, то будет создана открытая точка. При подключении, ESP8266 по умолчании выдается ip адрес 192.168.4.1, а клиенту 192.168.4.2
Совмещенный режим
Совмешенный режим Station + AP, когда ESP8266 создает свою собственную сеть и одновременно подключается к другой сети.
. Имейте ввиду что при использовании совмещенного режима используется один и тот же канал для обеих сетей, поскольку ESP8266 может прослушивать только один канал.
cfg_ap= ssid="NODE-XXXXXX", pwd="password" > cfg_sta= ssid="NET", pwd="password" > wifi.setmode(wifi.STATIONAP) wifi.ap.config(cfg_ap) wifi.sta.config(cfg_sta)
События
Для отслеживания различных событий существую функция callback на которую можно подписаться.
wifi.eventmon.register(wifi.eventmon.STA_CONNECTED, function(T) print("STA_CONNECTED") -- вызовется при подключении к сети dofile('my_script.lua') end) wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T) print("STA_DISCONNECTED") -- вызовется при отключении от сети end
Например, если ваш скрипт передает данные на сервер, то пока подключение с сетью не будет установлено, нет смысла запускать ваш скрипт раньше.
Событие вызывается каждый раз при подключении или отключении от сети (в зависимости на какое событие вы подписались), это нужно учитывать в вашем коде.
Поиск сетей
Чтобы иметь возможность сканировать доступные сети, в модули существует функция wifi.sta.getap(), но доступ к этой функция есть только в режиме клиента или совмещенный. При попытки запустить ее из режима точки доступа, выдаст ошибку с предупреждением.
function listap(t) -- callback функция for k,v in pairs(t) do -- разбираем таблицу print(k.." : "..v) -- выводим значения в консоль end end wifi.sta.getap(1, listap) -- 1 это формат данных возвращаемой таблицы
Сегодня я постарался написать об основных функциях которые потребуются для работы ESP8266 с Wi-Fi сетями, о других возможностях Wi-Fi модуля можно узнать если внимательно изучить документацию.