test
Dependencies: MbedJSONValue DISCO_L475VG_IOT01A_wifi mbed-http
Diff: main.cpp
- Revision:
- 0:065178c282bd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Tue Jan 01 11:48:52 2019 +0000
@@ -0,0 +1,102 @@
+#include "mbed.h"
+#include "wifi.h"
+#include "US100.h"
+#include "NetworkInterface.h"
+#include "ISM43362Interface.h"
+#include "http_request.h"
+#include "MbedJSONValue.h"
+#include <string>
+
+/* Private defines -----------------------------------------------------------*/
+#define WIFI_WRITE_TIMEOUT 10000
+#define WIFI_READ_TIMEOUT 10000
+#define CONNECTION_TRIAL_MAX 10
+
+/* Private typedef------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+Serial pc(SERIAL_TX, SERIAL_RX);
+ISM43362Interface wifi(MBED_CONF_APP_WIFI_SPI_MOSI, MBED_CONF_APP_WIFI_SPI_MISO, MBED_CONF_APP_WIFI_SPI_SCLK, MBED_CONF_APP_WIFI_SPI_NSS, MBED_CONF_APP_WIFI_RESET, MBED_CONF_APP_WIFI_DATAREADY, MBED_CONF_APP_WIFI_WAKEUP, false);
+uint8_t MAC_Addr[6];
+uint8_t IP_Addr[4];
+
+// RoLa
+DigitalOut M0(PD_14);
+DigitalOut M1(PB_0);
+Serial uart(PA_0, PA_1);//TX4,RX4
+string inputdata;
+double cnv;
+
+// Interval(second) to do tasking &sensing
+const int INTERVAL = 1;
+// Distance sensor
+US100 sensor(PC_3, PC_4);
+// Select network interface
+NetworkInterface* network = &wifi;
+
+int main()
+{
+
+ pc.baud(9600);
+
+ printf("\n");
+ printf("************************************************************\n");
+ printf("*** IoT Final Project - TSENG, I-SHENG ***\n");
+ printf("************************************************************\n");
+
+ /*Initialize WIFI module */
+ if(WIFI_Init() == WIFI_STATUS_OK) {
+ printf("> WIFI Module Initialized.\n");
+ if(WIFI_GetMAC_Address(MAC_Addr) == WIFI_STATUS_OK) {
+ printf("> es-wifi module MAC Address : %X:%X:%X:%X:%X:%X\n",
+ MAC_Addr[0],
+ MAC_Addr[1],
+ MAC_Addr[2],
+ MAC_Addr[3],
+ MAC_Addr[4],
+ MAC_Addr[5]);
+ } else {
+ printf("> ERROR : CANNOT get MAC address\n");
+ }
+
+ if( WIFI_Connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, WIFI_ECN_WPA2_PSK) == WIFI_STATUS_OK) {
+ printf("> es-wifi module connected \n");
+ if(WIFI_GetIP_Address(IP_Addr) == WIFI_STATUS_OK) {
+ printf("> es-wifi module got IP Address : %d.%d.%d.%d\n",
+ IP_Addr[0],
+ IP_Addr[1],
+ IP_Addr[2],
+ IP_Addr[3]);
+ } else {
+ printf("> ERROR : es-wifi module CANNOT get IP address\n");
+ }
+ } else {
+ printf("> ERROR : es-wifi module NOT connected\n");
+ }
+ } else {
+ printf("> ERROR : WIFI Module cannot be initialized.\n");
+ }
+ while(1){
+ char c[] = "";
+ int d = sensor.distance();
+ sprintf(c, "%d", d);
+ printf("Distance = %d \n", d);
+
+ char body[] = "{\"result\":";
+ char body_1[] = "}";
+ strcat(body,c);
+ strcat(body,body_1);
+
+ HttpRequest* POST_request = new HttpRequest(network, HTTP_POST, "http://140.115.111.187:8080/Ray/v1.0/Datastreams(1)/Observations");
+ POST_request->set_header("Content-Type", "application/json");
+ HttpResponse* response = POST_request->send(body, strlen(body));
+ printf("HTTP POST sending...\n");
+ // if response is NULL, check response->get_error()
+
+ printf("status is %d - %s\n", response->get_status_code(), response->get_status_message());
+ printf("body is:\n%s\n", response->get_body_as_string().c_str());
+
+ delete POST_request; // also clears out the response
+ wait(INTERVAL);
+ }
+}
\ No newline at end of file