5. [Micropython][TPYBoard v702]5110显示温度湿度亮度¶
5.1. 一、什么是TPYBoardV702¶
TPYBoardV702是山东萝卜电子科技有限公司最新开发的,目前市面上唯一支持通信定位功能的MicroPython开发板:支持Python3.0及以上版本直接运行。支持GPS+北斗双模定位、GPRS通信、短信功能、电话功能;板载温湿度、光敏、三轴加速度传感器、蜂鸣器、LCD5110显示屏。免费提供定位测试服务平台。实物如下图:
5.2. 二、利用TPYBoardV702完成所在地温湿度及亮度数据采集¶
1、具体要求
利用TPYBoardV702完成所在地温湿度及亮度数据采集
2、所需器件
TPYBoardV702开发板一块
温湿度传感器和光敏系统均属于板载器件,无需外接
3、温湿度传感器介绍
SHT20,新一代Sensirion湿度和温度传感器在尺寸与智能方面建立了新的标准:它嵌入了适于回流焊的双列扁平无引脚DFN封装,底面3x3mm,高度1.1mm。传感器输出经过标定的数字信号,标准I2C格式。
SHT21配有一个全新设计的CMOSens®芯片、一个经过改进的电容式湿度传感元件和一个标准的能隙温度传感元件,其性能已经大大提升甚至超出了前一代传感器(SHT1x和SHT7x)的可靠性水平。例如,新一代湿度传感器,已经经过改进使其在高湿环境下的性能更稳定。每一个传感器都经过校准和测试。在产品表面印有产品批号,同时在芯片内存储了电子识别码-可以通过输入命令读出这些识别码。
此外,SHT20的分辨率可以通过输入命令进行改变(8/12bit乃至12/14bit的RH/T),传感器可以检测到电池低电量状态,并且输出校验和,有助于提高通信的可靠性。
技术参数:
-输出:I2C数字接口
-功耗:1.5uw(8位测量,1次/秒)
-湿度范围0-100%RH
-温度范围-40-+125℃(-40-+257℉)
-RH响应时间8s(tau63%)
4、光敏系统介绍
V702开发板上板载了一个光敏传感的系统,利用stm32的ADC检测进行数值采集,这里的ADC数值输入引脚我们使用了Y12。并利用代码逻辑进行相应的数据转换,最终解析出当前光照强度,其中33为光照强度最大值。
5.3. 三、制作主要过程¶
先上个图,下面再开始说代码的问题。
# main.py -- put your code here!
#main.py
import pyb
import upcd8544
from machine import SPI,Pin
from pyb import UART
from ubinascii import hexlify
from ubinascii import *
from SHT20 import SHT20
ds=SHT20(1)#从声明的类库中的函数
leds = [pyb.LED(i) for i in range(1,5)]
P,L,SHUCHU=0,0,0
SPI = pyb.SPI(1) #DIN=>X8-MOSI/CLK=>X6-SCK
#DIN =>SPI(1).MOSI 'X8' data flow (Master out, Slave in)
#CLK =>SPI(1).SCK 'X6' SPI clock
RST = pyb.Pin('X20')
CE = pyb.Pin('X19')
DC = pyb.Pin('X18')
LIGHT = pyb.Pin('X17')
lcd_5110 = upcd8544.PCD8544(SPI, RST, CE, DC, LIGHT)
count_=0
N2 = Pin('Y3', Pin.OUT_PP)#Y3引脚是用来控制蜂鸣器的
N1 = Pin('Y6', Pin.OUT_PP)
N1.low()
pyb.delay(2000)
N1.high()
while True:
ads = pyb.ADC(Pin('Y12'))#定义当前光敏系统中使用到的引脚;
a=ads.read()#读取出当前引脚的ADC数值
a=a/100
a=33-a#对读取出的数值进行相应的转换
print("a=",a)
H=ds.TEMP()
S=ds.TEMP1()
H=125*H/256-6
S=175.72*S/256-46.85#以上为温湿度数据的读取以及温湿度数据的转换
if(a<10):#判断当前亮度是否小于十,如果小于十,那么蜂鸣器发出声音
N2.high()
lcd_5110.lcd_write_string('WENDU:',0,0)#以下代码为显示屏显示代码
lcd_5110.lcd_write_string(str(S),0,1)
lcd_5110.lcd_write_string('SHIDU:',0,2)
lcd_5110.lcd_write_string(str(H),0,3)
lcd_5110.lcd_write_string('LIANGDU:',0,4)
lcd_5110.lcd_write_string(str(a),0,5)
N2.low()