【1】Beetle ESP32 C6和MicroPython以及VS Code
本帖最后由 kylinpoet 于 2024-4-11 01:39 编辑一、前言
本次的Beetle ESP32 C6试用名单应该是前无古人的,看到各位试用者在群里积极讨论,把”卷“字,卷起来了。
不过这是好事,期待论坛百花齐放,出现越来越多的好文章。
言归正传,我们拿到DF的新产品,照旧必须来到产品维库:
https://wiki.dfrobot.com.cn/_SKU_DFR1075_FireBeetle_2_Board_ESP32_C6#target_9
毕竟Python是世界上最好的语言,esp必须上Micropython。非常顺利地根据教程刷上了固件。(过程不再赘述)
固件默认加载了板载LED灯闪烁,接上USB线,可以看到它已正常运行。
二、VS Code
维库上使用thonny进行Python程序编写,诚然thonny是相当不错的Micropython IDE,但因为笔者用惯了 VS Code,决定添加有关Micropython的有关扩展。
如图所示,我们在VS Code的插件库里搜索:RT-Thread 这个号称最好的Micropython插件进行安装:
安装完成后,会出现以下内容,RT-Thread 自带了很多 Micropython示例和库文件方便随时调用。
另外,AIGC时代,怎么能少了人工智能代码生成呢,我们还是在插件里安装阿里的 通义灵码,可以很方便的进行代码生成:
AIGC时代,代码已经影响不了拔剑的速度了。
import machine
# 定义LED连接的GPIO引脚编号
LED_PIN = 15# 假设LED连接到GPIO2
# 初始化GPIO为输出模式
led = machine.Pin(LED_PIN, mode=machine.Pin.OUT)
def toggle_led():
"""
切换LED状态(开/关)
"""
led.value(not led.value())# 取反当前引脚值以实现切换
led.value(1)通过设置板载Pin15口,我们可以发现灯已经常亮了。
三、其它
硬推以上的组合,当然不能就这样简单结束,这个RT-Thread插件还有以下几个功能是比较实用的,比如当我们右键时,可以很方便地进行代码调试。
又或者,通过同步功能,能方便地将本地文件上传到设备,在设备中我们也可以通过,import os
os.listdir()
os.remove()等函数进行文件管理。
四、拓展
为了让esp芯片物尽其用,我们再次使用chatgpt来进行如下操作:
import machine
import network
import socket
# 配置WiFi信息
ssid = '你的WiFi名称'
password = '你的WiFi密码'
# 连接到WiFi网络
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(ssid, password)
# 等待连接成功
while not wifi.isconnected():
pass
print('WiFi connection successful')
print(wifi.ifconfig())
# 配置GPIO 15
pin = machine.Pin(15, machine.Pin.OUT)
# 创建一个socket实例
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 80))
s.listen(5)
def web_page():
"""
根据GPIO 15的状态生成HTML页面
"""
if pin.value() == 1:
gpio_state="ON"
else:
gpio_state="OFF"
html = """<html><head> <title>ESP32 Web Server</title> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="data:,"> <style>html{font-family: Helvetica; display:inline-block; margin: 0px auto; text-align: center;}
.button { background-color: #4CAF50; border: none; color: white; padding: 16px 40px;
text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}
.button2 {background-color: #555555;}</style></head><body> <h1>ESP32 Web Server</h1>
<p>GPIO 15 state: <strong>""" + gpio_state + """</strong></p><p><a href="/?led=on"><button class="button">ON</button></a></p>
<p><a href="/?led=off"><button class="button button2">OFF</button></a></p></body></html>"""
return html
while True:
conn, addr = s.accept()
print('Got a connection from %s' % str(addr))
request = conn.recv(1024)
request = str(request)
print('Content = %s' % request)
led_on = request.find('/?led=on')
led_off = request.find('/?led=off')
if led_on == 6:
print('LED ON')
pin.value(1)
if led_off == 6:
print('LED OFF')
pin.value(0)
response = web_page()
conn.send('HTTP/1.1 200 OK\n')
conn.send('Content-Type: text/html\n')
conn.send('Connection: close\n\n')
conn.sendall(response)
conn.close()
生成的代码,竟然完全无需更改就可以用!实在是强大!
当我们访问获取的IP地址时,就可以愉快地进行玩耍啦!
以上!
“AIGC时代,代码已经影响不了拔剑的速度了”,哈哈哈哈哈,陈老师怪幽默的{:5_131:}
页:
[1]