一、背景:
最近没这么忙,想完成大学的遗憾。(15年大学做的四轴飞行器,当时没有gps,一直想做gps悬停,自动飞线,自动返航没做成,一直惦记着。这些年都在搞Android系统/linux系统/音视频相关的)。
再次玩无人机,这次选择px4飞控,想要无线调试参数,发现航模界都是用数传,这玩意贵得很,便宜的wifi数传也要几十大洋,也贵,咱手上不是有很多大学毕业带出来的蓝牙串口,wifi串口模块吗?wifi串口现在不到4元钱。能不能用这些模块接QGC进行调试?昨天中午吃饭,灵机一动想到了。这下淘宝那些数传,wifi数传销量要下来了。
二、上开胃菜:
esp32s1使用介绍:
AT指令集
默认波特率是115200,8N1。AT指令部分会写入flash,注意查看指令手册,网上很多,这里只列用到的
AT 测试与串口连接是否成功,成功返回ok,否则返回error
AT+RST 重启ESP8266
AT+RESTORE 当对ESP8266设置出现严重错误时使用,用于恢复出厂设置。使用后所有烧录的AT指令都会删除
AT+CWMODE=<?,1,2,3> 用于工作模式,?为查询该指令状态。1为station模式,将作为客户端连入网络。2为AP模式,此时模块作为一个热点存在,可以通过网络搜索到该热点。3位station AP混合模式。
AT+CWJAP="","" 连接到网络,AT+CWJAP="windra","windra998windra"。
AT+CIPSTA? 连接后查询分配到的IP地址
AT+CIPMUX=<?,0,1> ?查询连接模式,0设置为单连接模式,1设置为多连接模式。(透传,模式必须将其置0)
"AT+SAVETRANSLINK=1,"192.168.0.100",9999,"TCP"连接到网络端口,该内容会写入flash。重新上电后自动执行串口透传功能。若只想测试,可以使用 AT+CIPSTART="TCP","192.168.0.100",9999。IP地址和端口号在后文设置。
AT+CIPMODE=1 0关闭透传模式,1开启透传模式。
AT+CIPSEND 看到 > 开始数据传输
指令烧录
写入以下指令:(wifi名字,密码,ip地址,改成你自己的。端口号9999如果用不了可以换一个)
AT+RST
AT+CWMODE=1
AT+CWJAP="wifi名","wifi密码"
AT+CIPMUX=0
AT+CIPSTART="TCP","192.168.0.100",9999
AT+CIPMODE=1
AT+CIPSEND
此时在串口调试助手内输入数据,会在网络调试助手内显示,同理在网络调试助手内输入也会直接在串口调试助手内显示。即使拔下ESP8266后,再上电也将自动进入透传模式。
需要退出透传模式重新设置时,勾掉发送新行,输入+++,即不发送新行。再勾选发送新行,发AT即可退出。至此固件设置完成。
上硬菜:
任何一款wifi透传串口都行。wifi模块和电脑处于同一个网路就行。
下载com0com软件。创建串口对com12 <- -> com13.https://download.csdn.net/download/longruic/90485500?spm=1001.2014.3001.5503
下载TCP2COM 软件。如:TCP2Com-标签版V1.2.9.1.exe。
设置连接参数如下图:
先使用usb链接飞控,QGC修改 TELEM1 的波特率为115200 8N1模式。
QGC设置连接方式,Application Settings-》通讯连接, 添加串口连接,串口选择com12, 115200,高级设置里
飞线焊接,把6pin的线,飞线到esp32s1模块。
效果图: