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: EthernetInterface TMP175 mbed-rtos mbed
Fork of 2-07-04-Uebung by
main.cpp@11:4822e060bf3d, 2015-06-18 (annotated)
- Committer:
- stefan1691
- Date:
- Thu Jun 18 06:23:06 2015 +0000
- Revision:
- 11:4822e060bf3d
- Parent:
- 8:2ecceb32e68b
- Child:
- 12:61e1c14db87f
Array von 0 - 3 statt 1 bis 4
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
stefan1691 | 8:2ecceb32e68b | 1 | /** 7.4 Sensordaten schreiben via HTTP POST |
stefan1691 | 5:13c63366d788 | 2 | */ |
WiredHome | 0:fb5060c39dd1 | 3 | #include "mbed.h" |
WiredHome | 0:fb5060c39dd1 | 4 | #include "HTTPClient.h" |
marcel1691 | 1:2e29a33cd918 | 5 | #include "HTTPText.h" |
WiredHome | 0:fb5060c39dd1 | 6 | #include "EthernetInterface.h" |
stefan1691 | 8:2ecceb32e68b | 7 | #include "TMP175.h" |
WiredHome | 0:fb5060c39dd1 | 8 | |
WiredHome | 0:fb5060c39dd1 | 9 | EthernetInterface eth; |
stefan1691 | 3:aad64a4b6ff6 | 10 | // HTTPClient Hilfsklasse |
WiredHome | 0:fb5060c39dd1 | 11 | HTTPClient http; |
stefan1691 | 3:aad64a4b6ff6 | 12 | // I/O Buffer |
stefan1691 | 5:13c63366d788 | 13 | char str[512]; |
WiredHome | 0:fb5060c39dd1 | 14 | |
stefan1691 | 8:2ecceb32e68b | 15 | // Sensoren |
stefan1691 | 8:2ecceb32e68b | 16 | AnalogIn poti ( A0 ); |
stefan1691 | 8:2ecceb32e68b | 17 | AnalogIn light ( A1 ); |
stefan1691 | 8:2ecceb32e68b | 18 | AnalogIn hall ( A2 ); |
stefan1691 | 8:2ecceb32e68b | 19 | TMP175 temp ( D14, D15 ); |
stefan1691 | 8:2ecceb32e68b | 20 | // Separater Buffer um die Sensorwerte als String abzustellen |
stefan1691 | 8:2ecceb32e68b | 21 | char fa[4] [12]; |
stefan1691 | 8:2ecceb32e68b | 22 | |
WiredHome | 0:fb5060c39dd1 | 23 | DigitalOut myled(LED1); |
WiredHome | 0:fb5060c39dd1 | 24 | |
stefan1691 | 8:2ecceb32e68b | 25 | /** Float nach String wandeln |
stefan1691 | 8:2ecceb32e68b | 26 | * @param pos Position in I/O Buffer |
stefan1691 | 8:2ecceb32e68b | 27 | * @param value Wert |
stefan1691 | 8:2ecceb32e68b | 28 | * @return Pointer auf I/O Buffer |
stefan1691 | 8:2ecceb32e68b | 29 | */ |
stefan1691 | 8:2ecceb32e68b | 30 | char* ftoa( int pos, float value ) |
stefan1691 | 8:2ecceb32e68b | 31 | { |
stefan1691 | 8:2ecceb32e68b | 32 | sprintf( fa[pos], "%4.4f", value ); |
stefan1691 | 8:2ecceb32e68b | 33 | return ( fa[pos] ); |
stefan1691 | 8:2ecceb32e68b | 34 | } |
stefan1691 | 8:2ecceb32e68b | 35 | |
marcel1691 | 1:2e29a33cd918 | 36 | int main() |
marcel1691 | 1:2e29a33cd918 | 37 | { |
stefan1691 | 5:13c63366d788 | 38 | printf("HTTP Client - POST\n"); |
WiredHome | 0:fb5060c39dd1 | 39 | eth.init(); |
WiredHome | 0:fb5060c39dd1 | 40 | eth.connect(); |
stefan1691 | 8:2ecceb32e68b | 41 | |
stefan1691 | 8:2ecceb32e68b | 42 | temp.vSetConfigurationTMP175( SHUTDOWN_MODE_OFF | COMPARATOR_MODE | POLARITY_0 |FAULT_QUEUE_6 | RESOLUTION_12, 0x48 ); |
stefan1691 | 8:2ecceb32e68b | 43 | temp.vSetTemperatureLowTMP175( 0.0 ); |
stefan1691 | 8:2ecceb32e68b | 44 | temp.vSetTemperatureHighTMP175( 60.0 ); |
WiredHome | 0:fb5060c39dd1 | 45 | |
marcel1691 | 1:2e29a33cd918 | 46 | while(1) |
marcel1691 | 1:2e29a33cd918 | 47 | { |
WiredHome | 0:fb5060c39dd1 | 48 | myled = 1; |
stefan1691 | 5:13c63366d788 | 49 | |
stefan1691 | 5:13c63366d788 | 50 | // Hilfsklasse um die Response vom Server zu formatieren |
stefan1691 | 5:13c63366d788 | 51 | HTTPText inText(str, 512); |
stefan1691 | 5:13c63366d788 | 52 | |
stefan1691 | 5:13c63366d788 | 53 | // MAP (Argument=Wert) |
stefan1691 | 5:13c63366d788 | 54 | HTTPMap map; |
stefan1691 | 11:4822e060bf3d | 55 | map.put( "poti", ftoa( 0, poti.read() ) ); |
stefan1691 | 11:4822e060bf3d | 56 | map.put( "light", ftoa(1, light.read() ) ); |
stefan1691 | 11:4822e060bf3d | 57 | map.put( "hall", ftoa( 2, hall.read() ) ); |
stefan1691 | 11:4822e060bf3d | 58 | map.put( "temp", ftoa( 3, temp.fReadTemperatureTMP175() ) ); |
stefan1691 | 5:13c63366d788 | 59 | |
stefan1691 | 6:48a4698a3416 | 60 | // lokale Variante mit CGI-Script auf Raspberry Pi. Wenn nicht Funktioniert: raspi2x durch IP-Adresse ersetzen |
stefan1691 | 8:2ecceb32e68b | 61 | int ret = http.post("http://raspi2x/cgi-bin/rest", map, &inText); |
stefan1691 | 5:13c63366d788 | 62 | if ( ! ret ) |
marcel1691 | 1:2e29a33cd918 | 63 | { |
stefan1691 | 5:13c63366d788 | 64 | printf("Executed POST successfully - read %d characters\n", strlen(str)); |
stefan1691 | 5:13c63366d788 | 65 | printf("Result: %s\n", str); |
stefan1691 | 5:13c63366d788 | 66 | } |
stefan1691 | 5:13c63366d788 | 67 | else |
stefan1691 | 5:13c63366d788 | 68 | { |
stefan1691 | 5:13c63366d788 | 69 | printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode()); |
WiredHome | 0:fb5060c39dd1 | 70 | } |
marcel1691 | 1:2e29a33cd918 | 71 | |
WiredHome | 0:fb5060c39dd1 | 72 | myled = 0; |
marcel1691 | 1:2e29a33cd918 | 73 | |
WiredHome | 0:fb5060c39dd1 | 74 | wait(10); |
WiredHome | 0:fb5060c39dd1 | 75 | } |
stefan1691 | 5:13c63366d788 | 76 | //eth.disconnect(); |
stefan1691 | 5:13c63366d788 | 77 | } |