Skip to content

Instantly share code, notes, and snippets.

@RChloe
Created December 4, 2015 18:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RChloe/17e12fe2b5c33fddf6d4 to your computer and use it in GitHub Desktop.
Save RChloe/17e12fe2b5c33fddf6d4 to your computer and use it in GitHub Desktop.
# Import libraries for parsing the JSON output by the Wio Link
# Also import the Initial State Python library so we can stream
# the Wio Link readings to a visualization
import urllib2
import json
import os
import glob
import time
from ISStreamer.Streamer import Streamer
#### Wio Link Information ####
# The access token for your Wio Link
WIO_ACCESS_TOKEN = "Wio_API_Access_Token_Here"
# The name of the attached sensor
SENSOR_NAME = "GroveIRDistanceInterrupterDigital2"
# The name of the signal the sensor produces
SIGNAL_NAME = ["approach"]
### Initial State Information ###
# The name your bucket will appear with in Initial State
BUCKET_NAME = ":seedling: Wio Python"
# The hidden bucket key that associates the data w/a particular bucket
BUCKET_KEY = "wiolink"
# Initial State access key - found under "Account"
IS_ACCESS_KEY = "Initial_State_Access_Key_Here"
# Time between sensor readings
MINUTES_BETWEEN_READS = 5
# Function to fetch the JSON from a particular Wio API URL
def get_reading(sensor,signal):
api_reading_url = "https://iot.seeed.cc/v1/node/" + sensor + "/" + signal + "?access_token=" + WIO_ACCESS_TOKEN
print api_reading_url
try:
f = urllib2.urlopen(api_reading_url)
except:
print "Failed to get " + signal
return False
json_reading = f.read()
f.close()
return json.loads(json_reading)
# Initialize the Intial State streamer
streamer = Streamer(bucket_name=BUCKET_NAME, bucket_key=BUCKET_KEY, access_key=IS_ACCESS_KEY)
# Loop through reading and streaming signal's value
while True:
try:
# Read motion value from IR Distance Interrupter
motionReading = get_reading(SENSOR_NAME,SIGNAL_NAME[0])
if (motionReading != False):
if (motionReading['status'] != 205):
motion = motionReading['msg']['approach']
if motion == 0:
print "No motion"
streamer.log("Motion?","No motion")
if motion == 1:
print "Motion detected"
streamer.log("Motion?","Motion detected")
else:
message = motionReading['msg']
print message
streamer.log("Error",str(message))
# Wait designated time between readings
time.sleep(60*MINUTES_BETWEEN_READS)
except TypeError:
print "Type Error"
pass
@awong1900
Copy link

The return json format have changed. Maybe need fix the code.

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