Sign Up - Xively

https://personal.xively.com/signup

Install software:

opkg update
opkg install python-openssl 
opkg install distribute 
easy_install xively-python
easy_install requests
nano /mnt/sda1/temp.py
#!/usr/bin/python
import os
import xively
import subprocess
import time
import datetime
import requests
import sys
#FEED_ID = "YOURFEEDID"
#API_KEY = "YOURAPIKEY"
# initialize api client
api = xively.XivelyAPIClient(API_KEY)
def read_temperature():
   temperature = sys.argv[1]
   return temperature
# function to return a datastream object. This either creates a new datastream,
# or returns an existing one
def get_datastream(feed):
  try:
    datastream = feed.datastreams.get("TemperatureSensor")
    return datastream
  except:
    datastream = feed.datastreams.create("TemperatureSensor", tags="temperature")
    return datastream
# main program entry point - runs continuously updating our datastream with the
# latest temperature reading
def run():
  feed = api.feeds.get(FEED_ID)
  datastream = get_datastream(feed)
  datastream.max_value = None
  datastream.min_value = None
  degreesCelcius = read_temperature()
  datastream.current_value = degreesCelcius
  datastream.at = datetime.datetime.utcnow()
  try:
      datastream.update()
  except requests.HTTPError as e:
      print "HTTPError({0}): {1}".format(e.errno, e.strerror)
run()
chmod 755 /mnt/sda1/temp.py

Testing:

/mnt/sda1/temp.py 80

ATmega32u4 code:

#include <Process.h>
void setup() {
  Bridge.begin(); // Initialize Bridge
}
void loop() {
  Process p;  // Create a process and call it "p"
  p.begin("/mnt/sda1/temp.py"); // Process that launch the "pythonsqlite3.py" command
  p.addParameter("90"); // Add the parameter to "Temp"
  p.run();      // Run the process and wait for its termination
  delay(10000);
}

Comments powered by CComment