如何编译nodemcu的源码

如何编译nodemcu的源码,第1张

 首先导出的LUA文件是这样的

箭头指向的位置有个Create函数。就是调用这个函数进行创建。(至于这个参数是什么,后边会讲到)

首先,先将导出的这个文件require进来,进来之后呢,调用create方法,就会返回Cocos创建的Scene了~

代码如下:

1

 前液 

local csLuaScene = require("Scene.lua").create()

然衫悔氏后create 方法返回的结果是一个table,通过csLuaScene['root']来获得创建的Scene,接着replaceScene就可以了!对于“图层”和“节点”也是类似的 *** 作!

最后通过一系列的getChildByName 和 GetChildByTag 获取子节点进行 *** 作就可以了!

啊,对了,获取动画的方式和获取Scene的方式相似 csLuaScene['animation']!

接下来,create函数的那个参数是什么东西呢?

来看这个图 ,我给Button_1添加了一个叫做btn2的Click事件

生成LUA代码之后,能够发现有如下代码段:

这段代码,首先判断callBackProvider是否为空,然后呢,将他的返回值设置为Button_1的Click回调函数。

这样就很明白了。create时候需要传入的参数callBackProvider是一个函数,他的功能是根据传入的3个参数进行判断,最终返回一个函数最为Button(或者其他node)的回调函数!

callBackProvider的三个参数,分别是,当前LUA文件的路径,所绑定的Node(可以通过name或者tag来判断是哪个node),或散最后是回调函数的名字,通过这三个参数可以很容易的知道是哪个按钮的回调事件,从而返回该按钮所需要的回调函数。

所以,在create时候应该是这样的:

local callBackProvider = function ( path,node,funcName )

if path == "Scene.lua" and node:getName()=="Button_1" and funcName =="bnt2" then

local function btnCallback( node,eventType )

--TODO

end

return btnCallback

end

end

local csLuaScene = require("Scene.lua").create(callBackProvider)

也许大家看第一篇文章时候,注意到 我这里提示了一个错误,版本不兼容。是时候更新到3.5了!如果不想更新的话,就把3.5的UI的部分替换过来吧………

本文采用 ESP8266 NodeMCU 板开发,该开发板板载LED灯,同IO引脚为D0(GPIO16)口相连,LED灯为共阳接法,也就是要想LED灯点亮,D0(GPIO16)口要输出低电平“0”。

打开 Arduino 点击 “工具” - “开发板” ,选择 NodeMCU1.0(ESP12E Module)

点击菜单栏 “文件” - “示例”- “01.Basice”- “01.Basice”- “Blink”, 可查看示例LED闪光灯控轮迅制程序,该程序控制LED灯亮一秒灭一秒。

程序说明:

1.在使用输入或者输出功能前旅镇需通过 pinMode() 函数配置引脚模式

其调用形式为:

pinMode(pin,mode)

I/O引脚的三种模式分别为: INPUT —— 输入模式; OUTPUT —— 输出模式;INPUT _PULLUP —— 输入上拉模式;

2.配置为输出模式后,需用通过 digitalWrite() 函数输出高电平或低电平;其调用形式为:

digitalWrite(pin,value)

a.点击 “工具” - “端口” ,选腊镇此择在设备管理中看到的串口。

b.点击 “工具” - “Upload Speed” ,选择 115200

c.点击 上传 ,将写的程序烧录到 MCU 中,期间 ESP8266 的指示灯会一直闪烁,在 Arduino 控制台中会显示上传进度,上传到 100% 就可以查看效果了。

在上传完车后,开发板上LED灯将会亮一秒灭一秒的循环进行下去。

模块设置

AT—Tests AT Startup

命令

AT

复制

返回

OK

复制

AT+RST—复位模块

命令

AT+RST

复制

返回

OK

复制

AT+RESTORE—恢复出厂设置

命令

AT+RESTORE

复制

响应

OK

复制

ATE—AT 命令回显

关闭回显

ATE0

复制

打开回显

ATE1

复制

AT+UART_CUR—当前UART设置,不保存到Flash

查询

AT+UART_CUR?

复制

设置

AT+UART_CUR=<baudrate>,<databits>,<stopbits>,<parity>,<flow control>

复制

参数说明

<baudrate>: UART baud rate

<databits>: data bits

5: 5-bit data

6: 6-bit data

7: 7-bit data

8: 8-bit data

<stopbits>: stop bits

1: 1-bit stop bit

2: 1.5-bit stop bit

3: 2-bit stop bit

<parity>: parity bit

0: None

1: Odd

2: Even

<flow control>: flow control

0: flow control is not enabled

1: enable RTS

2: enable CTS

3: enable both RTS and CTS

复制

AT+UART_DEF—默认UART配置,保存进FLASH

查询

AT+UART_DEF?

复制

设置

AT+UART_DEF=<baudrate>,<databits>,<stopbits>,<parity>,<flow control>

复制

参数与 AT+UART_CUR命令一致

AT+CWMODE—设置WIFI模式

查询命令

AT+CWMODE?

复制

相应

+CWMODE:<mode>

OK

复制

设置命令

AT+CWMODE=<mode>

复制

响应

OK

复制

参数

<mode>:

0: Null mode, WiFi RF will be disabled

1: Station mode

2: SoftAP mode

3: SoftAP+Station mode

复饥简粗凯制

AT+CWJAP—连接到AP

查询命令

AT+CWJAP?

复制

相应

+CWJAP:<ssid>,<bssid>,<channel>,<rssi>

OK

复制

参数说明

Parameters:

<ssid>: a string parameter showing the SSID of the AP.

<bssid>: the AP’s MAC address.

<channel>: channel

<rssi>: signal strength

复制

设置烂凳裤命令

AT+CWJAP=<ssid>,<pwd>[,<bssid>][,<pci_en>][,<reconn>][,<listen_interval>]

复制

响应

OK

或者

+CWJAP:

ERROR

复制

参数说明

<ssid>: the SSID of the target AP.

Escape character syntax is needed if SSID or password contains any special characters,

such as , or " or \.

<pwd>: password, MAX: 64-byte ASCII.

[<bssid>]: the target APs MAC address, used when multiple APs have the same SSID.

[<pci_en>]: enable PCI Authentication, which will disable connect OPEN and WEP AP.

[<reconn>]: enable Wi-Fi reconnection, when beacon timeout, ESP32 will reconnect

automatically.

[<listen_interval>]: the interval of listening to the AP's beacon,the range is (0,100],

<error code>: (for reference only)

1: connection timeout.

2: wrong password.

3: cannot find the target AP.

4: connection failed.

others: unknown error occurred.

复制

AT+CWQAP—与 AP 断开链接

命令

AT+CWQAP

复制

响应

OK

复制

建立连接

AT+CIPSTART—建立TCP连接,UDP传输或SSL连接

设置

AT+CIPSTART=<type>,<remote IP>,<remote port>[,<TCP keep alive>][,<local IP>]

Multiple TCP Connections (AT+CIPMUX=1):

AT+CIPSTART=<link ID>,<type>,<remote IP>,<remote port>[,<TCP keep alive>][,

<local IP>]

复制

例:连接私有云MQTT服务器

AT+CIPSTART="TCP","129.***.***.127",1883

复制

若之前没有连接过,则响应成功连接

AT+CIPSTART="TCP","129.28.***.127",1883

CONNECT

OK

复制

若之前连接过,则响应

AT+CIPSTART="TCP","129.***.***.127",1883

ALREADY CONNECTED

ERROR

复制

AT+CIPCLOSE—关闭TCP/UDP/SSL 连接

命令

AT+CIPCLOSE

复制

响应

OK

复制

AT+CIFSR读取模块IP地址

命令

AT+CIFSR

复制

响应

+CIFSR:<SoftAP IP address>

+CIFSR:<Station IP address>

OK

复制

发送数据

AT+CIPSEND—Sends Data

AT模式下发送数据

命令

AT+CIPSEND=<length>

复制

响应

OK

>

复制

跟随发送数据即可。

如果在数据传输过程中无法建立或中断连接,则系统

返回:

ERROR

复制

如果数据传输成功,系统将返回:

SEND OK

复制

透传模式下发送数据

在透传模式下,发送数据更为简单,首先进入透传模式,然后使用发送数据命令启动发送,再进行数据发送即可

发送命令

AT+CIPSEND

复制

响应

>

复制

在接收到>,后,直接发送我们的报文即可。

网络测试命令

AT+PING: Ping测试

命令

AT+PING=<IP>

复制

响应

+PING:<time>

OK

复制

例:

AT+PING="www.baidu.com"

+8

OK

复制

登录阿里云服务平台流程

1、发送“+++”让ESP8266退出透传

2、使用AT+RESTORE,恢复出厂设置

3、ATE0,关闭回显功能

4、AT+CWMODE_CUR=1 设置当前客户端为station模式

5、AT+CWJAP=<ssid>,<pwd> 连接到路由器

6、AT+CIPSTART="TCP","a1a3XzsznJI.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883 连接到阿里云,地址根据自己的情况进行修改。

7、AT+CIPMODE=1 进入透传模式

8、AT+CIPSEND 启动数据收发

9、发送报文、接收报文

10、退出连接前,先发送"+++"退出透传模式,设置AT+CIPMODE=0 进入正常AT命令模式。

复制

透传模式说明:

进入透传模式后,向服务器端发送命令和接收命令就无需带AT命令,接收到的信息也没有

例如:我们要发送连接MQTT协议报文时,在AT模式下,我们需要发以下命令(标注的位置是我们发给ESP8266模块的):

AT+CIPSEND=143

OK

'><这儿是143字节报文数据>

Recv 143 bytes

SEND OK

+IPD,4: \0\0

而进入透传模式时,我们只需要发送报文数据即可,例如我们发送C0 00心跳报文,则直接发送C0 00给ESP8266模块即可

[19:29:04.971]发→◇C0 00 □

[19:29:05.055]收←◆D0 00

[19:29:14.968]发→◇C0 00 □

[19:29:15.054]收←◆D0 00


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8150682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存