![](/media/cache/group/ep_srxDLMd.webp.50x50_q85.jpg)
10.2 Kombiniert die Übung 9.3 Licht zeitgesteuert Ein- und Ausschalten mit dem Sunset Sunrise Dienst, damit bei Sonnenuntergang das Licht ein und bei Sonnenaufgang das Licht ausgeschaltet wird
Dependencies: EthernetInterface MbedJSONValue NTPClient mbed-rtos mbed
Fork of SunriseSunset by
Revision 6:4a7fd17737bc, committed 2015-05-27
- Comitter:
- stefan1691
- Date:
- Wed May 27 17:47:29 2015 +0000
- Parent:
- 5:cfe277d00d6b
- Commit message:
- 10.2 Kombiniert die ?bung 9.3 Licht zeitgesteuert Ein- und Ausschalten mit dem Sunset Sunrise Dienst, ; damit bei Sonnenuntergang das Licht ein und bei Sonnenaufgang das Licht ausgeschaltet wird
Changed in this revision
NTPClient.lib | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r cfe277d00d6b -r 4a7fd17737bc NTPClient.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/NTPClient.lib Wed May 27 17:47:29 2015 +0000 @@ -0,0 +1,1 @@ +https://developer.mbed.org/users/donatien/code/NTPClient/#881559865a93
diff -r cfe277d00d6b -r 4a7fd17737bc main.cpp --- a/main.cpp Wed May 27 16:08:21 2015 +0000 +++ b/main.cpp Wed May 27 17:47:29 2015 +0000 @@ -1,4 +1,5 @@ -/** Beispiel Abfrage Cloud Dienst Sunrise / Sunset +/** 10.2 Kombiniert die Übung 9.3 Licht zeitgesteuert Ein- und Ausschalten mit dem Sunset Sunrise Dienst, + damit bei Sonnenuntergang das Licht ein und bei Sonnenaufgang das Licht ausgeschaltet wird */ #include "mbed.h" #include "HTTPClient.h" @@ -6,20 +7,36 @@ #include "EthernetInterface.h" #include "MbedJSONValue.h" #include <string> +#include "NTPClient.h" EthernetInterface eth; +NTPClient ntp; // HTTPClient Hilfsklasse HTTPClient http; // I/O Buffer char message[6000]; DigitalOut myled(LED1); +// Licht +DigitalOut led( D10 ); int main() { - printf("\tSunriseSunset Cloud Dienst\n"); + printf("\tSunriseSunset Cloud Dienst - Licht ein-/ausschalten\n"); eth.init(); eth.connect(); + + // Zeit vom Time Server holen + printf("Trying to update time...\r\n"); + if (ntp.setTime("1.pool.ntp.org") == 0) + { + printf("Set time successfully\r\n"); + time_t ctTime; + ctTime = time(NULL); + printf("Time is set to (UTC): %s\r\n", ctime(&ctTime)); + } + else + printf("Error\r\n"); while(1) { @@ -42,7 +59,18 @@ sscanf( sunrise.c_str(), "%d:%d:%d AM", &rh, &rm, &rs ); sscanf( sunset .c_str(), "%d:%d:%d PM", &sh, &sm, &ss ); - printf( "Sonnenauf- %02d.%02d.%02d und untergang %02d.%02d.%02d\n", rh+2, rm, rs, sh+2+12, sm, ss ); + printf( "Sonnenauf- %02d.%02d.%02d und untergang %02d.%02d.%02d\n", rh+2, rm, rs, sh+2+12, sm, ss ); + + // Aktuelle Zeit + time_t seconds = time(NULL); + struct tm * now = localtime( & seconds ); + printf( "%d.%d.%d %2d:%2d:%2d\n", now->tm_mday, now->tm_mon + 1, now->tm_year + 1900, now->tm_hour, now->tm_min, now->tm_sec ); + + // Einfache Variante - nur Stunden abfragen + if ( now->tm_hour < rh || now->tm_hour > (sh+12) ) + led = 1; + else + led = 0; } else printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());