原创 lin辰傍边的风 最后发布于2019-06-04 09:54:17 阅读数 1074
收藏
发布于2019-06-04 09:54:17
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
因项目功能需要,这次使用的是树莓派3b+,首次使用树莓派,记录一下
器材列表:
1、树莓派3b+
2、ds18b20温度传感器
3、可上网的路由器
使用带上拉电阻的DS18B20,DQ端口连接树莓派的GPIO25,VCC接3.3V,GND接GND
硬件搭建完成
开机树莓派,让树莓派与电脑在同一局域网,使用putty登陆树莓派
输入命令:sudo raspi-config
进入高亮选项卡 5 Interfacing Options 里面
进入高亮选项卡 P7 1-Wire 里面
选择 “是”
这样就打开单总线,然后退出即可
进入/boot/config.txt文件,在最后加上一句话,保存并退出
输入命令:sudo vim /boot/config.txt
执行命令重启树莓派:
sudo reboot
输入命令进入以下目录:
cd /sys/bus/w1/devices/
最后有一个w1_slave文件
使用命令:cat w1_slave
t=29062/1000就是当前的温度值
好了,开始写入程序
使用记事本新建一个temp.py文件,拷贝以下程序到该文件中,只需更改三个地方:
使用你的APIKEY,设备id,数据流名称
#coding:utf-8
import subprocess
import os
import glob
import time
import urllib2
import json
import time
import datetime
APIKEY = 'xxxxxxxx' #你的APIKEY
os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'
def read_temp_raw():
catdata = subprocess.Popen(['cat',device_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out,err = catdata.communicate()
out_decode = out.decode('utf-8')
lines = out_decode.split('\n')
return lines
def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
return temp_c
def http_put():
temperature= read_temp()
url='http://api.heclouds.com/devices/xxxx/datapoints' #你的设备id
values={'datastreams':[{"id":"xxxx","datapoints":[{"value":temperature}]}]}#你的数据流名称
jdata = json.dumps(values)
print jdata
request = urllib2.Request(url, jdata)
request.add_header('api-key', APIKEY)
request.get_method = lambda:'POST'
request = urllib2.urlopen(request)
return request.read()
while True:
print(read_temp())
time.sleep(1)
resp = http_put()
print "OneNET result:\n %s" %resp
time.sleep(2)
然后使用windows自带的远程桌面:
右键开始运行,输入:mstsc
进入桌面
将windows上的temp.py直接复制粘贴至树莓派桌面
输入命令: cd /home/pi/Desktop/
输入运行程序命令:sudo python temp.py
到云平台查看温度数据:
好了,上传完成
发布了5 篇原创文章 · 获赞 0 · 访问量 1213