当前位置: 首页 > news >正文

保姆级教程:用树莓派4B+DHT22传感器,5分钟搞定OneNET物模型数据上云

树莓派4B+DHT22传感器极速上云指南:从硬件连接到OneNET物模型实战

在智能家居和物联网原型开发中,快速验证想法往往比完美实现更重要。本文将带你用树莓派4B和DHT22温湿度传感器,在5分钟内完成从物理连接到OneNET物联网平台数据可视化的全流程。不同于传统教程冗长的环境配置,我们采用最小必要步骤设计,即使没有任何Linux或Python基础的开发者也能立即看到传感器数据在云端跳动。

1. 硬件准备与连接

1.1 物料清单检查

确保手边有以下设备(型号必须完全匹配):

  • 树莓派4B(任何内存版本均可,建议安装Raspberry Pi OS Lite系统)
  • DHT22传感器(AM2302型号,注意是3引脚封装版)
  • 母对母杜邦线3条(颜色建议:红、黑、黄)
  • 5V/3A USB-C电源(为树莓派供电)

注意:DHT22有裸板和三线封装两种版本,本文使用带塑料外壳的三线版(VCC/GND/DATA),若使用四针版本需要额外接电阻。

1.2 物理连接图解

按照以下引脚对应关系连接:

树莓派GPIO引脚DHT22引脚线色建议
GPIO4 (Pin7)DATA黄色
5V (Pin2)VCC红色
GND (Pin6)GND黑色

连接完成后,树莓派通电启动。可通过lsmod | grep dht命令检查内核是否自动加载了dht11驱动(虽然DHT22需要用户态驱动,但内核模块存在表示硬件正常)。

2. 软件环境一键配置

2.1 依赖安装

在树莓派终端执行以下命令(全部复制粘贴运行):

#!/bin/bash # 一键安装脚本 sudo apt update && sudo apt install -y python3-pip git sudo pip3 install Adafruit_DHT git clone https://github.com/adafruit/Adafruit_Python_DHT.git cd Adafruit_Python_DHT && sudo python3 setup.py install

2.2 传感器测试代码

创建dht22_test.py文件:

import Adafruit_DHT import time sensor = Adafruit_DHT.DHT22 pin = 4 # GPIO4 while True: humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) if humidity is not None and temperature is not None: print(f"Temp={temperature:.1f}°C Humidity={humidity:.1f}%") else: print("Failed to read data") time.sleep(2)

运行测试:python3 dht22_test.py,正常应每2秒输出一次温湿度数据。若持续报错,检查硬件连接是否松动。

3. OneNET物模型快速接入

3.1 控制台配置三步骤

  1. 创建产品:登录OneNET控制台 → 物联网平台 → 创建产品 → 选择"物模型"接入方式 → 自定义品类(如"环境监测")
  2. 定义物模型:在产品详情页添加两个属性:
    • 温度(float类型,单位℃)
    • 湿度(float类型,单位%RH)
  3. 添加设备:记录自动生成的设备ID和API Key

3.2 Python上传脚本

创建onenet_upload.py

import requests import json import Adafruit_DHT from time import sleep DEVICE_ID = "你的设备ID" API_KEY = "你的API_Key" sensor = Adafruit_DHT.DHT22 pin = 4 def upload_to_onenet(temp, humi): url = f"http://api.heclouds.com/devices/{DEVICE_ID}/datapoints" headers = {"api-key": API_KEY} payload = {"datastreams": [ {"id": "temperature", "datapoints": [{"value": temp}]}, {"id": "humidity", "datapoints": [{"value": humi}]} ]} r = requests.post(url, headers=headers, data=json.dumps(payload)) return r.status_code == 200 while True: humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) if None not in (humidity, temperature): if upload_to_onenet(temperature, humidity): print(f"Uploaded: {temperature}°C, {humidity}%") sleep(30) # 每30秒上传一次

后台运行:nohup python3 onenet_upload.py &,此时OneNET控制台应能看到实时数据曲线。

4. 微信小程序实时展示(可选)

对于需要移动端查看的场景,可通过微信小程序调用OneNET API。在小程序的app.js中添加:

const fetchSensorData = () => { wx.request({ url: 'https://api.heclouds.com/devices/设备ID/datapoints', header: {'api-key': '你的API_Key'}, success(res) { console.log('最新数据:', res.data.data) } }) }

页面布局建议使用<canvas>绘制温湿度曲线,或简单显示数值:

<view class="container"> <text>当前温度:{{temp}}℃</text> <text>当前湿度:{{humi}}%RH</text> </view>

常见问题速查表

现象可能原因解决方案
持续输出"Failed to read"1. 引脚接错 2. 电源不足1. 检查GPIO4连接 2. 换5V电源
API返回401错误API Key填写错误检查控制台-设备详情页的Key
数据上传但曲线不动物模型ID未匹配确保脚本中id与物模型定义一致

硬件方面,若在潮湿环境使用,建议给DHT22加装防水透气膜;软件层面,生产环境应考虑添加本地数据缓存,防止网络中断导致数据丢失。

http://www.jsqmd.com/news/745881/

相关文章:

  • 2026最新!踩过7个坑亲测,这3款一边录音一边转文字的免费神器好用到哭!
  • Spring Boot项目启动报SLF4J警告?别慌,5分钟教你用Maven排除法搞定Logback与slf4j-simple冲突
  • 手把手用Python+SI仿真工具(以Sigrity PowerSI为例)量化分析:你的PCB走线在10GHz下到底衰减了多少dB?
  • 5步掌握FileMeta:Windows文件智能管理终极方案
  • 实时字幕:小白转文字悬浮字幕功能介绍
  • YahooFinanceApi架构解析:.NET金融数据获取的技术实现与企业级应用
  • Java低代码引擎如何实现“拖拽即编译”?:深度解析AST动态解析、字节码注入与运行时沙箱三大关键技术
  • 从TypeError到高效数据处理:用列表推导式和NumPy彻底告别‘序列乘浮点’烦恼
  • 从Spring Boot到Quarkus再到Micrometer Edge Agent:Java边缘Runtime演进路线图(2024Q3最新版,含废弃技术预警)
  • 为什么你的压测结果和生产环境相差5倍?Java中间件适配测试必须校准的4个关键时序指标
  • 从零到上线:一个PHP后台+微信小程序前端的公司官网全栈开发实录
  • Notepad++ 鼠标右键,添加自定义文本转换功能
  • NifSkope:游戏3D模型编辑的终极解决方案
  • 如何快速掌握B站视频转换:m4s-converter完整使用教程
  • 恒创科技测评:KVM虚拟化/Platinum 8163/2GB内存/SSD硬盘/峰值10M带宽轻量型香港云服务器(Rocky-Light-BT_x64系统)
  • 不止于检测:在AutoCAD中用C#实现多段线自相交的自动修复思路
  • VMware Unlocker 3.0:在Windows和Linux上解锁macOS虚拟机支持的终极方案
  • 提升多模态开发效率:用快马平台快速集成openmaic实现批量图片分析
  • APK Installer:让你在Windows上轻松安装Android应用的3个关键步骤
  • 如何高效使用KMS智能激活脚本:Windows和Office激活完整指南
  • 当Cesium模型‘歪头杀’:用VelocityVectorProperty手动校准复杂模型的飞行姿态
  • 将 Claude Code 编程助手无缝对接至 Taotoken 平台以享受折扣价格
  • 多模态与对比学习在文档检索中的实践与优化
  • SD-PPP:如何在Photoshop中3步搭建AI绘图工作流,实现高效创意设计
  • Windows系统xactengine3_2.dll文件丢失找不到无法启动解决
  • 创业团队如何借助Taotoken快速验证多个大模型产品创意
  • 告别网盘限速!LinkSwift直链下载助手八大平台免费加速指南
  • 数学论文降AI工具免费推荐:2026年纯理科论文降AI维普知网双达标99.26%亲测指南
  • 不止于安装:用FreeSurfer 7.1.0和Python(mne库)把你的MRI数据变成可编辑的3D头模型
  • 别再乱打拍了!用深度为1的FIFO(Skid Buffer)彻底解决Valid-Ready握手时序问题