文档章节

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

BetaYuan
 BetaYuan
发布于 2016/10/25 21:06
字数 339
阅读 260
收藏 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
博文 47
码字总数 11273
作品 0
松江
程序员
私信 提问
云上树莓派(2):将传感器数据上传到 AWS IoT 并利用Kibana进行展示

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

SammyLiu
2018/08/09
0
0
微软专家教你,如何搞定树莓派 AI 服务开发

本文来自作者 微软公开课 在 GitChat 上分享 「60分钟轻松搞定树莓派 AI 服务开发」 编辑 | Mc Jin 1. 引言 目前,物联网、人工智能已经深入到医疗、家居、交通、教育和工业等多个领域,正在...

gitchat
2018/05/07
0
0
云中树莓派(3):通过 AWS IoT 控制树莓派上的 Led

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

SammyLiu
2018/08/13
0
0
树莓派 3 或开启物联网革命的大门

如今距离2012年2月第一代树莓派诞生已经过去了四年,现在全新的树莓派3也已经来到了我们的身边。树莓派3采用了64位四核ARM Cortex 1.2GHz处理器,具有内置WiFi与蓝牙。使这款小型设备更为实用...

oschina
2016/03/08
8.1K
43
云中树莓派(4):利用声音传感器控制Led灯

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

SammyLiu
2018/08/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

[git/tower]SSL certificate problem: Invalid certificate chain

fatal: unable to access 'https://xxx@130.51.23.250/baseline/mobile-framework/login-service.git/': SSL certificate problem: Invalid certificate chain 解决: git config --global ......

Danni3
42分钟前
1
0
ADI推出AD9528 JESD204B时钟和SYSREF发生器

1:根据ADI官网上对9361的介绍,其中还提到了与9361相配套的电源,时钟,LNA,PA等等功能部分需要的芯片,具体网页:https://www.analog.com/en/products/ad9361.html 2:MATLAB Filter Design...

whoisliang
55分钟前
2
0
Java springcloud B2B2C o2o多用户商城 springcloud架构-docker-feign配置(五)

简介 上一节我们讨论了怎么用feign声明式调用cloud的生产者,这节我们讨论一下feign配置,通过编写配置类,我们可以自定义feign的日志级别,日志扫描目录,可以通过feign调用服务在eureka上的...

sccspuercode
今天
5
0
长连接的心跳及重连设计

前言 说道“心跳”这个词大家都不陌生,当然不是指男女之间的心跳,而是和长连接相关的。 顾名思义就是证明是否还活着的依据。 什么场景下需要心跳呢? 目前我们接触到的大多是一些基于长连接...

crossoverJie
今天
12
0
OSChina 周三乱弹 —— 风扇写着先生请自爱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @蚂蚁哈哈哈 :分享陈奕迅的单曲《落花流水》 《落花流水》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这里) @车谷 :我发现每天上班都好困 ...

小小编辑
今天
1K
16

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部