转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇

实验目的

- 学习ESP8266模块(ESP-01)的使用。

- 进一步学习TPYBoardv10x中UART模块的使用。

- 结合ESP-01模块完成局域网内的TCP通信实验。

所需元器件

- ESP-01 WIFI模块 1个

- TPYBoard v102板子 1块

- USB转TTL 1个

- micro USB数据线 1条

- 杜邦线 若干

本实验采用TPYBoardv102串口AT指令的方式,去连接控制ESP8266模块(型号ESP-01)。

第一步:烧写AT指令的固件

下载AT指令相应固件

下载烧写工具ESPFlashDownloadTool

硬件连接

ESP-01模块的引脚图:

烧写固件还需用到USB转TTL,ESP-01模最好使用其他外部器件进行供电。这里,我用的TPYBoardv102开发板。但是,别忘记了开发板与TTL之间需要共地。

接线图:

ESP-01模块

TPYBoard v102

|VCC

3V3

GND

GND

CH_PD

3V3

GPIO 0

悬空

GPIO 2

悬空

TXD

X2(UART 4 )

RXD

X1(UART 4 )

开始烧写

USB转TTL插上电脑,设备管理器查看端口号。

打开ESPFlashDownloadTool工具,选择【ESP8266 DownloadTool】。

我这里下载的是合成的固件,所以地址直接设置为0x00000,其他设置参考如下:

选择好端口,点击【START】开始烧写。

出现等待上电同步,这时给ESP-01模块上电,或者复位一下,等待下载成功。

第二步:测试AT指令

烧写固件完成之后,将GPIO 0 连接的线拔掉,使其悬空,ESP-01模块会进入正常模式。

打开串口助手工具http://old.tpyboard.com/download/tool/198.html,默认波特率115200。

ESP-01模块启动时,会输出一堆乱码。(其实不是乱码,是一些内部信息)如下:

出现乱码的原因,如下:

输出的内部信息,我们可以忽略掉,只要输出ready,就说明模块一切正常。

进入AT指令模式

发送指令:AT

(注意:后面需跟一个回车换行,选择在工具中勾选加回车换行)

模块返回AT\\r\\nOK,说明模块已经成功进入AT指令模式。

查询固件版本

发送指令:AT+GMR

第三步:局域网TCP通信测试

1、首先,让ESP-01接入我们的路由器。

AT指令

功能

AT+CWMODE_CUR?

查询当前WIFI模式

1 : station 模式

2 : softAP 模式

3 : softAP+station 模式

AT+CWMODE_CUR=1

设置WIFI为station 模式

AT+CWJAP_CUR="essid","password"

连接AP

.

2、接下来,我们做一个局域网内TCP通信的测试。本地用网络调试助手建立一个TCP Server如下:

ESP-01作为TCP Client连接Server。发送指令AT+CIPSTART="TCP","192.168.101.116",80

TCP链接建立,开始发送数据。单路链接时发送指令为AT+CIPSEND=x,x为发送的字节数。出现符号">"后就可以发送数据了。

模块会把收到的数据自动通过串口透传过来。

以上,我们都是结合USB转TTL实现的AT指令转发。接下来,我们通过TPYBoardv102开发板实现上面的功能。

接线图:

ESP-01模块

TPYBoard v102

VCC

3V3

GND

GND

CH_PD

3V3

GPIO 0 |

悬空

GPIO 2

悬空

TXD

X2(UART 4 )

RXD

X1(UART 4 )

程序源码:

from pyb importUARTfrom pyb importLED#等待ESP-01模块初始化,忽略启动时的内部信息

pyb.delay(1000)

ESP_UART= UART(4,115200,timeout=100)defsendToUart(msg):

ESP_UART.write(msg+'\r\n')

CWMODE_CUR= 'AT+CWMODE_CUR=1'CWJAP_CUR= 'AT+CWJAP_CUR="TurnipSmart","turnip2016"'CIPSTART= 'AT+CIPSTART="TCP","192.168.1.116",80'CIPSEND= 'AT+CIPSEND=%s'msg= 'Hello,I am TPYBoard.'

if __name__ == '__main__':

sendToUart('AT')whileTrue:if ESP_UART.any() >0:

buf= ESP_UART.read().decode().replace('\r','').replace('\n','').replace(' ','')print(buf)if buf.find('busyp') > -1 or buf.find('ERROR') > -1:#AT指令执行失败

#结束程序排查原因

break

elif buf.find('ATOK') > -1:#说明AT指令执行成功

#成功进入AT指令模式

#设置WIFI模式为sta模式

sendToUart(CWMODE_CUR)elif buf.find(CWMODE_CUR) > -1:#设置sta模式成功,连接AP

sendToUart(CWJAP_CUR)

LED(1).on()elif buf.find('WIFIGOTIP') > -1:#连接AP成功

#开始连接TCP Server

pyb.delay(150)

sendToUart(CIPSTART)

LED(2).on()elif buf.find(CIPSTART) > -1:#连接TCP Server成功,发送数据

CIPSEND = CIPSEND %str(len(msg))

sendToUart(CIPSEND)

LED(3).on()elif buf.find('>') > -1:#发送数据

sendToUart(msg)

LED(4).on()

注意:ESP-01模块上电启动时电流比较大,会导致板子的REPL无反应。关闭putty等工具,按板子的RST复位一下,再连接就好。最好方式采用外部电源给ESP-01模块供电,注意要与板子共地。

综上,TCP的测试实验完毕。本实验只是做了一些简单的示例,大家可根据自己的想法结合文档开发出更有意思的作品,比如智能控制开关、智能WIFI小车等。

micropython中文社区 socket通讯_基于MicroPython结合ESP8266模块实现TCP通信(AT指令版)...相关推荐

  1. micropython中文社区 socket通讯_基于micropython的TCP客户端编程

    python概述 python现在是一门比较火的语言,如果能够使用python编写嵌入式的应用程序,那该有多好呀,现在micropython软件框架的出现,使得python进入了嵌入式领域. pyth ...

  2. micropython中文社区 socket通讯_python网络编程学习笔记(3):socket网络服务器

    服务器和客户端程序很类似,上节学习了客户端程序,这一节将仔细学习一下利用socket建立TCP服务器和UDP服务器. 1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个 ...

  3. 基于STM32的ESP8266模块控制多路继电器

    基于STM32的ESP8266模块控制多路继电器 1.视频讲解 基于STM32单片机ESP8266物联网阿里云MQTT多路继电器控制 物联网视频教程STM32+ESP8266 2.实物设计 ESP82 ...

  4. micropython lcd触摸屏显示中文_基于Micropython的天气显示 进程帖

    本帖最后由 michael_llh 于 2019-4-17 10:06 编辑 更下项目的进程哈! 项目的思路很简单,就是从网上获取天气信息,然后进行显示! 很尽量把过程写清楚,方便大家的交流和学习. ...

  5. micropython中文社区 microbit_microbit如何烧录micropython固件

    欢迎大家加入我们的uPyCraft-Micropython QQ群: 619558168 Microbit硬件上是由cmsis-dap芯片和nrf51822芯片两部分构成.Cmsis-dap芯片负责烧 ...

  6. python 串口时钟校对_基于MicroPython的自动网络时间校准器

    前言 之前使用TPYBoard v202(主控ESP8266模块)开发板做过一款WIFI攻击神器,一开始使用Arduino源码做的,后来又接触到micropython.觉得使用micropython真 ...

  7. python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...

  8. python画心电图_基于MicroPython:TPYBoard心率监测器

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 一.前言 这几年智能穿戴设备大火,尤其是手环类,从A ...

  9. micropython 蜂鸣器_基于MicroPython的TPYBoard微信远程可燃气体报警器的设计与实现...

    前言 在我们平时的生活中, 经常看到因气体泄漏发生爆炸事故的新闻. 房屋起火. 人体中毒 等此类的新闻报道层出不穷.这种情况下,人民就发明了可燃气体报警器. 当工业环境.日 常生活环境 (如使用天然气 ...

最新文章

  1. windows定时关机
  2. 系统架构面临的三大挑战,看 Kubernetes 监控如何解决?
  3. Echarts词云图
  4. 本人对于netty框架的一些理解,怎么与网站上的websock建立连接
  5. CodeForces - 660C Hard Process
  6. 全世界20座最有创意的桥,7座在中国,5座在荷兰!
  7. Vue.js-资料-组件化思想 —上
  8. ASoC Machine驱动代码框架图
  9. Mac上如何使用Rss阅读器个性化订阅网站最新内容?
  10. 国内外中英文版一元购网站开发案例源码
  11. 原来阅读器也可以有网页版的,不下载也能用,涨姿势了
  12. 索尼a5100_索尼a5100像素是多少?索尼a5100分辨率是多少?
  13. jquery 获取上传图片的大小
  14. ]播放电影文件背景音乐声音正常对白声音小的问题
  15. DDOS 攻击的防范教程
  16. BZOJ3168: [Heoi2013]钙铁锌硒维生素
  17. 击中击不中变换的作用理解
  18. winxp MySQL 5.6.35 免安装版 简单配置
  19. 16MnCr5齿轮钢板成分|性能|执行标准|淬火+回火|产地舞钢
  20. Visual Studio 许可证已过期

热门文章

  1. 如何区分Oracle的数据库,实例,服务名,SID
  2. Ajax学习整理笔记
  3. 2015 Multi-University Training Contest 9
  4. TurboShop应用特性(2009V3.6)
  5. py提取文字中的时间_一次提取100个视频中的文案!节省时间有绝招在手视频文案提取...
  6. html图片postmultipart,sendmail-MIMEText-MIMEImage-MIMEMultipart.py——发送带图片的HTML格式报表...
  7. 基于stm32f405控制三相无刷电机例程_直流有刷电机和无刷电机的区别
  8. android修改适配器颜色,android viewpager更改适配器
  9. 随机微分过程matlab求数值解,随机微分方程数值解.pdf
  10. 如何保存文件为c语言格式,急求如何将下列C语言程序数据存储到文件中?