#include #include #include "Credentials.h" #include #define dht_dpin A0 //no ; here. Set equal to channel sensor is on dht DHT; char token[] = "xxxxxxxxxxxxxxxxxxxxxx"; //@JoshCCA char msg[45]; char temp[30]; char hum[30]; int f = 32; char url[] = "arduino-tweet.appspot.com"; int hour = 3600000; char hey[] = "hey"; WiFlyClient client( url, 80 ); #define PIN_SCE 7 #define PIN_RESET 6 #define PIN_DC 5 #define PIN_SDIN 4 #define PIN_SCLK 3 #define LCD_C LOW #define LCD_D HIGH #define LCD_X 84 #define LCD_Y 48 static const byte ASCII[][5] = { { 0x00, 0x00, 0x00, 0x00, 0x00 } // 20 ,{ 0x00, 0x00, 0x5f, 0x00, 0x00 } // 21 ! ,{ 0x00, 0x07, 0x00, 0x07, 0x00 } // 22 " ,{ 0x14, 0x7f, 0x14, 0x7f, 0x14 } // 23 # ,{ 0x24, 0x2a, 0x7f, 0x2a, 0x12 } // 24 $ ,{ 0x23, 0x13, 0x08, 0x64, 0x62 } // 25 % ,{ 0x36, 0x49, 0x55, 0x22, 0x50 } // 26 & ,{ 0x00, 0x05, 0x03, 0x00, 0x00 } // 27 ' ,{ 0x00, 0x1c, 0x22, 0x41, 0x00 } // 28 ( ,{ 0x00, 0x41, 0x22, 0x1c, 0x00 } // 29 ) ,{ 0x14, 0x08, 0x3e, 0x08, 0x14 } // 2a * ,{ 0x08, 0x08, 0x3e, 0x08, 0x08 } // 2b + ,{ 0x00, 0x50, 0x30, 0x00, 0x00 } // 2c , ,{ 0x08, 0x08, 0x08, 0x08, 0x08 } // 2d - ,{ 0x00, 0x60, 0x60, 0x00, 0x00 } // 2e . ,{ 0x20, 0x10, 0x08, 0x04, 0x02 } // 2f / ,{ 0x3e, 0x51, 0x49, 0x45, 0x3e } // 30 0 ,{ 0x00, 0x42, 0x7f, 0x40, 0x00 } // 31 1 ,{ 0x42, 0x61, 0x51, 0x49, 0x46 } // 32 2 ,{ 0x21, 0x41, 0x45, 0x4b, 0x31 } // 33 3 ,{ 0x18, 0x14, 0x12, 0x7f, 0x10 } // 34 4 ,{ 0x27, 0x45, 0x45, 0x45, 0x39 } // 35 5 ,{ 0x3c, 0x4a, 0x49, 0x49, 0x30 } // 36 6 ,{ 0x01, 0x71, 0x09, 0x05, 0x03 } // 37 7 ,{ 0x36, 0x49, 0x49, 0x49, 0x36 } // 38 8 ,{ 0x06, 0x49, 0x49, 0x29, 0x1e } // 39 9 ,{ 0x00, 0x36, 0x36, 0x00, 0x00 } // 3a : ,{ 0x00, 0x56, 0x36, 0x00, 0x00 } // 3b ; ,{ 0x08, 0x14, 0x22, 0x41, 0x00 } // 3c < ,{ 0x14, 0x14, 0x14, 0x14, 0x14 } // 3d = ,{ 0x00, 0x41, 0x22, 0x14, 0x08 } // 3e > ,{ 0x02, 0x01, 0x51, 0x09, 0x06 } // 3f ? ,{ 0x32, 0x49, 0x79, 0x41, 0x3e } // 40 @ ,{ 0x7e, 0x11, 0x11, 0x11, 0x7e } // 41 A ,{ 0x7f, 0x49, 0x49, 0x49, 0x36 } // 42 B ,{ 0x3e, 0x41, 0x41, 0x41, 0x22 } // 43 C ,{ 0x7f, 0x41, 0x41, 0x22, 0x1c } // 44 D ,{ 0x7f, 0x49, 0x49, 0x49, 0x41 } // 45 E ,{ 0x7f, 0x09, 0x09, 0x09, 0x01 } // 46 F ,{ 0x3e, 0x41, 0x49, 0x49, 0x7a } // 47 G ,{ 0x7f, 0x08, 0x08, 0x08, 0x7f } // 48 H ,{ 0x00, 0x41, 0x7f, 0x41, 0x00 } // 49 I ,{ 0x20, 0x40, 0x41, 0x3f, 0x01 } // 4a J ,{ 0x7f, 0x08, 0x14, 0x22, 0x41 } // 4b K ,{ 0x7f, 0x40, 0x40, 0x40, 0x40 } // 4c L ,{ 0x7f, 0x02, 0x0c, 0x02, 0x7f } // 4d M ,{ 0x7f, 0x04, 0x08, 0x10, 0x7f } // 4e N ,{ 0x3e, 0x41, 0x41, 0x41, 0x3e } // 4f O ,{ 0x7f, 0x09, 0x09, 0x09, 0x06 } // 50 P ,{ 0x3e, 0x41, 0x51, 0x21, 0x5e } // 51 Q ,{ 0x7f, 0x09, 0x19, 0x29, 0x46 } // 52 R ,{ 0x46, 0x49, 0x49, 0x49, 0x31 } // 53 S ,{ 0x01, 0x01, 0x7f, 0x01, 0x01 } // 54 T ,{ 0x3f, 0x40, 0x40, 0x40, 0x3f } // 55 U ,{ 0x1f, 0x20, 0x40, 0x20, 0x1f } // 56 V ,{ 0x3f, 0x40, 0x38, 0x40, 0x3f } // 57 W ,{ 0x63, 0x14, 0x08, 0x14, 0x63 } // 58 X ,{ 0x07, 0x08, 0x70, 0x08, 0x07 } // 59 Y ,{ 0x61, 0x51, 0x49, 0x45, 0x43 } // 5a Z ,{ 0x00, 0x7f, 0x41, 0x41, 0x00 } // 5b [ ,{ 0x02, 0x04, 0x08, 0x10, 0x20 } // 5c ¥ ,{ 0x00, 0x41, 0x41, 0x7f, 0x00 } // 5d ] ,{ 0x04, 0x02, 0x01, 0x02, 0x04 } // 5e ^ ,{ 0x40, 0x40, 0x40, 0x40, 0x40 } // 5f _ ,{ 0x00, 0x01, 0x02, 0x04, 0x00 } // 60 ` ,{ 0x20, 0x54, 0x54, 0x54, 0x78 } // 61 a ,{ 0x7f, 0x48, 0x44, 0x44, 0x38 } // 62 b ,{ 0x38, 0x44, 0x44, 0x44, 0x20 } // 63 c ,{ 0x38, 0x44, 0x44, 0x48, 0x7f } // 64 d ,{ 0x38, 0x54, 0x54, 0x54, 0x18 } // 65 e ,{ 0x08, 0x7e, 0x09, 0x01, 0x02 } // 66 f ,{ 0x0c, 0x52, 0x52, 0x52, 0x3e } // 67 g ,{ 0x7f, 0x08, 0x04, 0x04, 0x78 } // 68 h ,{ 0x00, 0x44, 0x7d, 0x40, 0x00 } // 69 i ,{ 0x20, 0x40, 0x44, 0x3d, 0x00 } // 6a j ,{ 0x7f, 0x10, 0x28, 0x44, 0x00 } // 6b k ,{ 0x00, 0x41, 0x7f, 0x40, 0x00 } // 6c l ,{ 0x7c, 0x04, 0x18, 0x04, 0x78 } // 6d m ,{ 0x7c, 0x08, 0x04, 0x04, 0x78 } // 6e n ,{ 0x38, 0x44, 0x44, 0x44, 0x38 } // 6f o ,{ 0x7c, 0x14, 0x14, 0x14, 0x08 } // 70 p ,{ 0x08, 0x14, 0x14, 0x18, 0x7c } // 71 q ,{ 0x7c, 0x08, 0x04, 0x04, 0x08 } // 72 r ,{ 0x48, 0x54, 0x54, 0x54, 0x20 } // 73 s ,{ 0x04, 0x3f, 0x44, 0x40, 0x20 } // 74 t ,{ 0x3c, 0x40, 0x40, 0x20, 0x7c } // 75 u ,{ 0x1c, 0x20, 0x40, 0x20, 0x1c } // 76 v ,{ 0x3c, 0x40, 0x30, 0x40, 0x3c } // 77 w ,{ 0x44, 0x28, 0x10, 0x28, 0x44 } // 78 x ,{ 0x0c, 0x50, 0x50, 0x50, 0x3c } // 79 y ,{ 0x44, 0x64, 0x54, 0x4c, 0x44 } // 7a z ,{ 0x00, 0x08, 0x36, 0x41, 0x00 } // 7b { ,{ 0x00, 0x00, 0x7f, 0x00, 0x00 } // 7c | ,{ 0x00, 0x41, 0x36, 0x08, 0x00 } // 7d } ,{ 0x10, 0x08, 0x08, 0x10, 0x08 } // 7e ← ,{ 0x78, 0x46, 0x41, 0x46, 0x78 } // 7f → }; void LcdCharacter(char character) { LcdWrite(LCD_D, 0x00); for (int index = 0; index < 5; index++) { LcdWrite(LCD_D, ASCII[character - 0x20][index]); } LcdWrite(LCD_D, 0x00); } void LcdClear(void) { for (int index = 0; index < LCD_X * LCD_Y / 8; index++) { LcdWrite(LCD_D, 0x00); } } void LcdInitialise(void) { pinMode(PIN_SCE, OUTPUT); pinMode(PIN_RESET, OUTPUT); pinMode(PIN_DC, OUTPUT); pinMode(PIN_SDIN, OUTPUT); pinMode(PIN_SCLK, OUTPUT); digitalWrite(PIN_RESET, LOW); digitalWrite(PIN_RESET, HIGH); LcdWrite(LCD_C, 0x21 ); // LCD Extended Commands. LcdWrite(LCD_C, 0xB1 ); // Set LCD Vop (Contrast). LcdWrite(LCD_C, 0x04 ); // Set Temp coefficent. //0x04 LcdWrite(LCD_C, 0x14 ); // LCD bias mode 1:48. //0x13 LcdWrite(LCD_C, 0x0C ); // LCD in normal mode. LcdWrite(LCD_C, 0x20 ); LcdWrite(LCD_C, 0x0C ); } void LcdString(char *characters) { while (*characters) { LcdCharacter(*characters++); } } void LcdWrite(byte dc, byte data) { digitalWrite(PIN_DC, dc); digitalWrite(PIN_SCE, LOW); shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data); digitalWrite(PIN_SCE, HIGH); } void setup() { Serial.begin(9600); WiFly.begin(); if (WiFly.join(ssid)) { Serial.print("Associated with "); Serial.println(ssid); } else { Serial.println("Association failed."); while (0) { // Hang on failure. } } } void loop() { DHT.read11(dht_dpin); DHT.temperature = DHT.temperature + f; //converts temperature to fahrenheit Serial.print("Current humidity = "); Serial.print(DHT.humidity); Serial.print("% "); Serial.print("temperature = "); Serial.print(DHT.temperature); Serial.println("F"); dtostrf(DHT.humidity, 0, 2, hum); dtostrf(DHT.temperature, 0, 2, temp); LcdInitialise(); LcdClear(); LcdString(hum); LcdString(" "); LcdString(temp); Serial.print("connecting to "); Serial.println( url); String humidity(hum); String startOfMsg("Humidity: " + humidity); String temperature(temp); String endOfMsg("Temperature: " + temperature); String clock(millis()); //clock time to differentiate between identical hum and temp values String fullMsg( startOfMsg + "%" + " " + endOfMsg + "F" + " " + "(" + "#" + clock + ")"); for ( int i = 0; i < sizeof( msg ); i++ ) { msg[i] = '\0'; } fullMsg.toCharArray( msg, fullMsg.length() + 1 ); if (client.connect()) { Serial.println("connected"); client.println("POST http://arduino-tweet.appspot.com/update HTTP/1.0"); client.print("Content-Length: "); client.println(strlen(msg)+strlen(token)+14); client.println(); client.print("token="); client.print(token); client.print("&status="); client.println(msg); Serial.println(msg); Serial.println(strlen(msg)); } else { Serial.println("connection failed"); } if ( client.available()) { char c = client.read(); Serial.print(c); } if (!client.connected()) { Serial.println(); Serial.println("disconnecting."); Serial.println(strlen(msg)); client.stop(); } delay(600000); }