利用樹霉派採集溫濕度上傳到OneNET(非完整,僅參考)
看圖:

Python代碼:
#env /usr/bin/python3
#author Bruce import RPi.GPIO as GPIO
import time
import json
import datetime
import requests APIKEY = '=xxxxxxxxxxxxxxxxxxxx='
apiurl = 'http://api.heclouds.com/devices/11111111/datapoints'
apiheaders = {'api-key': APIKEY, 'Content-Length': ''} def getTemp():
channel = 17
data = []
j = 0 GPIO.setmode(GPIO.BCM) time.sleep(1) GPIO.setup(channel, GPIO.OUT) GPIO.output(channel, GPIO.LOW)
time.sleep(0.02)
GPIO.output(channel, GPIO.HIGH) GPIO.setup(channel, GPIO.IN) while GPIO.input(channel) == GPIO.LOW:
continue while GPIO.input(channel) == GPIO.HIGH:
continue while j < 40:
k = 0
while GPIO.input(channel) == GPIO.LOW:
continue while GPIO.input(channel) == GPIO.HIGH:
k += 1
if k > 100:
break if k < 8:
data.append(0)
else:
data.append(1) j += 1 print("sensor is working.")
print(data) humidity_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 = 0
humidity_point = 0
temperature = 0
temperature_point = 0
check = 0 for 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_point tmp_output = open('/home/pi/Desktop/Projects/DHT11/log.txt', 'a+')
csv=open('/home/pi/Desktop/Projects/DHT11/log.csv', 'a+') if check == tmp:
print("temperature : ", temperature, ", humidity : " , humidity) tmp_output.write(',\n{"Time":' + time.strftime("%Y/%m/%d %H:%M:%S",time.localtime()) + ",")
tmp_output.write('"temperate":')
tmp_output.write(str(temperature))
tmp_output.write(',')
tmp_output.write('"Humidity":' + str(humidity))
tmp_output.write('}') csv.write(time.strftime("%Y/%m/%d %H:%M:%S",time.localtime()) + ",")
csv.write(str(temperature))
csv.write(',')
csv.write(str(humidity))
csv.write('\n')
else:
print("wrong")
print("temperature : ", temperature, ", humidity : " , humidity, " check : ", check, " tmp : ", tmp) tmp_output.close()
csv.close() CurTime = datetime.datetime.now()
payload = {'datastreams':[{"id":"DHT11a","datapoints":[{"at":CurTime.isoformat(),"value":temperature}]}]}
print("Current time: %s" % CurTime.isoformat())
print("Upload value: %.3f" % temperature) jdata = json.dumps(payload) r=requests.post(apiurl,headers=apiheaders,data=json.dumps(payload)) return r if __name__ == "__main__":
try:
while 1:
resp = getTemp()
print("OneNET request result: \n %s" %resp)
time.sleep(55)
finally:
GPIO.cleanup()
利用樹霉派採集溫濕度上傳到OneNET(非完整,僅參考)的更多相关文章
- 数据採集之Web端上传文件到Hadoop HDFS
前言 近期在公司接到一个任务.是关于数据採集方面的. 需求主要有3个: 通过web端上传文件到HDFS; 通过日志採集的方式导入到HDFS; 将数据库DB的表数据导入到HDFS. 正好近期都有在这方面 ...
- 基于lucene的案例开发:纵横小说分布式採集
转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/46812645 http://www.llwjy.com/blogdetail/9 ...
- 《转》ceilometer的数据採集机制入门
问题导读 1.ceilometer负责什么事情? 2.ceilometer 有哪些概念? 3.ceilometer 怎样採集hardware? 附上openstack 官网API http://d ...
- 用DirectShow实现视频採集-流程构建
DirectShow作为DirectX的一个子集,它为用户提供了强大.方便的多媒体开接口,而且它拥有直接操作硬件的能力,这使得它的效率远胜于用GDI等图形方式编写的多媒体程序.前面一篇文章已经对Dir ...
- 开源 java CMS - FreeCMS2.3 Web页面信息採集
原文地址:http://javaz.cn/site/javaz/site_study/info/2015/23312.html 项目地址:http://www.freeteam.cn/ Web页面信息 ...
- python爬虫之採集——360联想词W2版本号
http://blog.csdn.net/recsysml/article/details/30541197,我的这个博文介绍了对应的简单的方法做一个联想词的爬虫,并且还承诺了下面优化: 下一版本号的 ...
- 利用sql命令把结果集输出到文件
利用sql命令把结果集输出到文件 红色部分的三条命令完成把结果集输出到文件!! [root@test root]# psql -hlocalhost -Utest testWelcome to psq ...
- C++ 採集音频流(PCM裸流)实现录音功能
与上一篇的"C++ 播放音频流(PCM裸流)" 点击打开链接 相相应,本篇是关于用C++实现录音功能的.相同是直接建一个win32控制台程序然后将代码拷过去改个文件名称就能够用,也 ...
- 【源代码】基于Android和蓝牙的单片机温度採集系统
如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 STC89C52单片机通过HC-06蓝牙模块与Android手机通信实例- 基于And ...
随机推荐
- 【CQ18高一暑假前挑战赛5】标程
[A:暴力] #include<bits/stdc++.h> using namespace std; ; int a[maxn],vis[maxn],N,M; int main() { ...
- P2759 奇怪的函数
题目描述 使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? 输入输出格式 输入格式: 一个正整数 n 输出格式: 使得 x^x 达到 n 位数字的最小正整数 x 输入输出样例 输入样例# ...
- MongoDB复制集相关方法使用(五)
这里我们把复制集中可用的方法都实验一遍,帮助我们更好地来理解复制集.提前说明这些方法的使用是基于Mongodb3.2版本来的,看这篇文章之前需要先看上一篇文章. 介绍一下复制集可用的相关方法 rs.h ...
- DIY一个DNS查询器:程序实现
上一篇文章<DIY一个DNS查询器:了解DNS协议>中讲了DNS查询协议的原理和数据结构.经过两个星期的开发,完成了该查询器的编写.期间也遇到了一些问题,如: 1资源记录(Resource ...
- HDU2844(多重部分和)
Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- JS正则对象 RegExp(有变量的时候使用),用来匹配搜索关键字(标红)
1,平常我们写js正则规则的时候,一般是这样写: var reg = /abc/; 然而,这样写的话,如果abc是一个变量这样就不行,我们需要下面这种写法: var abc = "汉字&qu ...
- 在调试javascript的时候,要常使用alert()
在调试javascript的时候,要常使用alert()会帮助我们定位脚本错误.
- Identity Server 4 原理和实战(完结)_Hybrid Flow 实例, Claims, 角色授权和策略授权
4分50 建立客户端 不需要身份认证 客户端叫做HybirdClient 配置IdentityServer服务端,先把客户端添加上 把userClaims添加到token里面 然后运行服务端就可以了 ...
- 关于Angular6版本升级和RXJS6新特性的讲解
从Angular5升级到Angular6, angular6相比较于angular5 总体变化不大,但是在RXJS上面却有一些变动,不得不说,虽然很讨厌break update但是RXJS6的新特性对 ...
- E20180519-hm
distinct adj. 明显的,清楚的; 卓越的,不寻常的; 有区别的; 确切的;