Remote monitoring IoTHub device sample Added real SHTx sensor to get temperature and humidity Added new command to set temperature scale change Removed "mock" commands to set temperature and humidity values It's configured to work on FRDM-K64F board

Dependencies:   EthernetInterface NTPClient SHTx iothub_amqp_transport iothub_client mbed-rtos mbed proton-c-mbed serializer wolfSSL

Fork of remote_monitoring by Azure IoT

Committer:
ppatierno
Date:
Sun Nov 15 15:34:16 2015 +0000
Revision:
23:e37e4e321690
Parent:
20:ea66de0f1a06
Added real SHTx sensor to get temperature and humidity; Added new command to set temperature scale change; Removed "mock" commands to set temperature and humidity values

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AzureIoTClient 20:ea66de0f1a06 1 // Copyright (c) Microsoft. All rights reserved.
AzureIoTClient 20:ea66de0f1a06 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
AzureIoTClient 20:ea66de0f1a06 3
AzureIoTClient 20:ea66de0f1a06 4 #include <stdio.h>
AzureIoTClient 20:ea66de0f1a06 5 #include "EthernetInterface.h"
AzureIoTClient 20:ea66de0f1a06 6 #include "mbed/logging.h"
AzureIoTClient 20:ea66de0f1a06 7 #include "mbed/mbedtime.h"
AzureIoTClient 20:ea66de0f1a06 8 #include "remote_monitoring.h"
AzureIoTClient 20:ea66de0f1a06 9 #include "NTPClient.h"
AzureIoTClient 20:ea66de0f1a06 10
AzureIoTClient 20:ea66de0f1a06 11 int setupRealTime(void)
AzureIoTClient 20:ea66de0f1a06 12 {
AzureIoTClient 20:ea66de0f1a06 13 int result;
AzureIoTClient 20:ea66de0f1a06 14
AzureIoTClient 20:ea66de0f1a06 15 (void)printf("setupRealTime begin\r\n");
AzureIoTClient 20:ea66de0f1a06 16 if (EthernetInterface::connect())
AzureIoTClient 20:ea66de0f1a06 17 {
AzureIoTClient 20:ea66de0f1a06 18 (void)printf("Error initializing EthernetInterface.\r\n");
AzureIoTClient 20:ea66de0f1a06 19 result = __LINE__;
AzureIoTClient 20:ea66de0f1a06 20 }
AzureIoTClient 20:ea66de0f1a06 21 else
AzureIoTClient 20:ea66de0f1a06 22 {
AzureIoTClient 20:ea66de0f1a06 23 (void)printf("setupRealTime NTP begin\r\n");
AzureIoTClient 20:ea66de0f1a06 24 NTPClient ntp;
AzureIoTClient 20:ea66de0f1a06 25 if (ntp.setTime("0.pool.ntp.org") != 0)
AzureIoTClient 20:ea66de0f1a06 26 {
AzureIoTClient 20:ea66de0f1a06 27 (void)printf("Failed setting time.\r\n");
AzureIoTClient 20:ea66de0f1a06 28 result = __LINE__;
AzureIoTClient 20:ea66de0f1a06 29 }
AzureIoTClient 20:ea66de0f1a06 30 else
AzureIoTClient 20:ea66de0f1a06 31 {
AzureIoTClient 20:ea66de0f1a06 32 (void)printf("set time correctly!\r\n");
AzureIoTClient 20:ea66de0f1a06 33 result = 0;
AzureIoTClient 20:ea66de0f1a06 34 }
AzureIoTClient 20:ea66de0f1a06 35 (void)printf("setupRealTime NTP end\r\n");
AzureIoTClient 20:ea66de0f1a06 36 EthernetInterface::disconnect();
AzureIoTClient 20:ea66de0f1a06 37 }
AzureIoTClient 20:ea66de0f1a06 38 (void)printf("setupRealTime end\r\n");
AzureIoTClient 20:ea66de0f1a06 39
AzureIoTClient 20:ea66de0f1a06 40 return result;
AzureIoTClient 20:ea66de0f1a06 41 }
AzureIoTClient 20:ea66de0f1a06 42
AzureIoTClient 20:ea66de0f1a06 43 int main(void)
AzureIoTClient 20:ea66de0f1a06 44 {
AzureIoTClient 20:ea66de0f1a06 45 (void)printf("Initializing mbed specific things...\r\n");
AzureIoTClient 20:ea66de0f1a06 46
AzureIoTClient 20:ea66de0f1a06 47 /* These are needed in order to initialize the time provider for Proton-C */
AzureIoTClient 20:ea66de0f1a06 48 mbed_log_init();
AzureIoTClient 20:ea66de0f1a06 49 mbedtime_init();
AzureIoTClient 20:ea66de0f1a06 50
AzureIoTClient 20:ea66de0f1a06 51 if (EthernetInterface::init())
AzureIoTClient 20:ea66de0f1a06 52 {
AzureIoTClient 20:ea66de0f1a06 53 (void)printf("Error initializing EthernetInterface.\r\n");
AzureIoTClient 20:ea66de0f1a06 54 return -1;
AzureIoTClient 20:ea66de0f1a06 55 }
AzureIoTClient 20:ea66de0f1a06 56
AzureIoTClient 20:ea66de0f1a06 57 if (setupRealTime() != 0)
AzureIoTClient 20:ea66de0f1a06 58 {
AzureIoTClient 20:ea66de0f1a06 59 (void)printf("Failed setting up real time clock\r\n");
AzureIoTClient 20:ea66de0f1a06 60 return -1;
AzureIoTClient 20:ea66de0f1a06 61 }
AzureIoTClient 20:ea66de0f1a06 62
AzureIoTClient 20:ea66de0f1a06 63 if (EthernetInterface::connect())
AzureIoTClient 20:ea66de0f1a06 64 {
AzureIoTClient 20:ea66de0f1a06 65 (void)printf("Error connecting EthernetInterface.\r\n");
AzureIoTClient 20:ea66de0f1a06 66 return -1;
AzureIoTClient 20:ea66de0f1a06 67 }
AzureIoTClient 20:ea66de0f1a06 68
AzureIoTClient 20:ea66de0f1a06 69 remote_monitoring_run();
AzureIoTClient 20:ea66de0f1a06 70
AzureIoTClient 20:ea66de0f1a06 71 (void)EthernetInterface::disconnect();
AzureIoTClient 20:ea66de0f1a06 72
AzureIoTClient 20:ea66de0f1a06 73 return 0;
AzureIoTClient 20:ea66de0f1a06 74 }