コード例 #1
0
ファイル: inmonitor.py プロジェクト: tisfablab/inmonitor
ip = [(s.connect(('8.8.8.8', 80)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1]
print datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "My private IP is:", ip

# init  -----------------------------------------------------------------------

httpd = httpservice.Service(2222)
led = gpio.GPIOout(26)
refreshTime = time.time() + INTERVAL;

# loop ------------------------------------------------------------------------

while True: 
	# read temperature, pressure, humidity
	(degC, hPa, hRel) = bme280.readData() 
	# read brightness data	
	(visible, ir, lux) = tsl2591.readData() 
	# provide data to potential direct connection to port 2222
	if httpd.provideData({'temperature':degC,'humidity':hRel, 'pressure':hPa, 'illuminance':lux, 'timestamp':'ALMOST REAL TIME!'}):
		thread.start_new_thread(led.pulse, (0.1, ) )
		print datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "direct request from", httpd.addr[0]
	# every 10 seconds, try to send data to servers
	if time.time() > refreshTime:
		now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
		refreshTime = time.time() + INTERVAL;
		print now, "T: %.1f degC, P: %.1f hPa, phi: %.1f %%rH, E: %.0f lux" % (degC, hPa, hRel, lux)
		payload = { 'device': DEVICE_ID, 'password': PASSWORD, 'temperature': degC, 'pressure': hPa, 'humidity': hRel, 'illuminance': lux, 'localaddr': ip }
		# send data to cloud server
		if SERVER:
			try: r=requests.get( "http://"+SERVER+"/store.php", params=payload, timeout=HTTP_TIMEOUT)
			except: 
				print now, "connection to cloud server failed"
コード例 #2
0
ファイル: hwtest.py プロジェクト: tisfablab/inmonitor
#!/usr/bin/python
# -*- coding: latin-1 -*-

import time
import gpio
import bme280
import tsl2591 

led = gpio.GPIOout(26)

while True:
	print "Testing LED..."
	led.pulse(0.5)
	time.sleep(1)
	print "Reading Temperature/Pressure/Humidity...", 
	(degC, hPa, hRel) = bme280.readData() # read temperature, pressure, humidity
	print degC, hPa, hRel
	if (hPa!=0): led.pulse(0.5)
	time.sleep(1)
	print "Reading visible/IR light...", 
	(visible, ir, lux) = tsl2591.readData() # read brightness data	
	print visible, ir
	if (lux!=0): led.pulse(0.5)
	time.sleep(5)