树莓派pico入坑笔记,dht11使用及温湿度表制作

news2024/7/31 22:27:42

 

目录

 

关于树莓派pico和circuitpython的更多玩法,请看树莓派pico专栏

用到的库adafruit_dht,需要导入pico才能使用,在这里下载

样例程序

进阶玩法,显示信息的温湿度计

屏幕使用见树莓派pico专栏的ssd1306oled屏幕使用

代码

效果


关于树莓派pico和circuitpython的更多玩法,请看树莓派pico专栏

使用circuitpython8.x环境,硬件dht11,电压范围3~5v

用到的库adafruit_dht,需要导入pico才能使用,在这里下载

样例程序

import time
import board
import adafruit_dht

dhtDevice = adafruit_dht.DHT11(board.GP28)

while True:
    try:
        # Print the values to the serial port
        temperature_c = dhtDevice.temperature
        temperature_f = temperature_c * (9 / 5) + 32
        humidity = dhtDevice.humidity
        print(
            "Temp: {:.1f} F / {:.1f} C    Humidity: {}% ".format(
                temperature_f, temperature_c, humidity
            )
        )

    except RuntimeError as error:
        # Errors happen fairly often, DHT's are hard to read, just keep going
        print(error.args[0])
        time.sleep(2.0)
        continue
    except Exception as error:
        dhtDevice.exit()
        raise error

    time.sleep(2.0)

 
dhtDevice = adafruit_dht.DHT11(board.GP28)选择一个引脚作为数据读取引脚

temperature_c = dhtDevice.temperature

humidity = dhtDevice.humidity默认读出的时摄氏度和湿度百分比

其他的是异常处理,输出异常信息的,可以不用加

进阶玩法,显示信息的温湿度计

dht11支持3~5v供电,所以可以使用vout引脚对它供电,3.3v引脚用来给屏幕供电,不需要额外拓展引脚

屏幕使用见树莓派pico专栏的ssd1306oled屏幕使用

代码

import time
import board
import adafruit_dht
import busio
import adafruit_ssd1306

dhtDevice = adafruit_dht.DHT11(board.GP28)

i2c = busio.I2C(board.GP1,board.GP0)
display_width = 128
display_height = 64
display = adafruit_ssd1306.SSD1306_I2C(display_width, display_height, i2c)
display.fill(0)


while True:
    try:
        # Print the values to the serial port
        temperature_c = dhtDevice.temperature
        temperature_f = temperature_c * (9 / 5) + 32
        humidity = dhtDevice.humidity
#清空上一次的屏幕内容
        display.fill(0)

        display.text(
            "Temp: {:.1f} F / {:.1f} C\nHumidity: {}% ".format(
                temperature_f, temperature_c, humidity
            ),0,0,1,size=1
        )

        display.show()

    except RuntimeError as error:
        # Errors happen fairly often, DHT's are hard to read, just keep going
        print(error.args[0])
        time.sleep(2.0)
        continue
    except Exception as error:
        dhtDevice.exit()
        raise error

    time.sleep(.5)

显示时注意每次刷新需要清空上一次的内容,否则会出现像素糊在一起的情况 

效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1919128.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel的Index+MATCH组合使用方法

INDEX函数 INDEX函数作用:用于从指定的单元格区域中返回特定行和列的值。 参数形式为:INDEX(array, row_num, [column_num]) array:必需。单元格区域或数组常量。 row_num:必需。要返回的值所在的行号。 [column_num]&#x…

开发者必读:获取电商API的多种渠道

开发电商软件往往需要对接电商API,电商API可以从哪些渠道获取?下面给大家介绍两种获取渠道。 一、从电商平台开放平台获取电商API 电商平台的开放平台是获取电商API最直接的渠道,但是电商平台较多,每一个电商平台都需要单…

【理解串】

目录 一、串的基本概念二、串的基本操作及实现三、串的存储实现3.1、静态数组实现3.2、动态数组实现 四、串的朴素模式匹配4.1、算法思想4.2、代码实现 五、KMP算法5.1、算法思想5.2、求模式串的next数组5.2、代码实现 一、串的基本概念 串:即字符串(st…

常见的点云数据的获取方式

1. 激光雷达(LiDAR) 获取方式:激光脉冲测距原理:激光雷达通过发射激光脉冲并接收反射信号来测量物体与传感器之间的距离。计算激光脉冲从发射到返回所需的时间,并将其转换为距离,从而生成三维点云数据。常…

上班摸鱼吗?一文详解代码生成神器-Velocity

引言 “我不是在教你学坏,而是教你如何提高生产效率。” ----------- 牛顿 人类社会能够一直进步发展出现在的文明世界,最大的一个原因就是这个世界上懒人居多,懒人为了偷懒就需要提高生产效率,效率提高节省下来的时间才能创造出艺术、娱乐以及更高效率的科学技术。程序员…

丑数问题,力扣264,坑点

丑数问题,力扣264,坑点 力扣链接 给你一个整数 n ,请你找出并返回第 n 个 丑数 。 丑数 就是质因子只包含 2、3 和 5 的正整数。 示例 1: 输入:n 10 输出:12 解释:[1, 2, 3, 4, 5, 6, 8, 9, …

33 IRF配置思路

IRF配置思路网络括谱图 主 Ten-GigabitEthernet 1/0/49 Ten-GigabitEthernet 1/0/50 Ten-GigabitEthernet 1/0/51 备 Ten-GigabitEthernet 2/0/49 Ten-GigabitEthernet 2/0/50 Ten-GigabitEthernet 2/0/51 思路 主 1 利用console线进入设备的命令行页面去更改…

Spark源码详解

https://www.cnblogs.com/huanghanyu/p/12989067.html#_label3_3

服了,jenkins找不到advanced

新手下载的最新版本,过新手入门的时候一直过不去,就跳过了。 想下载一个汉化,还下载不了。根据提示搜索,结果大家让去advanced找url,也找不到。

[C++] 模拟实现list(二)

标题:[C] 模拟实现list(二) 水墨不写bug 目录 (一)回顾 (二)迭代器类的封装设计 (1)成员函数简要分析 (2)const迭代器类的设计 (…

国漫推荐08

仙侠、武侠、恋爱、战斗、现代、古风 1.《仙王的日常生活》仙侠、日常、搞笑 《仙王的日常生活》第一季 《仙王的日常生活 第二季》 《仙王的日常生活 第三季》 《仙王的日常生活 第四季》 2.《风灵玉秀》武侠、少女 3.刺客伍六七 番名季度上映时间《伍六七》第一季2018-04-…

ppt如何翻译最高效?盘点5个便捷易用的ppt翻译器

正值夏日炎炎,7.15初伏即将到来,天气更是开始热到让人无法专心工作~面对电脑上一堆非母语的PPT文件,看得人愈发烦躁。 幸运的是,我手里头常常备着几款ppt翻译工具,这才让办公显得没那么枯燥和烦闷~倘若你也遇上同样的…

技术速递|宣布为 .NET 升级助手提供第三方 API 和包映射支持

作者:Marco Goertz 排版:Alan Wang .NET 升级助手是一个 Visual Studio 扩展和命令行工具,可帮助您将应用从之前的 .NET 和 .NET Framework 升级到最新版本的 .NET。正如我们在之前的文章中所描述的那样,它为升级 Microsoft 库和框…

vite+vue3创建cesium (ts/js)

在要创建项目的文件夹。输入cmd 1.搭建第一个Vite项目。 npm init vitelatest 安装Cesium插件 cesium插件:vite-plugin-cesium npm i cesium vite-plugin-cesium vite -D配置cesium 在vite.config.ts/vite.config.js文件中 import cesium from vite-plugin-ces…

韦东山嵌入式linux系列-LED 驱动程序框架

1 回顾字符设备驱动程序框架 图中驱动层访问硬件外设寄存器依靠的是 ioremap 函数去映射到寄存器地址,然后开始控制寄存器。 那么该如何编写驱动程序? ① 确定主设备号,也可以让内核分配;② 定义自己的 file_operations 结构体&…

【D3.js in Action 3 精译】1.3 D3 视角下的数据可视化最佳实践(下)

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 ✔️ 1.1 何为 D3.js?1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形1.2.3 Canvas 与 WebGL1.2.4 CSS1.2.5 JavaScript1.2.6 Node 与 JavaScript 框架1.2.7 Observable 记事…

Qt常用基础控件总结—旋转框部件(QSpinBox类和QDoubleSpinBox类)

旋转框(微调按钮)部件 QAbstractSpinBox 类 QAbstractSpinBox 类介绍 QAbstractSpinBox 类是 QWidget 类的直接子类,虽然该类不是抽象类,但该类并未提供实际的功能,仅为旋转框提供了一些外观的形式以及需要子类实现了成员,也就是说点击微调按钮的上/下按钮,不会使其中的…

DID差分模型案例集(传统DID、队列DID、渐近DID、空间DID、PSM-DID)

双重差分(DID)模型是一种广泛应用于经济学、社会学等领域的统计方法,主要用于评估政策或事件的因果效应。以下是DID模型几个重要变体的简要介绍: 1、传统DID(Traditional DID):这是DID模型的基…

Keepalived+HAProxy 集群及虚IP切换实践

1、软件介绍 ①Keepalived keepalive是一个用c语言编写的路由软件,这个项目的主要目标是为Linux系统和基于Linux的基础设施提供简单而健壮的负载平衡和高可用性设施。负载均衡框架依赖于众所周知且广泛使用的Linux Virtual Server (IPVS)内核模块提供第4层负载均衡…

代码随想录算法训练营Day21 | 669. 修剪二叉搜索树 | 108.将有序数组转换为二叉搜索树 | 538.把二叉搜索树转换为累加树

今日任务 669. 修剪二叉搜索树 题目链接: https://leetcode.cn/problems/trim-a-binary-search-tree/description/题目描述: Code class Solution { public:TreeNode* trimBST(TreeNode* root, int low, int high) {if(root nullptr){return root;…