相关学习资料:
Micropython:
重要部分
b站小红旗入门(四个视频轻松入门)
ESP32 micropython 官方文档英文
辅助部分
野路子学习esp32
C语言:
重要部分
bird1999625的esp32系列
辅助部分
灰信网开源
开发指南(作者开源一小步)
socket连接
入门:
esp32入门,环境配置(vscode)
官方ESP-IDF vscode入门视频
关于:RT-Thread MicroPython多线程
学习笔记
boot.py
import network
import usocket
import machine
import socket
import usocket
import socket
import json
import array
import _thread
import network
import time
print("boot")
def do_connect():
import network
sta_if = network.WLAN(network.STA_IF)
if not sta_if.isconnected():
print('connecting to network...')
sta_if.active(True)
sta_if.connect('TP-LINK_52F2D6','K3066196')
while not sta_if.isconnected():
pass
print('network config:', sta_if.ifconfig())
def tcplink(conn,addr):
print("addr:",addr)
print("conn:",conn)
while 1:
data = conn.recv(1024)
if not data:
break
print(str(data,"utf-8"))
conn.close()
def do_service():
# Create STREAM TCP socket 服务端
server = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
server.bind(('192.168.2.121', 8888))
server.listen(5)
server.setblocking(True)
while True:
# Wait for client connection
clientsocket, addr = server.accept()
# print("connect address: %s" % str(addr))
clientsocket.send('welcome!')
_thread.start_new_thread(tcplink, (clientsocket,addr))
#客户端
def do_client():
client = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
client.connect(("192.168.2.108", 8080))
time.sleep(1)
client.send("hello esp32!")
def http_get(url):
_, _, host, path = url.split('/', 3)
addr = socket.getaddrinfo(host, 80)[0][-1]
s = socket.socket()
s.connect(addr)
s.send(bytes('GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n' % (path, host), 'utf8'))
while True:
data = s.recv(100)
if data:
print(str(data, 'utf8'), end='')
else:
break
s.close()
'''
client = socket.socket(usocket.AF_INET, usocket.SOCK_STREAM)
client.connect(("192.168.2.108", 8080))
client.sendall(bytes("rt-thread micropython!","utf-8"))
'''
def HTTP():
pins = [machine.Pin(i, machine.Pin.IN) for i in (0, 2, 4, 5, 12, 13, 14, 15)]
html = """<!DOCTYPE html>
<html>
<head> <title>ESP32 Pins</title> </head>
<body> <h1>ESP32 Pins</h1>
<table border="1"> <tr><th>Pin</th><th>Value</th></tr> %s </table>
</body>
</html>
"""
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(2)
print('listening on', addr)
while True:
cl, addr = s.accept()
print('client connected from', addr)
cl_file = cl.makefile('rwb', 0)
while True:
line = cl_file.readline()
if not line or line == b'\r\n':
break
rows = ['<tr><td>%s</td><td>%d</td></tr>' % (str(p), p.value()) for p in pins]
response = html % '\n'.join(rows)
cl.send(response)
cl.close()
import network
import usocket
import machine
import socket
import usocket
import socket
import json
import array
import _thread
import network
import time
def do_client_udp():#接收不到信息,只能发出
# Create STREAM TCP socket 服务端
# server = usocket.socket(usocket.AF_INET, usocket.SOCK_DGRAM)
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while 1:
sockaddr = usocket.getaddrinfo("192.168.2.108",9000)[0][-1]
server.sendto("你好",sockaddr)
print("1")
data , addr = server.recvfrom(1024)
print("2")
print( data.decode('gbk'))
print("3")
print( addr.decode())
def do_service_udp():
# Create STREAM TCP socket 服务端
server = usocket.socket(usocket.AF_INET, usocket.SOCK_DGRAM)
sockaddr = usocket.getaddrinfo("192.168.2.121",9200)[0][-1]
server.bind(sockaddr)
while 1:
data , addr = server.recvfrom(1024)
print('有设备连接addr: %s %s'% addr)
server.sendto("你好",addr)
print( data.decode())
server.close()
'''
addr: 192.168.2.108 9100
vb
'''