物联网开发116

阅读: 评论:0

物联网开发116

物联网开发116

 一、目的

        这一节我们来学习如何使用合宙ESP32 C3,连接LU90614人体红外测温模块,连接128x64点阵屏模块SPI接口液晶屏,进行温度显示实验。

二、环境

        ESP32 C3开发板(MicroPython v1.19.1 on 2022-06-18)+LU90614人体红外测温模块 + 128x64点阵屏模块SPI接口液晶屏 + 几根杜邦线 + Win10商业版

        ESP32 C3和各模块接线方法:

 

三、示例

example.py

from machine import Pin,SPI,PWM,UART
from st7567 import ST7567
from ufount1 import BMFont
import time'''
1,体温模式发送指令:0XFA 0XC5 0XBF;2, 物温模式发送指令:0XFA 0XC6 0XC0;3,开始测温并上传温度指令 0XFA 0XCA 0XC4;
串口国际96081模式
'''# 创建UART串口对象
uart = UART(1,baudrate = 9600,tx = 0, rx =1)# 导入字库文件
font = BMFont("fonts/unifont-14-12888-16.v3.bmf")# 创建SPI对象
spi = SPI(1,baudrate = 40_000_000,sck = Pin(2),mosi = Pin(3),miso = None)
# 定义屏幕背光参数
blk = PWM(Pin(8),duty = (0),freq = (1000))
# 创建LCD屏幕对象。# invX内容反转,0x00或0x01 # invY显示反转,True或False
lcd = ST7567(spi,dc = Pin(10,Pin.OUT),cs = Pin(7,Pin.OUT),rst = Pin(6,Pin.OUT),invX=0x00,invY=True,invdisp=0x00)
# 定义LED灯
led    = Pin(12,Pin.OUT)# 指令
Tiwen  = bytearray(b'xfaxc5xbfr')  #体温指令
Wuwen  = bytearray(b'xfaxc6xc0r')  #物温指令
Celian = bytearray(b'xfaxcaxc4r')  #开始测量
Data   = bytearray(9)  #数据缓存区# 温度模块函数
def LU90614(mode):if mode:uart.write(Tiwen)  # 串口写入指定命令else:uart.write(Wuwen)# 写入串口数据uart.write(Celian)# 读取串口数据Data = ad()# 屏蔽空值if Data != None:if Data[1] == 0XAC:# 在屏幕上显示体温(lcd,"体温:",0,32,color=1,font_size=16,reverse=False,clear=False,show=True,half_char=True,auto_wrap=True)#print("体温:")elif Data[1] == 0XAA:# 在屏幕上显示物温(lcd,"物温:",0,32,color=1,font_size=16,reverse=False,clear=False,show=True,half_char=True,auto_wrap=True)# print("物温:")# 屏蔽不该显示的大额数值if Data[2] and Data[3] != 255:# 在屏幕上显示数值和温度符号(lcd,"%d.%d℃"%(Data[2],Data[3]),48,32,color=1,font_size=16,reverse=False,clear=False,show=True,half_char=True,auto_wrap=True)#print("%d.%d℃"%(Data[2],Data[3]))(lcd,"wait" + str(' '),48,32,color=1,font_size=16,reverse=False,clear=False,show=True,half_char=True,auto_wrap=True)# 获取体温数值data = Data[2]# 温度控制。if data > 35 and data < 39:led.value(1)else:led.value(0)def main():# 设置屏幕背光num = 100blk.duty(int(num/1000*1023))# 显示中文(lcd,"红外温度测量",16,0,color=1,font_size=16,reverse=False,clear=False,show=True,half_char=True,auto_wrap=True)lcd.hline(0,20,128,1)lcd.show()#True 人体温度采集,Fales 物体温度采集while True:LU90614(True)if __name__ == "__main__":main()

示例效果:

 四、字库和屏幕驱动资料

        请从上篇文章获取:

物联网开发115 - Micropython ESP32 C3连接GM12864屏幕ST7576驱动IC芯片_魔都飘雪的博客-CSDN博客ESP32 C3开发板(MicroPython v1.19.1 on 2022-06-18)+12864点阵屏模块 + 几根杜邦线 + Win10商业版。这一节我们来学习如何使用合宙ESP32 C3,连接128x64点阵屏模块SPI接口液晶屏带字库,进行显示实验。某宝搜一下: 12864点阵屏12864模块SPI接口LCD点阵屏12864液晶屏。大家按需购买:我买的灰底黑字加不带字库。=1001.2014.3001.5501五、LU90614红外测温模块购买

.htm?_u=1p01rch7a5c&id=683636374568&spm=a1z09.2.0.0.6d2d2e8dfmSA1z.htm?_u=1p01rch7a5c&id=683636374568&spm=a1z09.2.0.0.6d2d2e8dfmSA1z

 宝贝详情图片

模块资料下载:

链接:=1234 提取码:1234  

或者

链接: 提取码: m56g

LU90614串口协议及接线定义:

一、 LU90614 模块接口定义

VCC : 3.3-5.5V 直流电源正极;

T ( TXD ) : 接 TTL 板或目标 MCU 的 TXD 端;

R ( RXD ): 接 TTL 板或目标 MCU 的 RXD 端;

GND : 电源负极 ( T 、 R 为通信口, 电平 3.3V 、 5V 兼容。)

二、 LU90614 通信协议

1. 波特率 9600 , 数据位 8 , 停止位 1 , 无奇偶校验;

2. 设置的参数可掉电保存;

3. 体温模式发送指令: 0XFA 0XC5 0XBF ;

4. 物温模式发送指令: 0XFA 0XC6 0XC0 ;

5. 开始测温并上传温度指令 0XFA 0XCA 0XC4 ;

6. 温度值回传指令:

一包数据: 包头 + 指令 +DataH+DataL+ 保留位 1+ 保留位 2+ 保留位 3+ 保留位 4+ 校验位

包头: 0XFE , 为固定包头;

指令: 0XAA , 此时为物温模式, DataH 为物温整数位, DataL 为小数位, 单位摄氏度; 0XAC , 此时为体温模式, DataH 为体温整数位, DataL 为小数位, 单位摄氏度。

校验位 = 包头 + 包头 + 指令 +DataH+DataL+ 保留位 1+ 保留位 2+ 保留位 3+ 保留位 4 , 溢出时只保 留低 8 位。

7. 举例 1 (测量当前物温):

发送: 0XFA 0XC6 0XC0 (如果当前为体温测量模式可不发) 0XFA 0XCA 0XC4

回传: 0XFE 0XAA 0X28 0X1E 0X00 0X00 0X00 0X00 0XEE

回传数据解析: 当前物温 40.3 摄氏度。

举例 2 (测量当前体温):

发送: 0XFA 0XC5 0XBF ( 如果当前为体温测量模式可不发) 0XFA 0XCA 0XC4

回传: 0XFE 0XAC 0X28 0X1E 0X00 0X00 0X00 0X00 0XF0

回传数据解析: 当前体温 40.3 摄氏度。

本文发布于:2024-02-05 03:06:47,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170722549262444.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23