轻松使用8266

2018-04-18 16:19:56 浏览数 (1)

今天算是做好了板子啦!做了一块直接用串口配置8266的板子,,也可以无线配置,配置完一次,上电自动运行...这篇文章也是写给一个朋友看的,朋友的项目做了很长时间了,遇到了AT指令的问题....我在学习了用lua开发后就渐渐摒弃了AT指令了,,,,,因为用lua开发方便快捷,大部分功能直接用lua写入芯片内部.....配置好以后都是网络数据自动发送到串口,,,串口数据自动发送到网络

配合了历程....

安排上呢

一, ESP8266下载和刷固件(Lua开发----体验一下lua开发的魅力所在)

二, 控制一个灯亮灭

三, TCP服务器

四, TCP客户端

五, UDP

六, 文件操作(保存数据到8266内部)

七, 外设操作(SPI,ADC)

八, 再说......

写完一篇就更新一篇

用AT指令版本的

一,  http://www.cnblogs.com/yangfengwu/p/5205570.html    发AT指令,,其实AT指令就是事先用SDK内部写好了

二,  https://cloud.tencent.com/developer/article/1390529    这个呢是配合路由器实现远程,,其实可以买个域名,或者用云端

三,  http://www.cnblogs.com/yangfengwu/p/5220919.html   这是做了一个用手机控制的WIFI小车

用LUA语言的,更灵活,功能更强

一   http://www.cnblogs.com/yangfengwu/p/7514336.html      下载自己选择功能的固件,刷固件,写LUA的软件

二    http://www.cnblogs.com/yangfengwu/p/7520260.html     GPIO,串口,注意事项,空闲中断

三    http://www.cnblogs.com/yangfengwu/p/7524297.html      SPI通信介绍,,STM32 SPI 从机

四    http://www.cnblogs.com/yangfengwu/p/7524326.html      TCP服务器,单个连接

五    http://www.cnblogs.com/yangfengwu/p/7531730.html      TCP服务器,多个客户端连接,CRC校验

六    http://www.cnblogs.com/yangfengwu/p/7533302.html       TCP Client 断开自动重连,AD采集

七    http://www.cnblogs.com/yangfengwu/p/7533845.html      UDP支持一路默认,3路动态连接,ssid 与 pwd 的读取

八  http://www.cnblogs.com/yangfengwu/p/7534521.html       文件保存数据

Android 软件

一,  http://www.cnblogs.com/yangfengwu/p/5212570.html    Android TCP客户端

二,  http://www.cnblogs.com/yangfengwu/p/5294921.html    Android TCP服务器

先说做了一个什么东西:先看板子

上位机配置软件

现在先用串口配置

连接

或者

 先说一下各配置选项

一,

这是设置模块的工作模式AP   Station   和AP Station  

二,

 作为TCP服务器的时候,端口号为监听的端口号(支持最多4个客户端同时连接通信,,,如果再有连接会循环断开原先的连接)

作为TCP客户端的时候......IP地址是模块连接的服务器的IP地址,,端口号是模块连接的服务器的端口号

UDP收发的时候,,,,,,我设置的最多可以同时和7个UDP通信....上面设置的IP地址和端口号是模块默认一直通信的一个(信息总会发向这一个),,,,,,

其余的六个呢是后面又连接的六个,,如果已经连接六个了,再有连接会断开这六个连接中的最先连接的那个,然后就是循环这样子

对了上面的端口号也是内部UDP监听的端口号

三,

 这是设置模块连接的路由器名称和密码 和 模块为AP模式时的wifi名称和密码

关于密码,,,如果设置的密码小于8位或者大于16位就会当成没有密码(模块内部是这样的)

三,

设置模块在AP模式下的IP地址,,子网掩码,,和默认网关

设置模块在Station模式下连接路由器后的IP地址,,子网掩码,,和默认网关(也就是可以固定IP地址)

 四,

设置和读取各引脚状态

本来呢加了引脚的SPI功能,,没想到啥都想好了就是没想到写的模块的内存不够了.............所以就去掉了SPI功能,,只做普通的GPIO使用

所以

其实自己也倍感伤心,,为了内存的原因重写了好几遍程序.............

五,

可以通过连接模块的无线来配置模块,,,不仅如此哈,自己还做了手机APP来配置模块

本打算昨天就写好APP了,,,,可是呢因为布局嵌套出现了问题,,,所以就只能推迟两三天了..............

进入正题,,先用串口方式配置模块为TCP服务器

 这个先不设置,先按照默认的,,,其实很有用,,,,待会再设置(是为了固定IP)

然后点击

 还可以发送命令查看

命令是 MDIP?

可以固定住模块连接路由器后分得的IP

如果没有连接路由器的IP会回复 STAIP:nil

软件正好是TCP客户端

 现在测试发送数据

 现在测试多个连接

 客户端发给服务器

服务器发给客户端

 现在再连接两个,超过四个会自动断开第一个连接,,意思就是腾出个位置

 对了客户端断开的时候会有提示

 现在固定IP

我让模块连接路由器后的IP是192.168.1.123

这样就能防止分得的IP会变了,通信的时候

 在AP Station模式下好处就是连接模块的无线进行通信

模块默认默认默认默认的IP是192.168.4.1......当然如果必要也可以设置

好了看TCP Client

我用电脑的TCP软件建立的服务器,,我的电脑的ip是192.168.1.103

模块是断线自动重连

亲们自己体验吧

再看UDP

模块默认会把数据发给192.168.1.103,的8080端口,,自己监听的也是8080端口

现在看一下模块是不是默认发给指定的ip和端口号

现在让另一个UDP把数据发给模块,,这样的话模块就记录了这个UDP的IP地址和端口号,,,那么数据也能发给它了

现在让模块再发数据,,两个UDP都会接收到数据

亲们可以自己去测试好多个UDP连接哈,,,,,,和TCP Sever一样会循环断开.............

用这个地方来控制板子上的继电器和各个引脚吧!!

协议

MD61(1代表输出高电平,0代表输出低电平) 0 (0-控制继电器,1-CS引脚,2-MOSI引脚,3--MISO引脚,4--CLK引脚)

好了现在用无线配置

为了快捷起见我加了一个按钮

这样的话,如果忘记了自己配置的了或者因为特殊情况无法和模块进行串口通信了(没带电脑,,没有串口模块),而我想配置...

点击着左上角的那个按钮然后断电上电或者按一下复位

然后呢连接模块的无线

然后就去配置把

上面说没带电脑但是一定要带个手机哈,,,,,,APP两三天后做好吧,,,,,,,,,,

实物在这

https://item.taobao.com/item.htm?spm=0.7095261.0.0.67c286e3NS59Y&id=558508797404

上位机软件

链接:http://pan.baidu.com/s/1i4PqzuX 密码:7bhc

最后附一张部分协议

注意亲们的数据不要以 MD开头,因为这样的数据会被当成命令而不发向串口或者网络

                                 发送                    回复

读取AD值           MD9            MDAD=132     真实电压=132/1024

置低继电器引脚        MD600          OK

置低CS引脚               MD601          OK

置低MOSI引脚           MD602          OK

置低MISO引脚           MD603          OK

置低CLK引脚             MD604          OK 

置高继电器引脚          MD610          OK

置高CS引脚               MD611          OK

置高MOSI引脚           MD612          OK

置高MISO引脚           MD613          OK

置高CLK引脚              MD614          OK

读取继电器引脚      MD80          MDIO0=1(/0)  (1代表高电平,0代表低电平)

读取CS引脚             MD81          MDIO1=1(/0)  (1代表高电平,0代表低电平)

读取MOSI引脚        MD82          MDIO2=1(/0)  (1代表高电平,0代表低电平)

读取MISO引脚        MD83          MDIO3=1(/0)  (1代表高电平,0代表低电平)

读取CLK引脚          MD84          MDIO4=1(/0)  (1代表高电平,0代表低电平)

读取模块的IP地址    MDIP?       APIP:192.168.4.1(自身的IP)                                    

                                                       STAIP:192.168.1.123 (连接路由器后分得的IP,没有则回复 STAIP:nil)          

复位重启模块         MDA(CRC16校验) 或以16进制发送 2B 2B 4D 44 41 4E C5

其余的指令哈我直接提供源码,,亲们自己在程序中看

0 人点赞