#include #include #include #include #include #include #include #define ADDRESS 0x68 // Address of TPA81 #define SOFTREG 0x00 // Byte for software version #define AMBIANT 0x01 // Byte for ambiant temperature #define WIDTH 36 #define ANG 180/WIDTH Servo myservo; int pos = 0; int inc = 1; int temperature[WIDTH][8]; YunServer server; String startString; int servo_active=1; int servo_speed=100; int done=0; int max_temperature=50; String mail_address="dexmac221@gmail.com"; int temp_alarm=0; void write_config(){ File settings = FileSystem.open("/root/config.ini", FILE_WRITE); if(settings!=NULL) { settings.print(mail_address); settings.print("\n"); settings.print(max_temperature); settings.print("\n"); settings.print(servo_active); settings.print("\n"); settings.print(servo_speed); settings.print("\n"); settings.close(); } } void setup() { Wire.begin(); delay(100); myservo.attach(5); // attaches the servo on pin 5 to the servo object myservo.write(pos*10); pinMode(13, OUTPUT); digitalWrite(13, LOW); Bridge.begin(); digitalWrite(13, HIGH); server.listenOnLocalhost(); server.begin(); for(int i=0;imax_temperature){ Process p; String cmd = "echo 'Alarm' | mutt -s 'Temperature Alarm : "+String(temperature[pos][i])+"C' -- "+mail_address; p.runShellCommand(cmd); } } if(servo_active){ myservo.write(ANG*(pos+1)); } pos++; if(pos==WIDTH){ pos=0; if(servo_active){ myservo.write(0); delay(1000); } } delay(servo_speed); } byte getData(byte reg){ // Function to receive one byte of data from TPA81 Wire.beginTransmission(ADDRESS); // Begin communication with TPA81 Wire.write(reg); // Send reg to TPA81 Wire.endTransmission(); Wire.requestFrom(ADDRESS, 1); // Request 1 byte while(Wire.available() < 1); // Wait for byte to arrive byte data = Wire.read(); // Get byte return(data); // return byte }