Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
import os
import glob
import time
from ISStreamer.Streamer import Streamer
streamer = Streamer(bucket_name="Temperature Stream", bucket_key="piot_temp_stream031815", access_key="PUT_YOUR_ACCESS_KEY_HERE")
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():
f = open(device_file, 'r')
lines = f.readlines()
f.close()
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
while True:
temp_c = read_temp()
temp_f = temp_c * 9.0 / 5.0 + 32.0
streamer.log("temperature (C)", temp_c)
streamer.log("temperature (F)", temp_f)
time.sleep(.5)
@danielrmorris

This comment has been minimized.

Copy link

@danielrmorris danielrmorris commented Aug 15, 2020

Hi Elizabeth,
I am using your code above to monitor temperatures and the program works perfectly! I am so new at working with python and raspberry pi and your article was informative and easy to follow.

When I run the temperature.py program, my initial state data bucket (I named it "Temperature Stream") displays two graphs Celsius and Fahrenheit.

I would like to monitor multiple sensors. I am starting with two. I am using the DSB18B20 solution and I have added one additional sensor that shows up in the /sys/bus/w1/devices/ folder. (now two sub folders appear with names starting with "28"-".

how can I modify the temperature.py code to see both sensors or if that is not the way to do it, do I do something in my initialstate data bucket? I know it is probably a no-no, but I have displayed the temperature.py code with my initialstate access_key below.


import os
import glob
import time
from ISStreamer.Streamer import Streamer

streamer = Streamer(bucket_name="Temperature Stream", bucket_key="piot_temp_stream031815", access_key=ist_ORc4ZZ_nl0M5bolOx-fdO80GNoKNSRuC)

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():
f = open(device_file, 'r')
lines = f.readlines()
f.close()
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

while True:
temp_c = read_temp()
temp_f = temp_c * 9.0 / 5.0 + 32.0
streamer.log("temperature (C)", temp_c)
streamer.log("temperature (F)", temp_f)
time.sleep(.5)


I appreciate any help.

Daniel Morris

@elizabethn119

This comment has been minimized.

Copy link
Owner Author

@elizabethn119 elizabethn119 commented Aug 18, 2020

@danielrmorris

This comment has been minimized.

Copy link

@danielrmorris danielrmorris commented Aug 18, 2020

@elizabethn119

This comment has been minimized.

Copy link
Owner Author

@elizabethn119 elizabethn119 commented Aug 18, 2020

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment