http://energy.eecs.umich.edu/wiki
This used to be the wiki home of research using TinyOS and epic motes. The code is in the SensorsResearch folder of the SVN repository on whereabouts.eecs.umich.edu. These pages walk through various parts of the code.
General Overview - This is a starting point to the epic based motes. It walks through setting up the TinyOS environment on Linux and gets you started with TinyOS applications.
-
-
Setup Blip - Configure Blip and install IPBasestation on a mote.
-
-
Use print - How to use the
print function in a tinyos app.
Blip 2.0 - How to setup and use Blip 2.0
-
-
-
Forwarders - These receive data from the BLIP driver and forward it on to Whereabouts
Clients - These use the UDPMotion data in various ways
motionDetector - Simple app prints motion sensor data from Whereabouts.
officeChecker - Notifies you when a person returns to their office.
computerSleeper - This goes over how the computerSleeper app works and how to build and use it.
gtalkUpdater - Sets your Google Talk status when you leave the office.
-
Tools - These run on a server and assist a client app
Supporters - These are apps that do not use the data from UDPMotion but collect and submit other data to Whereabouts that can be used in conjunction with UDPMotion.
keyboardWatcher - Sends a message to Whereabouts saying there is keyboard activity.
-
Aggregators - These collect data from UDPMotion and its supporters and synthesize it into an easier to use and more helpful message that it sends back to Whereabouts.
Presence - A simple message that contains whether or not there is someone in an office and sometimes even who.
Low power listening (LPL) turns the radio off when it is not in use in order to save battery life.
These tests will work on irene/hemera motes.
Schematics for some hardware can be found in the SVN repository:
$ svn co svn+ssh://<uniqname>@whereabouts.eecs.umich.edu/home/cvs/svnroot/trunk/SensorsProject/BoardDesigns
Use EAGLE to view the schematic and board files. Always open the schematic and board files together! (Eagle should ask you about this)
Sparkfun.com has three very helpful tutorials for getting started with Eagle. Keep in mind that they used an earlier version of Eagle and the shortcuts don’t quite line up correctly.
Change older clients over to the Presence aggregator.
test for a disconnect in connection to whereabouts and fix it
add mac to computerSleeper
different usernames based on mote id with hashmap
computer energy use monitoring
low power tinyos
finish hemera board
ability to send packet that associates a room and mote
dont do automatic 1 min refresh request when no activity
error handling mote2room
make clean and recompile
move collectors to own folder
update tinyos to svn
add the time of the last update from the motes to the website map information box
check to see if reading the sht11 still toggles the motion sensor
try using the new version of blip
measure power with new version of blip
get music school map setup
figure out why node 31’s light sensor doesn’t work
try using the epic id chip to set the id of the mote
document the server sent streaming api
script to do a lot of graphs and intervals
heatmap on website
update wiki with blip 2 stuff
get wiki from atul
create send packet on motion app again for irene
finish rohm bh17 tinyos driver
problems:
python abstract base class for generic listener sender (could be to send to mysql database, other db, whatever)
wireshark plugin
track # of retransmissions
Proxies - a username that would submit data for an actual user
Services - a way to register services with the server and allow users to customize their privacy policies to allow/disallow certain services.
//get privacy policy
try {
System.out.println("privacy policy:::");
String command = "GetPrivacyPolicy";
XMLDoc = new XMLDoc("<args/>");
EncapsulatedDoc response = client.sendCommand(command, argDoc);
if (response == null || response.getHeader("Status") == null || !response.getHeader("Status").equalsIgnoreCase("OK")) {
throw new Exception("Error getting privacy policy: " + response.getBody());
}
XMLDoc privpol = new XMLDoc(response.getBody());
System.out.println(privpol);
} catch (Exception e) {
System.out.println("error getting privacy policy: " + e.getMessage());
}