轻松使用8266

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

今天算是做好了板子啦!做了一块直接用串口配置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

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

 

目录
相关文章
|
8月前
|
存储 缓存 算法
【CMake 基础教程 】深入理解CMake变量:类型、原理及最佳实践
【CMake 基础教程 】深入理解CMake变量:类型、原理及最佳实践
225 0
|
编解码 图形学 C++
如何在Blender中压缩/减小GLTF模型的大小
Blender是一款功能强大的开源软件,旨在创建3D图形,动画和视觉效果。它支持多种文件格式的导入和导出,包括GLB,GLTF,DAE,OBJ,ABC,USD,BVH,PLY,STL,FBX和X3D。这种适应性使其成为各种3D项目和工作流程的宝贵工具。(https://www.blender.org/download/)。
537 0
|
算法 Java 决策智能
运筹优化工具库介绍(一)
运筹优化问题有时候极其复杂,我们可以使用运筹优化工具库帮助数学建模,解决复杂的最优化问题,本文介绍几个常见的运筹优化工具库。
1198 0
|
存储 搜索推荐 NoSQL
ES 和 clickhouse 对比选型
clickhouse 是列式存储所以无法进行全文检索,所以更适合数据分析的需求。elasticsearch更适合高并发并且查询返回结果较少的全文检索,如搜索引擎。
3286 0
|
7月前
|
Oracle 关系型数据库 分布式数据库
PolarDB助力欧派家居核心系统去O上云,每秒处理万次事务
欧派家居选择阿里云PolarDB-PG数据库,因其顺应云趋势,提供稳定服务,提升扩容和运维效率。欧派运维负责人表示,PolarDB-PG云上运行优于自建Oracle,云运维响应更快,解决问题效率更高。
|
安全
LinkedList的线程安全解决办法
LinkedList的线程安全解决办法
1189 0
|
机器学习/深度学习 数据采集 自然语言处理
用户意图预测
用户意图预测
175 0
|
机器学习/深度学习 存储 人工智能
AI在数学界的作用和影响
众所周知,数学在科学中占据至关重要的地位。爱因斯坦曾说,“纯数学能使我们发现概念和联系这些概念的规律,给了我们理解自然现象的钥匙。数学之所以比一切其它科学受到尊重,一个理由是因为它的命题是绝对可靠的,无可争辩的,而其它的科学经常处于被新发现的事实推翻的危险。”那么,AI在数学界有哪些作用?AI未来对数学界会有哪些颠覆性影响?现在我们来进行论述和探讨。
319 0
|
调度 数据安全/隐私保护 网络架构
RBAC权限设计思想的理解和使用
RBAC权限设计思想的理解和使用
RBAC权限设计思想的理解和使用
|
关系型数据库 MySQL 应用服务中间件
Lsky Pro兰空图床搭建教程
现在好多人都会使用图床托管自己的图片,使用免费的CDN加速和空间,但是图片失效的问题令人烦恼,免费的图床说不定哪一天就会失效,所以搭建自己的图床是优先的选择,本篇文章教大家如何搭建Lsky Pro兰空图床
1009 0
Lsky Pro兰空图床搭建教程