HAHA! commit

Initial commit
This commit is contained in:
dviid
2013-11-30 21:22:19 +01:00
commit 2e9b87dab6
26 changed files with 4842 additions and 0 deletions
@@ -0,0 +1,123 @@
#include <WaspXBee802.h>
#include <WaspFrame.h> // CRITICAL INFRASTRUCTURE Frames defined in WaspFrame.h -- github --- XXXX
/*
CRITICAL INFRASTRUCTURE {values}:
SENSOR_CI0 <int>
SENSOR_CI1 <int>
SENSOR_CI2 <int>
SENSOR_CI3 <int>
SENSOR_CI4 <int>
*/
#define SENSOR_PIN ANALOG1 // PIN for the ADC reading
// declare ADC reading variable
int delay_reading = 500;
int reading = 0;
// declare packet
packetXBee* packet;
// mac address of this mote
char macHigh[10];
char macLow[11];
void setup() {
// blink
Utils.setLED(LED0, LED_ON);
Utils.setLED(LED1, LED_ON);
delay(2000);
Utils.setLED(LED0, LED_OFF);
Utils.setLED(LED1, LED_OFF);
// setup radio + MAC
xbee802.ON();
delay(1000);
xbee802.flush();
// Get the XBee MAC address
int counter = 0;
while((xbee802.getOwnMac()!=0) && (counter<12))
{
xbee802.getOwnMac();
counter++;
}
// convert mac address from array to string
Utils.hex2str(xbee802.sourceMacHigh, macHigh, 4);
Utils.hex2str(xbee802.sourceMacLow, macLow, 4);
// DEBUG: print MAC to console
USB.ON();
USB.print("mac address:");
USB.print(macHigh);
USB.println(macLow);
USB.OFF();
//B.0 set mote id (16-Byte max)
//frame.setID("CRITICAL-0");
}
void loop() {
// A. ADC READING
//A.1 PWR ON SENSOR
PWR.setSensorPower(SENS_3V3,SENS_ON);
Utils.setLED(LED1, LED_ON);
//A.2 READ VALUE
reading = analogRead(SENSOR_PIN);
//A.3 PWR OFF SENSOR
PWR.setSensorPower(SENS_3V3,SENS_OFF);
// B. BROADCAST PACKET
//B.1 create ASCII frame
frame.createFrame(ASCII,"CRITICAL-0");
//B.1.1 add CRITICAL INFRASTRUCTURE sensor descriptors
frame.addSensor(SENSOR_MAC, macLow); // MAC
frame.addSensor(SENSOR_CI0, reading); // CI0 <------------------------- IMPORTANT! (see nomenclature in the header of this file)
frame.addSensor(SENSOR_BAT, PWR.getBatteryLevel()); // Battery level
//DEBUG: print frame to console
frame.showFrame();
//B.2 create packet
packet=(packetXBee*) calloc(1,sizeof(packetXBee)); // memory allocation
packet->mode=BROADCAST; // set Broadcast mode
//B.3 send packet
// radio ON
xbee802.ON();
// sets Destination parameters [000000000000FFFF -> Broadcast]
xbee802.setDestinationParams(packet, "000000000000FFFF", frame.buffer, frame.length);
// send
xbee802.sendXBee(packet);
//B.4 check status (DEBUG)
if(xbee802.error_TX == 0) {
USB.println(F("TX OK"));
} else {
USB.println(F("TX ERROR"));
}
//B.5 free memory
free(packet);
packet = NULL;
//C. Delay
delay(1000);
}
@@ -0,0 +1,58 @@
#define SENSOR_PIN ANALOG1
int delay_reading = 500;
int reading = 0;
char reading_buff[20];
// define folder and file to store data
char* logfile="log.csv";
void setup() {
USB.ON();
SD.ON();
//SD.mkdir(path);
// delete file
if(SD.del(logfile)) {
USB.println(F("file deleted"));
} else {
USB.println(F("file NOT deleted"));
}
// create file
if(SD.create(logfile)) {
USB.println(F("file created"));
} else {
USB.println(F("file NOT created"));
}
}
void loop() {
//PWR ON SENSOR
PWR.setSensorPower(SENS_3V3,SENS_ON);
Utils.setLED(LED1, LED_ON);
//READ VALUE
reading = analogRead(SENSOR_PIN);
delay(delay_reading / 2);
//PWR OFF SENSOR
Utils.setLED(LED1, LED_OFF);
PWR.setSensorPower(SENS_3V3,SENS_OFF);
//WRITE DATA TO FILE (may need some convertion here...)
Utils.long2array(reading, reading_buff);
SD.appendln(logfile, reading_buff);
USB.println(reading_buff);
delay(delay_reading / 2);
}
@@ -0,0 +1,58 @@
#include <WaspSensorPrototyping_v20.h>
int delay_reading = 500;
char reading_buff[20];
// define folder and file to store data
char* logfile="log.csv";
void setup() {
USB.ON();
SD.ON();
// delete file
if(SD.del(logfile)) {
USB.println(F("file deleted"));
} else {
USB.println(F("file NOT deleted"));
}
// create file
if(SD.create(logfile)) {
USB.println(F("file created"));
} else {
USB.println(F("file NOT created"));
}
delay(100);
// Sensor board
SensorProtov20.ON();
// RTC
RTC.ON();
}
void loop() {
Utils.setLED(LED1, LED_ON);
float adc = SensorProtov20.readADC();
Utils.float2String(adc, reading_buff, 6);
delay(delay_reading / 2);
Utils.setLED(LED1, LED_OFF);
SD.appendln(logfile, reading_buff);
USB.println(reading_buff);
delay(delay_reading / 2);
}
@@ -0,0 +1,53 @@
#define SENSOR_PIN ANALOG2
int delay_reading = 100;
char reading_buff[20];
// define folder and file to store data
char* logfile="log.csv";
void setup() {
USB.ON();
SD.ON();
// delete file
if(SD.del(logfile)) {
USB.println(F("file deleted"));
} else {
USB.println(F("file NOT deleted"));
}
// create file
if(SD.create(logfile)) {
USB.println(F("file created"));
} else {
USB.println(F("file NOT created"));
}
// accelerometer
ACC.ON();
}
void loop() {
Utils.setLED(LED1, LED_ON);
sprintf(reading_buff, "%d,%d,%d", ACC.getX(), ACC.getY(), ACC.getZ());
delay(delay_reading / 2);
//PWR OFF SENSOR
Utils.setLED(LED1, LED_OFF);
SD.appendln(logfile, reading_buff);
USB.println(reading_buff);
delay(delay_reading / 2);
}
@@ -0,0 +1,55 @@
#define SENSOR_PIN ANALOG2
int delay_reading = 100;
char reading_buff[20];
// define folder and file to store data
char* logfile="log.csv";
void setup() {
USB.ON();
SD.ON();
// delete file
if(SD.del(logfile)) {
USB.println(F("file deleted"));
} else {
USB.println(F("file NOT deleted"));
}
// create file
if(SD.create(logfile)) {
USB.println(F("file created"));
} else {
USB.println(F("file NOT created"));
}
// RTC
RTC.ON();
}
void loop() {
Utils.setLED(LED1, LED_ON);
float temp = RTC.getTemperature();
Utils.float2String(temp, reading_buff, 3);
delay(delay_reading / 2);
//PWR OFF SENSOR
Utils.setLED(LED1, LED_OFF);
SD.appendln(logfile, reading_buff);
USB.println(reading_buff);
delay(delay_reading / 2);
}