ESP32笔记 +micropython学习资料+arduinoC编程

本文介绍了使用MicroPython在ESP32上实现TCP和UDP通信的详细步骤。包括如何建立TCP服务器监听连接,处理客户端请求,以及如何进行UDP发送和接收。同时提供了相关学习资源如b站视频、官方文档等,帮助读者快速入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关学习资料:

巴发云物联网平台(目前免费开源)

Micropython:

重要部分
b站小红旗入门(四个视频轻松入门)

01studio网站资料

ESP32_micropython 中文文档

ESP32 micropython 官方文档英文
辅助部分
野路子学习esp32

C语言:

重要部分
bird1999625的esp32系列
辅助部分
灰信网开源
开发指南(作者开源一小步)

socket连接

教程
教程2

入门:

esp32入门,环境配置(vscode)
官方ESP-IDF vscode入门视频

关于:RT-Thread MicroPython多线程

RT-Thread
RT-Thread文档

ESP32 8266教程
项目
官网文档

学习笔记

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
'''
                
        
        
        
        

                
        
        
        
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值