Network Enabled Hardware Development
Dependencies: DISCO_L475VG_IOT01A_wifi VL53L0X BSP_B-L475E-IOT01
main.cpp
- Committer:
- abdulh
- Date:
- 2020-04-19
- Revision:
- 0:98a1923c15fb
File content as of revision 0:98a1923c15fb:
#include "mbed.h" #include "wifi.h" // Sensors drivers present in the BSP library #include "stm32l475e_iot01_tsensor.h" #include "stm32l475e_iot01_hsensor.h" #include "VL53L0X.h" #define WIFI_WRITE_TIMEOUT 10000 #define WIFI_READ_TIMEOUT 10000 #define CONNECTION_TRIAL_MAX 10 Serial pc(SERIAL_TX, SERIAL_RX); uint8_t RemoteIP[] = {MBED_CONF_APP_SERVER_IP_1,MBED_CONF_APP_SERVER_IP_2,MBED_CONF_APP_SERVER_IP_3, MBED_CONF_APP_SERVER_IP_4}; uint8_t RxData [500]; char* modulename; uint16_t RxLen; uint8_t MAC_Addr[6]; uint8_t IP_Addr[4]; DigitalOut led(LED1); static DevI2C devI2c(PB_11,PB_10); static DigitalOut shutdown_pin(PC_6); static VL53L0X range(&devI2c, &shutdown_pin, PC_7); int main() { int32_t Socket = -1; uint16_t Datalen; uint16_t Trials = CONNECTION_TRIAL_MAX; pc.baud(115200); /*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]); printf("> Trying to connect to Server: %d.%d.%d.%d:27015 ...\n", RemoteIP[0], RemoteIP[1], RemoteIP[2], RemoteIP[3]); while (Trials--){ if( WIFI_OpenClientConnection(0, WIFI_TCP_PROTOCOL, "TCP_CLIENT", RemoteIP, 27015, 0) == WIFI_STATUS_OK){ printf("> TCP Connection opened successfully.\n"); Socket = 0; } } if(!Trials) { printf("> ERROR : Cannot open Connection\n"); } } 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"); } float sensor_valuet; float sensor_valueh; printf("Start sensor init\n"); BSP_TSENSOR_Init(); BSP_HSENSOR_Init(); range.init_sensor(VL53L0X_DEFAULT_ADDRESS); int i = 0; while(1) { printf("\nNew loop, LED1 should blink during sensor read\n"); led = 1; uint32_t distance; int status = range.get_distance(&distance); if (status == VL53L0X_ERROR_NONE) { printf("VL53L0X [mm]: %6u\r\n", distance); } else { printf("VL53L0X [mm]: --\r\n"); distance = 0; } int timer = 0; while (distance < 150 && distance > 0) { int status = range.get_distance(&distance); if (status == VL53L0X_ERROR_NONE) { printf("VL53L0X [mm]: %6u\r\n", distance); } else { printf("VL53L0X [mm]: --\r\n"); distance = 0; } timer++; i++; ThisThread::sleep_for(1000); } if (timer >= 10) { uint8_t data[1024] = ""; uint8_t temp[50] = ""; sprintf((char *)temp, "%d", timer); strcat((char *)data, (char *)temp); if(Socket != -1) { if(WIFI_SendData(Socket, data, sizeof(data), &Datalen, WIFI_WRITE_TIMEOUT) != WIFI_STATUS_OK) { printf("Desu\n"); } } } if (i%60 == 0) { uint8_t data[1024] = ""; uint8_t temp[50] = ""; sensor_valuet = BSP_TSENSOR_ReadTemp(); sensor_valueh = BSP_HSENSOR_ReadHumidity(); printf("\nTEMPERATURE = %.2f degC\n", sensor_valuet); printf("HUMIDITY = %.2f %%\n", sensor_valueh); sprintf((char *)temp, "%f", sensor_valuet); strcat((char *)data, (char *)temp); strcat((char *)data, (char *)","); sprintf((char *)temp, "%f", sensor_valueh); strcat((char *)data, (char *)temp); printf("%s\n", data); if(Socket != -1) { if(WIFI_SendData(Socket, data, sizeof(data), &Datalen, WIFI_WRITE_TIMEOUT) != WIFI_STATUS_OK) { printf("Desu\n"); } } } led = 0; ThisThread::sleep_for(1000); i++; } }