文档章节

用树莓派搭建简单的传感器物联网应用

BetaYuan
 BetaYuan
发布于 2016/10/25 21:06
字数 339
阅读 597
收藏 2

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

这里选取DS18B20作为温度传感器,该传感器使用单总线连接至树莓派。本例将采集到的温度数据同时上传乐为物联Yeelink两个IoT云端平台.

1. 挂载DS18B20

sudo modprobe w1-gpio
sudo modprobe w1-therm

2. 安装Python的库单总线温度计访问库: w1thermsensor

pip install w1thermsensor

3. 新建一个iot.py文件敲入以下代码

#!/usr/bin/env python
#coding=utf8

import httplib, urllib

from w1thermsensor import W1ThermSensor
import time
import socket, serial, time
import httplib
import json

HOST = "open.lewei50.com"

PORT = 80
 

user_key = '乐为物联的userkey'

def send_data_to_yeelink(temp):

		httpClient = None
		try:
			params = json.dumps({'value': temp})
			headers = {"Content-type": "application/json"
                    , "Accept": "text/plain",'U-ApiKey': 'Yeelink的api key'}
 
			print params
			httpClient = httplib.HTTPConnection('api.yeelink.net', 80, timeout=30)
			httpClient.request("POST", "/v1.1/device/设备id/sensor/传感器id/datapoints", params, headers)
 
			response = httpClient.getresponse()
			print response.status
			print response.reason
			print response.read()
			print response.getheaders() #获取头信息
		except Exception, e:
			print e
		finally:
			if httpClient:
				httpClient.close()
 

def send_data(temp):

		httpClient = None
		try:
			params = json.dumps([{'Name': '传感器名称', 'Value': temp}])
			headers = {"Content-type": "application/x-www-form-urlencoded"
                    , "Accept": "text/plain","userkey":user_key}
 
			print params
			httpClient = httplib.HTTPConnection(HOST, 80, timeout=30)
			httpClient.request("POST", "/api/V1/Gateway/UpdateSensors/01", params, headers)
 
			response = httpClient.getresponse()
			print response.status
			print response.reason
			print response.read()
			print response.getheaders() #获取头信息
		except Exception, e:
			print e
		finally:
			if httpClient:
				httpClient.close()
while True:
	for sensor in W1ThermSensor.get_available_sensors([W1ThermSensor.THERM_SENSOR_DS18B20]):
		temp=sensor.get_temperature()
		print("Sensor %s has temperature %.2f" % (sensor.id,temp ))
		send_data(temp)
		send_data_to_yeelink(temp)
	time.sleep(120)

4. 运行python脚本

python iot.py

5. 如果温度读取成功且上传成功会打印相关消息.

BetaYuan
粉丝 0
博文 50
码字总数 14252
作品 0
松江
程序员
私信 提问
加载中
请先登录后再评论。
树莓派 + Windows IoT Core 搭建环境监控系统

前言:Windows IoT 是微软为嵌入式开发板设计的一种物联网操作系统,运行Windows UWP(C# 开发),可以设计出丰富的交互界面,驱动GPIO,连接一些传感器做有意思的事,本文详细介绍如何使用它...

osc_i6ddt53t
04/16
35
0
云中树莓派(2):将传感器数据上传到 AWS IoT 并利用Kibana进行展示

云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 1. 传感器安装及配置 1.1 DHT22 安装 DHT22 是一款温度与湿度传感器,它有3个针脚,左边的第一...

osc_hajrc28s
2018/08/09
5
0
.NET Core / C# 开发 IOT 嵌入式设备的个人见解

原文:.NET Core / C# 开发 IOT 嵌入式设备的个人见解 ( .NET Core 七龙珠 ) 一、IOT 平台的支持 先看国内优秀的云计算IOT平台(不含QQ互联、小米IOT等针对特定产品的开发者平台,仅列出部分云...

osc_nd0lr8gs
2019/03/25
3
0
.NET Core / C# 开发 IOT 嵌入式设备的个人见解

( .NET Core 七龙珠 ) 一、IOT 平台的支持 先看国内优秀的云计算IOT平台(不含QQ互联、小米IOT等针对特定产品的开发者平台,仅列出部分云计算厂商的IOT平台) 阿里云 IOT https://iot.aliyun.c...

osc_8vgjpfw9
2019/03/24
3
0
云中树莓派(3):通过 AWS IoT 控制树莓派上的 Led

云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 云中树莓派(3):通过 AWS IoT 控制树莓派上的Led 云中树莓派(4):利用声音传感器控制Led...

osc_joco7w0s
2018/08/13
2
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringCloud 应用在 Kubernetes 上的最佳实践 — 开发篇

作者 | 孤弋 阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作。 前言 近年来,云原生、Kubernetes、微服务、SpringCloud 这些名词在技术圈内不绝于耳,数据显示,使用 SpringCloud ...

阿里云技术博客
5分钟前
0
0
如何能够高效率学习Web前端技术

  Web前端开发作为前端技术的重要组成,一直占据着重要的地位,整个IT行业内有大量的前端开发从业者,随着移动互联网、大数据和人工智能的发展,目前前端的知识体系也在逐渐丰富。   要想...

SXXpenguin
5分钟前
0
0
Spring Boot 2.3.0正式发布:优雅停机、配置文件位置通配符新特性一览

当大潮退去,才知道谁在裸泳。。关注公众号【BAT的乌托邦】开启专栏式学习,拒绝浅尝辄止。本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈、MyBatis、中间件等小而美的专栏...

osc_odp8kgup
5分钟前
0
0
HttpMessageConverter是这样转换数据的

Java Web 人员经常要设计 RESTful API(如何设计好的RESTful API),通过 json 数据进行交互。那么前端传入的 json 数据如何被解析成 Java 对象作为 API入参,API 返回结果又如何将 Java 对象...

tan日拱一兵
2019/05/27
0
0
angular浏览器兼容性问题解决方案

问题:edge浏览器下,固定列的边框消失 原因:ng-zorro-antd表格组件使用nzLeft和nzRight指令固定的表格列,这两个指令的实现css3中的标签: position: -webkit-sticky !important;positio...

osc_elbmybcg
7分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部