一、项目介绍
材料清单
- FireBeetle Board ESP32-E开发板 X1 链接
本项目实现了ESP32-E开发板通过TCP建立连接,进行通信。
FireBeetle ESP32-E是一款基于ESP-WROOM-32E双核芯片的主控板,它专为IoT设计。
它具有WiFi+Bluetooth4.0无线双模模组,支持WIFI和蓝牙双模通信,具有GDI显示接口,单线连接显示屏板载充电电路以及PH2.0锂电池接口
并具有体积小巧、超低功耗、板载充电电路、接口易用等特性。可灵活的用于家庭物联网改装、工业物联网改装、可穿戴设备等等。
通过和IFTTT等物联网平台的连接,你可轻松制作出你独有的特色物联网智能家居系统。
FireBeetle ESP32-E深度支持ArduinoIDE编程,并且即将支持Scratch图形化编程及MicroPython编程。
二、制作过程
TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由 IETF 的RFC 793定义。TCP 是面向连接的、可靠的流协议。
以下是TCP协议建立连接的过程,也就是我们通常说的三次握手。
步骤1 安装编程工具Thonny
步骤2 刷micropython固件
1、打开micropython官网https://micropython.org/download/esp32/下载ESP32的micropython固件。
下载完成,会得到一个esp32spiram-idf3-20210202-v1.14.bin的文件
2、安装驱动及Thonny软件。
(1)将ESP32-E连接到电脑USB口,安装CH340K驱动。
(2)使用默认安装Thonny软件。
(3)打开Thonny软件,打开“运行”菜单下“选择解释器”子菜单。
(4)弹出的对话框如下图所示进行设置(Port or WebREPL选择CH340K的端口)
3、ESP32-E刷入micropython固件。
(1)如上图,点击Install or update firmware,打开对话框,如下图所示选择对应端口和刚才下载的固件文件。
(2)点击“安装”按钮,等待完成出现“Done”。
步骤3 TCP Server端程序
步骤4 TCP Client程序
资源
TCP Server端代码:
#ESP32运行server.py
import network
import socket
import time
import random
SSID="nana"
PASSWORD="12345678"
port=10001
wlan=None
listenSocket=None
def connectWifi(ssid,passwd):
global wlan
wlan=network.WLAN(network.STA_IF)
wlan.active(True)
wlan.disconnect()
wlan.connect(ssid,passwd)
while(wlan.ifconfig()[0]=='0.0.0.0'):
time.sleep(1)
return True
connectWifi(SSID,PASSWORD) #连接到wifi
ip=wlan.ifconfig()[0] #获取IP地址
print(ip,':',port)
server = socket.socket() #创建socket服务
server.bind((ip,port)) #绑定ip地址
server.listen(5) #监听信息
print ('tcp waiting...')
while True:
conn,addr = server.accept()
print("new conn:",addr)
while True:
conn.send("I am TCP Server.")
data = conn.recv(1024)
print("Receive:",data.decode("utf-8"))
conn.send("Receive:".encode("utf-8") + data)
server.close()
TCP Client端代码
#ESP32运行Client.py
import network
import socket
import time
import random
SSID="nana"
PASSWORD="12345678"
port=10001
wlan=None
def connWifi(ssid,passwd):
global wlan
wlan=network.WLAN(network.STA_IF)
wlan.active(True)
wlan.disconnect()
wlan.connect(ssid,passwd)
while(wlan.ifconfig()[0]=='0.0.0.0'):
time.sleep(1)
return True
connWifi(SSID,PASSWORD) #连接到wifi
ip=wlan.ifconfig()[0] #获取IP地址
print('TCP Client IP:',ip)
address = ('192.168.2.178',10001)
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.connect(address)
while True:
conn.send('I am TCP Clent.')
print('I am TCP Clent.')
data = conn.recv(1024)
print("Receive:",data.decode("utf-8"))
conn.send("Receive:".encode("utf-8") + data)
conn.close()
评论