B站视频学习笔记:
单片机:ESP32
软件:Thonny
示例:
1、LED灯闪烁
#闪烁的LED灯
import machine
import time
pin2 = machine.Pin(2, machine.Pin.OUT) #2号引脚输出
while True:
pin2.value(1)#高电平1秒
time.sleep(1)#延时1秒
pin2.value(0)#低电平1秒
time.sleep(1)#延时1秒
2、PWM呼吸灯
from machine import Pin,PWM
import time
led2=PWM(Pin(2))
led2.freq(1000)
#led2.duty(200)#占空比_亮灭程度
while True:#控制整体的重复(1.从不亮慢慢变亮 2.从亮慢慢到不亮)
#1.从不亮慢慢变亮
for i in range(0,1024,1):#前两数表示范围,最后一数表示递增。
led2.duty(i)
time.sleep_ms(2)
#2.从亮慢慢到不亮
for i in range(1023,-1,-1):#前两数表示范围,最后一数表示递减。
led2.duty(i)
time.sleep_ms(2)
3、PC远程控制LED灯
#大体流程
#1、让esp32链接wifi,让其拥有ip地址;
#2、创建UDP socket;
#3、接收UDP数据;
#4、根据接收到的UDP数据控制LED灯的亮灭。
import network
import time
import machine
def do_connect():#作用,链接wifi网络
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect('WICV-1', 'WICV888888')
i=1
while not wlan.isconnected():
print("正在链接网络...{}".format(i))
time.sleep(1)
print('network config:', wlan.ifconfig())
def create_udp_socket():
import socket
# 1. 创建udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2. 绑定一个固定的端口
udp_socket.bind(("0.0.0.0",7788))#大于1024就行
return udp_socket
def main():
#1、让esp32链接wifi,让其拥有ip地址;
do_connect()
#2、创建UDP socket;
udp_socket=create_udp_socket()
#创建GPIO引脚控制对象
led=machine.Pin(2,machine.Pin.OUT)
#3、接收UDP数据;
while True:
recv_data,sender_info=udp_socket.recvfrom(1024)
print("{}发送的数据:{}".format(sender_info,recv_data))
#解码
recv_data_str=recv_data.decode("utf-8")
print("解码后的数据:{}".format(recv_data_str))
#4、根据接收到的UDP数据控制LED灯的亮灭。
if recv_data_str=="light on":
led.value(1)
elif recv_data_str=="light off":
led.value(0)
if __name__ == "__main__":
main()
4、