轻松使用8266

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏游戏杂谈

Cocos2d-x V2.x版本对64bit的支持

我所使用的是cocos2d-x V2.0版本,而且源码有部分代码是修改过的。好在cocos2d-x官方已经放出了一个支持64位的2.2.6版本,可以做为参考。

28220
来自专栏前端萌媛的成长之路

一波webpack

21640
来自专栏北京马哥教育

原创投稿 | 一键启动 filebeat 5.1.1 集成 logstash

豌豆贴心提醒,本文阅读时间5分钟 “Eason,企业一线运维实战者,马哥教育原创作者联盟成员,热爱分享Linux应用技术的感想和原创知识。” Backgrou...

35570
来自专栏白驹过隙

Socket编程回顾,一个最简单服务器程序

23830
来自专栏Java编程技术

Druid连接池原理学习

(1)、 如果设置了maxWait或者构造函数参数传入的为true,则创建的ReentrantLock为公平锁,否者为非公平锁 (2)、 如果设置了initi...

2.5K20
来自专栏黑泽君的专栏

day07_Tomcat服务器与http学习笔记

    WEB,在英语中web即表示网页的意思,它用于表示Internet主机上(服务器)供外界访问的资源。

14110
来自专栏Python

nginx优化 突破十万并发

文章转载于:http://9388751.blog.51cto.com/9378751/1676821

73700
来自专栏Python专栏

用python来更改小伙伴的windows开机密码,不给10块不给开机

30760
来自专栏北京马哥教育

DNS从入门到管理(一)

DNS概述 DNS(Domain Name System,域名系统),域名和IP地址相互映射的一个分布式数据库,通过主机名,最终得到该主机名对应的IP地址的过程...

72360
来自专栏北京马哥教育

十二条Linux运维面试必备经典笔试/面试题,来挑战一下!

又到了一年一度的秋招,作为运维方向,看了一些面经,收集了一些笔试面试题,总结了一下,贴出来仅供参考,有错误的地方还请指出. 1.Linux设置环境变量 暂时的:...

55090

扫码关注云+社区

领取腾讯云代金券