【日记 2021-05-14】树莓派获取环境亮度(光照度)

2023-05-16

什么是亮度?

光照度指被照射物体单位面积上所接受可见光的光通量,单位是勒克斯( Lux) 或流明每平方米( lm /m2) ,是用来描述光的亮度的。我们平时最关心的我家灯到底够不够亮,具体数值可以用照度计测量。
参考文献:张大勇.室内设计中灯光的明暗搭配[J].北京印刷学院学报,2021,29(01):71-74.

环境准备

1、GY30模块(BH1750FVI光照度传感器)
在这里插入图片描述

2、安装python-smbus

sudo apt-get install python-smbus

这个安装会附带安装 i2c-tools,不用单独安装了。

3、IIC 开启

sudo raspi-config

进入 Interfacing Options 高级设置,将 SPI 与 I2C 设置为 Enable 后重启系统。

4、连接传感器
在这里插入图片描述

代码

直接运行如下程序,即可得到环境的光照度:

#!/usr/bin/env python
# encoding: utf-8

import smbus
import time

#BH1750地址
__DEV_ADDR=0x23

#控制字
__CMD_PWR_OFF=0x00  #关机
__CMD_PWR_ON=0x01   #开机
__CMD_RESET=0x07    #重置
__CMD_CHRES=0x10    #持续高分辨率检测
__CMD_CHRES2=0x11   #持续高分辨率模式2检测
__CMD_CLHRES=0x13   #持续低分辨率检测
__CMD_THRES=0x20    #一次高分辨率
__CMD_THRES2=0x21   #一次高分辨率模式2
__CMD_TLRES=0x23    #一次分辨率
__CMD_SEN100H=0x42  #灵敏度100%,高位
__CMD_SEN100L=0X65  #灵敏度100%,低位
__CMD_SEN50H=0x44   #50%
__CMD_SEN50L=0x6A   #50%
__CMD_SEN200H=0x41  #200%
__CMD_SEN200L=0x73  #200%

bus=smbus.SMBus(1)
bus.write_byte(__DEV_ADDR,__CMD_PWR_ON)
bus.write_byte(__DEV_ADDR,__CMD_RESET)
bus.write_byte(__DEV_ADDR,__CMD_SEN100H)
bus.write_byte(__DEV_ADDR,__CMD_SEN100L)
bus.write_byte(__DEV_ADDR,__CMD_PWR_OFF)
def getIlluminance():
    bus.write_byte(__DEV_ADDR,__CMD_PWR_ON)
    bus.write_byte(__DEV_ADDR,__CMD_THRES2)
    time.sleep(0.2)
    res=bus.read_word_data(__DEV_ADDR,0)
    #read_word_data
    res=((res>>8)&0xff)|(res<<8)&0xff00
    res=round(res/(2*1.2),2)
    result="光照强度: "+str(res)+"lx"
    return result

if __name__ == '__main__':
    while True:
        print(getIlluminance())
        time.sleep(2)

说明:毕业设计用树莓派来做家庭灯光的控制,需要用到此功能,特此记录!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【日记 2021-05-14】树莓派获取环境亮度(光照度) 的相关文章

  • 小白学java------做一个歌手比赛系统(二)

    完整代码加实验报告都在 https download csdn net download qq 39980334 11232331 我已经设置成0积分下载了 xff0c 有需要的自行下载 xff0c 如果页面打不开可能还在审核中 xff08
  • 多旋翼无人机入门 第一章 硬件架构(上)

    多旋翼无人机系统概述 四轴 xff08 多轴 xff09 飞行器也叫四旋翼 xff08 多旋翼 xff09 飞行器 xff0c 它有四个 xff08 多个 xff09 螺旋桨 xff0c 四轴 xff08 多轴 xff09 飞行器也是飞行器
  • 多旋翼无人机入门第一章硬件架构(下)

    本篇主要讲解飞控 xff0c 遥控装置 xff0c GPS模块 xff0c 任务设备 xff0c 数据链路 xff0c 上位机 xff08 机载电脑 xff09 1 飞控 xff1a 包括陀螺仪 加速度计 电路控制板 各外设接口 大家可能都
  • 浙江大学Fast-Lab从0制作自主空中机器人公开课教程补充及部分注意事项(适用于ubuntu系统和ROS零基础)

    浙江大学Fast Lab从0制作自主空中机器人公开课纯萌新补充 xff08 适用于从没接触过ubuntu系统 xff09 1 ubuntu的换源 ubuntu系统安装后需要先换源 xff0c 不然没法安装软件 xff0c 推荐ustc源或者
  • SLAM重点摘要1: 相机变换之旋转矩阵与平移向量,R,T,变换矩阵

    注意 xff1a 本章内容简要 xff0c 不涉及具体详细的数学推导 xff0c 只简要介绍相关的数学理论 关键词 xff1a 旋转矩阵 xff0c 平移向量 xff0c 变化矩阵 xff0c 齐次线性坐标 在我的理解中 xff0c 向量
  • STM32F4系列+FreeRTOS+USB方式驱动有方4G模块

    USB方式驱动有方4G模块 参考博客如下 xff1a 1 https blog csdn net ZCShouCSDN article details 78936456 2 https blog csdn net gyzw mx artic
  • linux gdb调式入门(break,continue,step finnish,run,watch,bt frame),这篇就够了

    建立gdb c 1 include lt stdio h gt 2 3 int fun int n 4 5 int sum 61 0 6 int i 61 0 7 for i 61 0 i lt n i 43 43 8 9 sum 61 s
  • iic片选PCA9548A芯片

    PCA9548A数据表 产品信息和支持 TI com iic片选深入 从上图中我们可以看到通过iic的iic 例如 iic0 扩展出8路iic来访问slave 例如8个口的光模块 那么里面的原理是什么呢 我们先来看PCA9548A 文档 需
  • wireshark tcp报文深度解析

    封包详细信息是用来查看协议中的每一个字段 各行信息分别对应TCP IP协议的不同层级 以下图为例 xff0c 分别表示 xff1a 传输层 网络层 数据链路层 物理层 xff0c 一共四层 如果有应用层数据会显示第五层 xff0c 即一共会
  • 北京/西安内推 | 中国移动研究院NLP组招收自然语言处理算法实习生

    合适的工作难找 xff1f 最新的招聘信息也不知道 xff1f AI 求职为大家精选人工智能领域最新鲜的招聘信息 xff0c 助你先人一步投递 xff0c 快人一步入职 xff01 中国移动研究院 中国移动研究院 AI 中心是中国移动研究院
  • tcp 三次握手和四次挥手报文分析

    1 xff0c tcp 三次握手 报文抓取如下 xff1a 三段报文分析 xff1a 第一次 xff1a 26 gt 96报文交互 Seq num 61 567391014 ACK NUM 61 0 flags 61 SYN 第二次 xff
  • bootp引导程序协议

    bootp又称为引导程序协议 我们来简单了解一下这个协议以及他的用法 1 xff0c BOOTP 请求和应答均被封装在 U D P 数据报中 xff1b 2 xff0c B O O T P 使用 U D P xff0c 且通常需与 T F
  • http请求学习

    GET xff1a 向Web服务器请求一个文件 POST xff1a 向Web服务器发送数据让Web服务器进行处理 PUT xff1a 向Web服务器发送数据并存储在Web服务器内部 HEAD xff1a 检查一个对象是否存在 DELETE
  • linux c语言全面学习json解析函数

    1 json结构的定义 typedef struct cJSON cJSON结构体 struct cJSON next prev 遍历数组或对象链的前向或后向链表指针 struct cJSON child 数组或对象的孩子节点 int ty
  • matlab的图片滤波处理

    椒盐噪声 高斯噪声 MATLAB自带函数 均值滤波 中值滤波 自编模版 读取图片并转换为灰度图片 I 61 imread 39 1 jpg 39 imshow I I1 61 rgb2gray I imshow I1 椒盐噪声 I2 61
  • Linux 动态库的编译和执行

    静态库生成及测试 编码myccso脚本 gcc c Wall I inc src myadd c o myadd o ar rcs libmyadd a myadd o rm o mv libmyadd a lib gcc Wall g I
  • matlab中函数的定义和使用

    在matlab的选择框中的的新建中选择新建函数 xff0c 一般是以 m的文本文件 xff0c 新建后我们可以在里面写入我们的实现函数 xff0c 现在我们给出两个实例看一下 xff0c 分别是简单的求和和Fibonacci sequenc
  • matlab简单绘图plot,subplot

    a1 二维绘图plot的实现 subplot n m x 建立一个m n的绘图区域 xff0c 然后分别在其x 61 1 xff0c 2 xff0c 3 xff0c 4 区域绘制图像 function 61 plot1 x 61 0 0 3
  • python 函数的定义和应用

    1 xff0c 函数定义和使用 xff1a def substract sub a sub b sub res 61 sub a sub b return sub res sub test 61 substract 10 20 print
  • Linux shell中的-d,-f,-e,-n的作用

    1 xff0c d gt dirtionnary 判断目录是否存在 例 xff1a d tmp 返回为真便是 tmp是文件夹目录 2 xff0c e gt exist 判断是否存在 例 xff1a e filename 返回为真表示file

随机推荐