今天算是做好了板子啦!做了一块直接用串口配置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内部写好了
二, http://www.cnblogs.com/yangfengwu/p/5295632.html 这个呢是配合路由器实现远程,,其实可以买个域名,或者用云端
三, 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
其余的指令哈我直接提供源码,,亲们自己在程序中看