文档章节

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

BetaYuan
 BetaYuan
发布于 2016/10/25 21:06
字数 339
阅读 186
收藏 2
点赞 0
评论 0

这里选取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
松江
程序员
微软专家教你,如何搞定树莓派 AI 服务开发

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

gitchat ⋅ 05/07 ⋅ 0

AndroidThings之基础二 设计理念

转载自:https://blog.csdn.net/tangxiaoyin/article/details/75273491 (PS:目前AndroidThings已经走向消费级别,发布正式版本1.0版,开发板推荐树莓派3B+) 前言 2012 年 6 月,由 IoT-GSI(...

qq_28831197 ⋅ 05/09 ⋅ 0

windows10 IoT的远程桌面(适用于win10操作系统)

如何使用Windows10 IoT远程桌面: 这次的windows10 IoT core 的 Fall Creator (Build 16229) 更新完之后 树莓派使用远程桌面时,出现白屏状况 ,没有图像。官方也正在修复中。 详情见下面链...

a201577f0546 ⋅ 2017/06/22 ⋅ 0

PHP再学习5——RESTFul框架 远程控制LED

0.前言 去年(2013年)2月第一次接触yeelink平台,当时该平台已经运行了一些时间也吸引了不少极客。试想自己也将投身IoT(物联网)行业,就花了些时间研究了它。陆陆续续使用和研究了一年,大...

thinkyoung ⋅ 2014/12/02 ⋅ 0

嵌入式物联网软硬件开发平台 - OpenFPGAduino

OpenFPGAduino 是开源的基于 nodejs 与 FPGA 的嵌入式物联网软硬件开发平台。与Arduino等快速原型开发平台相类似。 不仅提供了基于nodejs网络交互能力特别是用于开发的网络IDE以及类似树莓派...

李知周 ⋅ 2015/11/20 ⋅ 2

如何使用树莓派测定颗粒物(PM 2.5)

使用两个简单的硬件设备和几行代码构建一个空气质量探测器。 我们在东南亚的学校定期测定空气中的颗粒物。这里的测定值非常高,尤其是在二到五月之间,干燥炎热、土地干旱等各种因素都对空气...

作者: Stephan Tetzel ⋅ 05/08 ⋅ 0

使用树莓派和 projectx/os 托管你自己的电子邮件

这个开源项目可以通过低成本的服务器设施帮助你保护你的数据隐私和所有权。 现在有大量的理由,不能再将存储你的数据的任务委以他人之手,也不能在第三方公司运行你的服务;隐私、所有权,以...

75% ⋅ 05/18 ⋅ 0

如何使用树莓派制作一个数字针孔摄像头

学习如何使用一个树莓派 Zero、高清网络摄像头和一个空的粉盒来搭建一个简单的相机。 在 2015 年底的时候,树莓派基金会发布了一个让大家很惊艳的非常小的 树莓派 Zero。更夸张的是,他们随 ...

19% ⋅ 昨天 ⋅ 0

树莓派随身工具箱:中间人劫持获取控制权

  *本文原创作者:Rc4x,本文属FreeBuf原创奖励计划,未经许可禁止转载   导读   上文讲解了树莓派随身工具箱的环境搭建,这段时间又对其进行了一些优化,主要是从便携美观上面改进。同...

FreeBuf ⋅ 04/26 ⋅ 0

硝烟四起的物联网,如何自处安宁?

当莱特兄弟1903年进行具有开创性的飞行实验时,是否有安全员坚持要求配备降落伞和降落减震装置?没有,所有的焦点都在于他们是否可以离开地面!这是他们的胜利。四年后,安全成了人们关注的焦...

玄学酱 ⋅ 02/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 26分钟前 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 46分钟前 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部