树莓派将DHT11温度湿度上传到阿里云物联网平台

1、自定义功能



添加的过程就是如此,因为温度是有小数点的,所以用float比较好,其他的比如时间等等也可以使用text类型,视情况而定。
定义好之后就可以发布了,当前只有一个温度,还需要添加是湿度。

2、环境准备
  • 下载Node.js
  • 安装mtqq库
npm install aliyun-iot-mqtt -S
  • 安装阿里云SDK
sudo pip install aliyun-python-sdk-core
sudo pip install aliyun-python-sdk-iot
3、代码
#-*- coding: utf-8 -*-
import aliyunsdkiotclient.AliyunIotMqttClient as iot
import json
import multiprocessing
import time
import random
import RPi.GPIO as gpio
import sys
import os
options = {'productKey': '你的产品号','deviceName': '你的产品名称','deviceSecret': '密码','port': 1883,'host': 'iot-as-mqtt.cn-shanghai.aliyuncs.com'
}def GetDTH():gpio.setwarnings(False)gpio.setmode(gpio.BCM)time.sleep(1)data = []def delay(i):  # 20*i usdelaya = 0for j in range(i):a + 1j = 0# start workgpio.setup(21, gpio.OUT)# gpio.output(12,gpio.HIGH)# delay(10)gpio.output(21, gpio.LOW)time.sleep(0.02)gpio.output(21, gpio.HIGH)i = 1i = 1# wait to responsegpio.setup(21, gpio.IN)while gpio.input(21) == 1:continuewhile gpio.input(21) == 0:continuewhile gpio.input(21) == 1:continue# get datawhile j < 40:k = 0while gpio.input(21) == 0:continuewhile gpio.input(21) == 1:k += 1if k > 100: breakif k < 20:data.append(0)else:data.append(1)j += 1print("Sensor is working")# get temperaturehumidity_bit = data[0:8]humidity_point_bit = data[8:16]temperature_bit = data[16:24]temperature_point_bit = data[24:32]check_bit = data[32:40]humidity = 0humidity_point = 0temperature = 0temperature_point = 0check = 0for i in range(8):humidity += humidity_bit[i] * 2 ** (7 - i)humidity_point += humidity_point_bit[i] * 2 ** (7 - i)temperature += temperature_bit[i] * 2 ** (7 - i)temperature_point += temperature_point_bit[i] * 2 ** (7 - i)check += check_bit[i] * 2 ** (7 - i)tmp = humidity + humidity_point + temperature + temperature_pointif check == tmp:print("temperature is ", temperature, ".", temperature_point, "*C", "wet is ", humidity, ".", humidity_point,"%")s=temperature+temperature_point*0.1m=humidity+humidity_point*0.1return s,melse:print("file")return 0, 0host = options['productKey'] + '.' + options['host']def on_message(client, userdata, msg):print(msg.payload)setjson = json.loads(msg.payload)def on_connect(client, userdata, flags_dict, rc):print("Connected with result code " + str(rc))def on_disconnect(client, userdata, flags_dict, rc):print("Disconnected.")def worker(client):topic = '/sys/' + options['productKey'] + '/' + options['deviceName'] + '/thing/event/property/post'while True:file =open("/sys/class/thermal/thermal_zone0/temp",'r')temp = float(file.read())/1000file.close()time.sleep(5)T, H = GetDTH()print('T=', T, 'H=', H)if T != 0 or H != 0:payload_json = {'id': int(time.time()),'params': {'CurrentTemperature':temp,'Temperature': T,  # random.randint(20, 30),'Humidity': H,  # random.randint(40, 50)},'method': "thing.event.property.post"}print('send data to iot server: ' + str(payload_json))client.publish(topic, payload=str(payload_json))if __name__ == '__main__':client = iot.getAliyunIotMqttClient(options['productKey'], options['deviceName'], options['deviceSecret'],secure_mode=3)client.on_connect = on_connectclient.on_disconnect = on_disconnectclient.on_message = on_messageclient.connect(host=host, port=options['port'], keepalive=60)p = multiprocessing.Process(target=worker, args=(client,))p.start()client.loop_forever()

里面的代码是可以直接可以使用的,修改好自己的产品信息,然后将DHT11中数据引脚修改一下就可以了。然后注意的是params中的key要与阿里云定义的标识符相同,运行之后才会传送到阿里云中去。

树莓派将DHT11温度湿度上传到阿里云物联网平台相关推荐

  1. 单片机数据上传到阿里云物联网平台后,如何在手机端和网页端获取获取数据?

    最近遇到了一个需求:单片机上传数据到阿里云物联网平台,手机端或者网页端能够从物联网平台获取数据并显示到出来,再加一个手机端/网页端通过物联网平台控制单片机. 最终采用了阿里云物联网平台提供的方法,使用 ...

  2. ESP32-C3通过MQTT协议把温湿度上传到阿里云物联网平台

    最近本来想实现微信小程序通过OneNet平台控制灯开关的,没想到微信小程序代码都写好接口了,才发现onenet想下发命令的应用管理得要钱了,秉承白嫖绝不白给的精神,毅然决然的转用阿里云平台. 文章目录 ...

  3. NBIOT模块bc20与GPS模块AT1218数据上阿里云物联网平台

    本文章主要实现将GPS模块收集到的经纬度信息上传到阿里云物联网云平台上中,使用NBIOT技术,其通讯模块是移远公司推出的BC20模块,GPS模块是正点原子推出的1218系列模块.         (N ...

  4. 树莓派CM4 Sensing(包含485接口)+python+继电器+水质仪+阿里云物联网平台ito实现实时检测水质并上传数据到阿里云ito和远程控制灯光

    一.硬件设备 1.树莓派CM4 Sensing(包含485接口) 2.带485接口的继电器 继电器的mdobus指令 3.水质仪 水质仪线路需要改造一下 下图中1是水质仪自带的线,2是给水质仪提供电源 ...

  5. 51单片机检测温湿度并且上传到阿里云

    这个项目基于51单片机.ESP8266WiFi模块.温湿度DHT11传感器.阿里云来完成. 目录 1.项目构思 2.各模块的硬件连线及代码编写 2.1.dht11温湿度模块 2.1.1.dht11硬件 ...

  6. esp32 + DHT11温湿度传感器+阿里云物联网平台实时数据显示 实现设备上云

    1 课设目的 本课设是通过esp32板子搭配DHT11传感器,检测温度和湿度数据通过MQTT协议实时传输到阿里云物联网开发平台,实现设备上云. 2 阿里云环境准备 2.1开通物联网平台 我们先需要注册 ...

  7. RS485设备通过DTU上传数据到阿里云物联网平台

    在开始之前,首先需要搞明白以下几个概念,RS485, Modbus协议和DTU. RS485,基础概念自行度娘,这里如果简单理解的话就是一种串行通信标准.非硬件工程师其实记住RS485有4条线,A,B ...

  8. 利用Proteus仿真基于stm32的智能家居并上传至阿里云

    学校组织了为期两周的实训,疫情原因只能线上,学习的是stm32,本来利用32制作智能家居并上传阿里云网上的教程很多的,但是仿真并上云暂未发现,这也是我本次实训感觉学到的东西. 实现的东西其实很简单,就 ...

  9. springboot 打包_springboot项目打包上传至阿里云服务器

    工具 IDEA+Xshell6+maven 详细步骤 01 对Spring Boot项目进行打包 打包的两种方式:IDEA和CMD 首先介绍使用IDEA进行打包. 双击clean和package,ID ...

最新文章

  1. shell的相关知识(变量、脚本定义)
  2. .net Tuple特性
  3. 【状压DP】最优配对问题(jzoj 3420)
  4. 微软请你学Linux,你没有听错,是Linux系列培训4月~6月,共16期,4月5日起盛情开始!微软请你!!!
  5. 关于mount nfs时-o nolock的问题
  6. 四川信息职业技术学院2019考纲复习
  7. C语言药店药品管理系统
  8. Android 友盟分享自定义面板使用
  9. 软件体系结构期末复习(快速入门考试)
  10. 2022最受欢迎开源免费CMS建站系统排行榜
  11. php mysql 博客_基于PHP+MySQL的个人博客系统
  12. 转载!一文了解A股市场所有的ETF指数基金
  13. 在腾讯轻量云上搭建 CS:GO 服务器
  14. python日程提醒小程序_用Python写个爬虫小程序,给女朋友每日定时推送睡前小故事...
  15. Alibaba Code代码索引技术实践:为Code Review提供本地IDE的阅读体验
  16. 零基础学软件测试难吗?小白怎么半年内成为测试工程师
  17. Python每日一记196pandas.core.indexing.IndexingError: Too many indexers
  18. 你这么努力,为何还如此焦虑?
  19. 【答学员问】假如面试通过,我能不能问hr为什么选择我?
  20. MyBatis基础篇

热门文章

  1. ExpertXLS Excel 用作 .NET 托管程序集
  2. Linux--自有服务
  3. discard long time none received connection
  4. 以德服人才能口服心服 - 兼谈华为公司狼性管理
  5. JAVA 攻城狮 第一天
  6. 计算机系军训横幅,军训横幅标语
  7. 南通SEO学习笔记——关键词优化策略
  8. 刚毕业的大学生适合进外包公司吗?
  9. python 格式化打印列表_打印和格式化列表在Python中
  10. Linux实验之www、httpd服务器的安装与配置