Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetNetIf TextLCD mbed
main.cpp
00001 /** 00002 * XBeeBeispiel 00003 * Eine kleine Testanwendung die von einem Arduino die Werte des SHT15 per xbee empf�ngt 00004 * die daten werden im serielle AT Modus �bertragen 00005 * Anschlie�end werden die Werte in Float convertiert und gespeichert 00006 * Autor: Torsten Dillenburg 00007 * erstellt: 11.05.2011 00008 */ 00009 00010 #include "mbed.h" 00011 #include "TextLCD.h" 00012 #include "PachubeClient.h" 00013 #include "EthernetNetIf.h" 00014 #include "HTTPClient.h" 00015 00016 #define API_KEY "YOUR_API_Key" 00017 #define FEED_ID YOUR_FEED_ID 00018 #define STREAM_ID "YOUR_STREAM_ID" 00019 00020 Serial xbee1(p28, p27); //Serielles Objekt f�r den XBEE 00021 TextLCD lcd(p26, p25, p24, p23, p22, p21); // rs, e, d4-d7 00022 PachubeClient pachube("API_KEY"); 00023 EthernetNetIf eth; 00024 00025 DigitalOut rst1(p11); //Digital reset f�r den XBee, 200ns zum reset 00026 00027 DigitalOut myled(LED3);//Debug �ber Led 3 und 4 am mbed 00028 DigitalOut myled2(LED4); 00029 00030 Serial pc(USBTX, USBRX);//serial Schnittstelle �ber den USB port zum computer 00031 00032 char v_char_temp[5]; // Buffer f�r die Seriellen werte 00033 int stelle; 00034 double v_messwert[3]; 00035 bool debug = true; 00036 bool lcd_update = false; 00037 Ticker pachubeUpd; 00038 Ticker lcdUpd; 00039 00040 void send_update(void) { 00041 double tx1, rx1; 00042 if (debug) pc.printf("1."); 00043 if (1) 00044 { 00045 if (debug) pc.printf("Sending to Pachube\n"); 00046 const int feed_id = FEED_ID; 00047 const std::string stream_id = STREAM_ID; 00048 char val1_text[32]; 00049 sprintf(val1_text, "%2.2f,%2.2f", v_messwert[0],v_messwert[1]); 00050 if (debug) pc.printf("%c",val1_text); 00051 pachube.PutCsv("25387", val1_text); 00052 if (debug) printf("Pachube result / response : %d / %d\n", 00053 pachube.Result(), pachube.Response()); 00054 00055 wait(10); 00056 } 00057 } 00058 00059 void lcdupdate(void) 00060 { 00061 lcd_update=false; 00062 lcd.cls(); 00063 // 1234567890123456 00064 lcd.printf("Aussen: T H\n"); 00065 lcd.printf(" %2.2f %2.2f",v_messwert[0],v_messwert[1]); 00066 } 00067 00068 void setup(void) 00069 { 00070 eth.setup(); 00071 pachubeUpd.attach(&send_update,900); 00072 lcdUpd.attach(&lcdupdate,30); 00073 rst1 = 0; //Set reset pin to 0 00074 myled = 0;//Set LED3 to 0 00075 myled2= 0;//Set LED4 to 0 00076 wait_ms(1);//Wait at least one millisecond 00077 rst1 = 1;//Set reset pin to 1 00078 wait_ms(1);//Wait another millisecond 00079 stelle =0; 00080 } 00081 00082 void decode(char p_zeichen) 00083 { 00084 v_char_temp[stelle]=p_zeichen; 00085 if (debug) pc.putc(v_char_temp[stelle]); 00086 switch(v_char_temp[stelle]) { 00087 case '0': stelle++; break; 00088 case '1': stelle++; break; 00089 case '2': stelle++; break; 00090 case '3': stelle++; break; 00091 case '4': stelle++; break; 00092 case '5': stelle++; break; 00093 case '6': stelle++; break; 00094 case '7': stelle++; break; 00095 case '8': stelle++; break; 00096 case '9': stelle++; break; 00097 case '.': stelle++; break; 00098 case 'T': v_messwert[0] = atof(v_char_temp); lcd_update = true; break; //temp 00099 case 'H': v_messwert[1] = atof(v_char_temp); lcd_update = true; break; //hum 00100 case 'D': v_messwert[2] = atof(v_char_temp); lcd_update = true; break; //dew 00101 default : for(int i=stelle; i>=0; i--) {v_char_temp[i]='0';} stelle=0;//puffer l�schen 00102 } 00103 } 00104 00105 int main() { 00106 setup(); 00107 while (1) {//Neverending Loop 00108 if (xbee1.readable()) {//Checking for serial comminication 00109 decode(xbee1.getc()); 00110 } 00111 } 00112 }
Generated on Wed Jul 27 2022 06:49:36 by
1.7.2