652|4

12

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子Follow me第2期】+项目总结报告 [复制链接]

 

内容一:演示视频


内容二:项目总结报告

 

1、项目介绍

 

本项目使用的主控是Adafruit ESP32-S3 TFT Feather,这是由Adafruit出品的一款富有特色的开源硬件,开发板使用乐鑫ESP32-S3芯片,支持WiFi和蓝牙能,自带高清TFT彩屏,2个按键,1个type C接口,1个电池供电接口,1颗WS2812B彩灯。

 

(1)Adafruit ESP32-S3 TFT Feather外观

 

 

 

 

(2)Adafruit ESP32-S3 TFT Feather引脚


(3)Adafruit ESP32-S3 TFT Feather工作模式

 

 

2、各任务功能对应的主要代码片段及说明

 

(1)任务1:控制屏幕显示中文

 

任务1完成了在Adafruit ESP32-S3 TFT Feather的TFT屏上显示中文的功能。

硬件:Adafruit ESP32-S3 TFT Feather

软件:Thonny

固件:dafruit CircuitPython 8.2.6 on 2023-09-12; Adafruit Feather ESP32-S3 TFT with ESP32S3

 

#【得捷电子Follow me第2期】任务1:控制屏幕显示中文
import board
import displayio
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font

display = board.DISPLAY

# uncommenting font files
font_file = "/font/Fontquan-XinYiGuanHeiTi-Regular.pcf"


# Set text, font, and color
text = "任务一:显示中文"
font = bitmap_font.load_font(font_file)
color = 0xFF00FF

# Create the tet label
text_area = label.Label(font, text=text, color=color, scale=2)

# Set the location
text_area.x = 10
text_area.y = 50

# Show it
display.show(text_area)

while True:
    pass

 

 

(2)任务2:网络功能使用

 

任务2-1完成了Adafruit ESP32-S3 TFT Feather连接wifi,并在TFT屏上显示了IP地址。

硬件:Adafruit ESP32-S3 TFT Feather

软件:Thonny

固件:dafruit CircuitPython 8.2.6 on 2023-09-12; Adafruit Feather ESP32-S3 TFT with ESP32S3

 

#【得捷电子Follow me第2期】任务2-1:网络功能使用,连接到WiFi
import wifi

import board
import displayio
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font

wifi.radio.connect('xiaogui', '88888888')
print(f"IP地址: {wifi.radio.ipv4_address}")

display = board.DISPLAY

# uncommenting font files
font_file = "/font/Fontquan-XinYiGuanHeiTi-Regular.pcf"


# Set text, font, and color
text = "IP地址:" + str(wifi.radio.ipv4_address)
font = bitmap_font.load_font(font_file)
color = 0xFF00FF

# Create the tet label
text_area = label.Label(font, text=text, color=color, scale=1)

# Set the location
text_area.x = 30
text_area.y = 70

# Show it
display.show(text_area)

while True:
    pass


 

任务2-2完成了Adafruit ESP32-S3 TFT Feather创建热点,并在TFT屏上显示了热点SSID与密码。

硬件:Adafruit ESP32-S3 TFT Feather

软件:Thonny

固件:dafruit CircuitPython 8.2.6 on 2023-09-12; Adafruit Feather ESP32-S3 TFT with ESP32S3

 

#【得捷电子Follow me第2期】任务2-2:网络功能使用,创建热点
import wifi

import board
import displayio
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font

wifi.radio.start_ap("esp32_wifi", "88888888")
print(f"SSID: esp32_wifi")
print(f"PASSWORD: 88888888")


display = board.DISPLAY

# uncommenting font files
font_file = "/font/Fontquan-XinYiGuanHeiTi-Regular.pcf"


# Set text, font, and color
text = "SSID: esp32_wifi"
text += "\nPASSWORD: 88888888"
font = bitmap_font.load_font(font_file)
color = 0xFF00FF

# Create the tet label
text_area = label.Label(font, text=text, color=color, scale=1)

# Set the location
text_area.x = 20
text_area.y = 50

# Show it
display.show(text_area)

while True:
    pass


 

 

(3)任务3:控制WS2812B

 

任务3完成了通过Adafruit ESP32-S3 TFT Feather板载的BOOT按键实现板载WS2812B彩灯变换颜色。

硬件:Adafruit ESP32-S3 TFT Feather

软件:Thonny

固件:dafruit CircuitPython 8.2.6 on 2023-09-12; Adafruit Feather ESP32-S3 TFT with ESP32S3

 

 
#【得捷电子Follow me第2期】任务3:控制WS2812B,按键BOOT控制板载Neopixel颜色切换
import time
import board
import neopixel
import digitalio


flag = 1

# 按键配置
button = digitalio.DigitalInOut(board.BUTTON)
button.switch_to_input(pull=digitalio.Pull.UP)

# Configure the setup
PIXEL_PIN = board.D1  # pin that the NeoPixel is connected to
ORDER = neopixel.RGB  # pixel color channel order
GREEN = (255, 0, 0)  # color to blink
CLEAR = (0, 0, 0)  # clear (or second color)
RED = (0, 255, 0)  # color to blink
DELAY = 0.2  # blink rate in seconds

# Create the NeoPixel object
pixel = neopixel.NeoPixel(board.NEOPIXEL, 1, pixel_order=ORDER)

# Loop forever and blink the color
while True:
    if  button.value==False:
        flag = flag * -1
    if flag == 1:
        pixel[0] = RED
        time.sleep(DELAY)
        pixel[0] = CLEAR
        time.sleep(DELAY)
    if flag == -1:
        pixel[0] = GREEN
        time.sleep(DELAY)
        pixel[0] = CLEAR
        time.sleep(DELAY)


 

(4)任务4:日历&时钟

 

任务4完成了通过Adafruit ESP32-S3 TFT Feather连接wifi,从网络获取日期、星期、天气等信息,并显示在TFT屏上。

硬件:Adafruit ESP32-S3 TFT Feather

软件:Thonny

固件:dafruit CircuitPython 8.2.6 on 2023-09-12; Adafruit Feather ESP32-S3 TFT with ESP32S3

 

#【得捷电子Follow me第2期】任务4:分任务1——日历&时钟

# 导入库
import wifi
import board
import displayio
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font

import os
import time
import ssl
import socketpool
import adafruit_requests

# 连接wifi
wifi.radio.connect('xiaogui', '88888888')

# 打印IP地址
print(f"IP地址: {wifi.radio.ipv4_address}")


# 字体文件
font_file = "/font/Fontquan-XinYiGuanHeiTi-Regular.pcf"


# JSON
JSON_TIME_URL = "http://quan.suning.com/getSysTime.do"
JSON_weather_URL = "http://t.weather.sojson.com/api/weather/city/{}"

pool = socketpool.SocketPool(wifi.radio)
requests = adafruit_requests.Session(pool, ssl.create_default_context())


# 设置字体、颜色
font = bitmap_font.load_font(font_file)
color = 0xFF00FF

# request请求
response = requests.get(JSON_TIME_URL)
time_data = response.json()['sysTime2'][:-3]

# 城市代码
city_code = "101010100"
url = JSON_weather_URL.format(city_code)
response = requests.get(url)
        
weather_data = response.json()
cityInfo = weather_data['cityInfo']
city_weather = weather_data['data']
forecast = city_weather['forecast']

# Set text
text =  time_data +  '   ' + forecast[0]['week']
text += '\n  ' + cityInfo['city'] + "             天气:" + forecast[0]['type']
text += "\n  温度:"+city_weather['wendu']+"℃" + "       湿度:" + city_weather['shidu']
text += '\n  空气质量:' + city_weather['quality'] + '      PM2.5:' + str(city_weather['pm25'])
text += "\n  风力:" + forecast[0]['fl'] + "           风向:" + forecast[0]['fx']        

# Create the tet label
text_area = label.Label(font, text=text, color=color, scale=1)


# Set the location
text_area.x = 15
text_area.y = 15


# Show it
display = board.DISPLAY
display.show(text_area)

while True:
    pass


 

 

内容三:可编译下载的代码

 

Follow me 第2期代码.rar (37.68 KB, 下载次数: 5)
 
心得体会
首先,感谢电子工程世界和得捷电子组织的此次【得捷电子Follow me第2期】活动,让我有幸接全面了解和测试了这块开发板。其次,Adafruit ESP32-S3 TFT Feather是一款非常棒的开发板,硬件过硬,集成度高,非常适合教学和各种项目的开发。再次,CircuitPython固件非常优秀,适配的开发板多,固件刷新方便,丰富的库和模块,大大提高了项目开发效率。

最新回复

演示视频和可编译下载的代码是不是没有发出来 没看到   详情 回复 发表于 2023-10-16 07:31
点赞 关注(1)
 
 

回复
举报

1704

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

演示视频和可编译下载的代码是不是没有发出来

没看到

点评

谢谢  详情 回复 发表于 2023-10-17 23:30
 
 
 

回复

12

帖子

2

TA的资源

一粒金砂(中级)

板凳
 
火辣西米秀 发表于 2023-10-16 07:31 演示视频和可编译下载的代码是不是没有发出来 没看到

谢谢

 
 
 

回复

12

帖子

2

TA的资源

一粒金砂(中级)

4
 
本帖最后由 doudoubaba 于 2023-11-4 15:43 编辑

ADKey Board 10 Keys(DFR0792

 
# ADKey Board 10 Keys

import time
import board
import analogio

analog_pin = analogio.AnalogIn(board.A0)

while True:
    ADKeyVal = analog_pin.value

    print(ADKeyVal)
    if ADKeyVal < 10:
        print("K0 Pressed")
    if 481 < ADKeyVal or ADKeyVal < 500:
        print("K1 Pressed")
    if 890 < ADKeyVal or ADKeyVal < 910:
        print("K2 Pressed")
    if 1188 < ADKeyVal or ADKeyVal < 1208:
        print("K3 Pressed")
    if 1651 < ADKeyVal or ADKeyVal < 1671:
        print("K4 Pressed")
    if 2127 < ADKeyVal or ADKeyVal < 2147:
        print("K5 Pressed")
    if 2447 < ADKeyVal or ADKeyVal < 2467:
        print("K6 Pressed")
    if 2851 < ADKeyVal or ADKeyVal < 2871:
        print("K7 Pressed")
    if 3347 < ADKeyVal or ADKeyVal < 3367:
        print("K8 Pressed")
    if 3713 < ADKeyVal or ADKeyVal < 3733:
        print("K9 Pressed")
    time.sleep(0.1)

 

 

 
 
 

回复

12

帖子

2

TA的资源

一粒金砂(中级)

5
 

Gravity LTRUV 390 紫外线传感器

 

 
import time
import board
import adafruit_ltr390

i2c = board.I2C()
ltr = adafruit_ltr390.LTR390(i2c)
while True:
    print("UV:", ltr.uvs, "\t\tAmbient Light:", ltr.light)
    time.sleep(0.1)

 

 

 

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表