看圖:

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(非完整,僅參考)的更多相关文章

  1. 数据採集之Web端上传文件到Hadoop HDFS

    前言 近期在公司接到一个任务.是关于数据採集方面的. 需求主要有3个: 通过web端上传文件到HDFS; 通过日志採集的方式导入到HDFS; 将数据库DB的表数据导入到HDFS. 正好近期都有在这方面 ...

  2. 基于lucene的案例开发:纵横小说分布式採集

    转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/46812645 http://www.llwjy.com/blogdetail/9 ...

  3. 《转》ceilometer的数据採集机制入门

    问题导读 1.ceilometer负责什么事情? 2.ceilometer 有哪些概念? 3.ceilometer 怎样採集hardware? 附上openstack 官网API   http://d ...

  4. 用DirectShow实现视频採集-流程构建

    DirectShow作为DirectX的一个子集,它为用户提供了强大.方便的多媒体开接口,而且它拥有直接操作硬件的能力,这使得它的效率远胜于用GDI等图形方式编写的多媒体程序.前面一篇文章已经对Dir ...

  5. 开源 java CMS - FreeCMS2.3 Web页面信息採集

    原文地址:http://javaz.cn/site/javaz/site_study/info/2015/23312.html 项目地址:http://www.freeteam.cn/ Web页面信息 ...

  6. python爬虫之採集——360联想词W2版本号

    http://blog.csdn.net/recsysml/article/details/30541197,我的这个博文介绍了对应的简单的方法做一个联想词的爬虫,并且还承诺了下面优化: 下一版本号的 ...

  7. 利用sql命令把结果集输出到文件

    利用sql命令把结果集输出到文件 红色部分的三条命令完成把结果集输出到文件!! [root@test root]# psql -hlocalhost -Utest testWelcome to psq ...

  8. C++ 採集音频流(PCM裸流)实现录音功能

    与上一篇的"C++ 播放音频流(PCM裸流)" 点击打开链接 相相应,本篇是关于用C++实现录音功能的.相同是直接建一个win32控制台程序然后将代码拷过去改个文件名称就能够用,也 ...

  9. 【源代码】基于Android和蓝牙的单片机温度採集系统

    如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 STC89C52单片机通过HC-06蓝牙模块与Android手机通信实例- 基于And ...

随机推荐

  1. hdu-5358 First One(尺取法)

    题目链接: First One Time Limit: 4000/2000 MS (Java/Others)     Memory Limit: 131072/131072 K (Java/Other ...

  2. Opencv— — image offset

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  3. python+Django实现Nagios自动化添加监控项目

    最近机房刚上了一批机器(有100台左右),需要使用Nagios对这一批机器进行监控.领导要求两天时间完成所有主机的监控.从原来的经验来看,两天时间肯定完成不了.那怎么办?按照之前的想法,肯定是在nag ...

  4. 【转载】“error LNK1169: 找到一个或多个多重定义的符号”的解决方法

    c++的小细节的地方 原文地址:https://blog.csdn.net/xiaosu123/article/details/5665729 问题描述如下: 有 三个源文件,A.h.B.cpp.C. ...

  5. C++学习笔记1-使用数组进行vector初始化

    另外,如果是定义的时候,可以直接指定复制.比如:int s[5]={1,2,3,4,5};vector<int> v(s,s+5);就可以啦.

  6. CF-807C

    C. Success Rate time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  7. 【Data Structure & Algorithm】求1+2+…+n

    求1+2+-+n 题目:求1+2+-+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字以及条件判断语句(A ? B : C). 分析:此题没多少实际意义,因为 ...

  8. git 回退到服务器版本操作

    git fetch git reset orgin master --hard git pull

  9. Oracle 11g client 安装

    本文所有红色字体标注的为本人计算机安装方法(Oracle 11g安装在本地 Oracle 11g client 也是安装在本地 如果情况一致 可参照本人方法安装) Oracle 11g client ...

  10. lightoj刷题日记

    提高自己的实力, 也为了证明, 开始板刷lightoj,每天题量>=1: 题目的类型会在这边说明,具体见分页博客: SUM=54; 1000 Greetings from LightOJ [简单 ...