"""
******************************************************************************
* @file main.py
* @author
* @version V1.0
* @date 2023-12-01
* @brief APC3216C光照和接近传感器实验
******************************************************************************
*
* 实验目的:学习光环境传感器AP3216C的使用,实现光照强度(ALS)/接近距离(PS)/红外光强(IR)等的测量
*
* 硬件资源及引脚分配:
* 1, LED --> ESP32S3 IO
* LED --> IO1
* 2, XL9555 --> ESP32S3 IO
* SCL --> IO42
* SDA --> IO41
* INT --> IO0(跳线帽连接)
* 3, SPI_LCD --> ESP32S3 IO / XL9555
* CS --> IO21
* SCK --> IO12
* SDA --> IO11
* DC --> IO40(跳线帽连接)
* PWR --> XL9555_P13
* RST --> XL9555_P12
* 4, AP3216C --> ESP32S3 IO
* SCL --> IO42
* SDA --> IO41
* INT --> XL9555_P00
*
* 实验现象
* 1, 本实验,开机先检测AP3216C是否存在,如检测不到AP3216C,则在LCD屏幕上面显示报错信息。如果检
* 测到AP3216C,则显示正常,并在主循环里面,循环读取ALS+PS+IR的传感器数据,并显示在LCD屏幕上
* 面。同时,DS0闪烁,提示程序正在运行。另外,本例程将AP3216C的读写操作函数加入USMART控制,
* 我们也可以通过USMART对AP3216C进行控制。。
* 2, LED闪烁,提示程序运行。
*
* 注意事项
* 无
*
* 定制开发,技术V:349014857
* 更多例程:https://iot666.blog.csdn.net/
* 开发咨询:http://doc.yotill.com
"""
from machine import Pin,SPI,I2C
import atk_xl9555 as io_ex
import atk_lcd as lcd
import atk_ap3216 as ap3216c
import time
"""
* @brief 程序入口
* @param 无
* @retval 无
"""
if __name__ == '__main__':
# 初始化LED并输出高电平
led = Pin(1,Pin.OUT,value = 1)
# IIC初始化
i2c0 = I2C(0, scl = Pin(42), sda = Pin(41), freq = 400000)
# 初始化XL9555
xl9555 = io_ex.init(i2c0)
# 复位LCD
xl9555.write_bit(io_ex.SLCD_RST,0)
time.sleep_ms(100)
xl9555.write_bit(io_ex.SLCD_RST,1)
time.sleep_ms(100)
# 初始化SPI
spi = SPI(2,baudrate = 80000000, sck = Pin(12), mosi = Pin(11), miso = Pin(13))
# 初始化LCD,lcd = 0为####2.4寸屏幕;lcd = 1为####1.3寸SPILCD屏幕;
display = lcd.init(spi,dc = Pin(40,Pin.OUT,Pin.PULL_UP,value = 1),cs = Pin(21,Pin.OUT,Pin.PULL_UP,value = 1),dir = 1,lcd = 0)
# 开启背光
xl9555.write_bit(io_ex.SLCD_PWR,1)
time.sleep_ms(100)
# 显示实验信息
display.string(30, 50, 240, 16, 16, "ESP32-S3",lcd.RED)
display.string(30, 70, 200, 16, 16, "AP3216C TEST", lcd.RED)
display.string(30, 90, 200, 16, 16, "ATOM@ALIENTEK", lcd.RED)
display.string(30, 110, 200, 16, 16, "ir:", lcd.RED)
display.string(30, 130, 200, 16, 16, "ps:", lcd.RED)
display.string(30, 150, 200, 16, 16, "als:", lcd.RED)
# 初始化AP1632C
ap3216 = ap3216c.init(i2c0)
while True:
# 获取数据
data = tuple(ap3216.ap3216c_read())
# 对数据进行换算
ir = (data[1] << 8) | data[0]
ps = (data[3] << 8) | data[2]
als = (data[5] << 8) | data[4]
# 延时换算结果
display.num(110, 110,int(ir),5,16,lcd.BLUE)
display.num(110, 130,int(ps),5,16,lcd.BLUE)
display.num(110, 150,int(als),5,16,lcd.BLUE)
led_state = led.value()
led.value(not led_state)
time.sleep_ms(500) # 延时500ms
没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式物联网实战开发例程13-ESP32读取APC3216C光照和接近传感器数据(MicroPythion版例程).rar
共2个文件
url:1个
py:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 83 浏览量
2024-04-17
23:02:06
上传
评论
收藏 2KB RAR 举报
温馨提示
1、嵌入式物联网ESP32项目实战开发。例程经过精心编写,简单好用。 2、代码使用MicroPythion开发。例程在ESP32-S3上运行。若在其他型号上运行,请自行调整。 3、如果接入其他传感器,请查看发布的其他资料。 4、ESP32与模块的接线,在代码当中均有定义,请自行对照。 5、若硬件差异,请根据自身情况适当调整代码,程序仅供参考。 6、代码有注释说明,请耐心阅读。 7、技术v:349014857;
资源推荐
资源详情
资源评论
收起资源包目录
嵌入式物联网实战开发例程13_ESP32读取APC3216C光照和接近传感器数据(MicroPythion版例程).rar (2个子文件)
嵌入式物联网实战开发例程13_ESP32读取APC3216C光照和接近传感器数据(MicroPythion版例程)
main.py 4KB
技术答疑,双击打开.url 121B
共 2 条
- 1
资源评论
物联技术666
- 粉丝: 2841
- 资源: 839
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功