Application testing co-operation of X-NUCLEO boards IKS01A1 (sensors) and IDW01M1 (wifi)
Dependencies: X_NUCLEO_IDW01M1v2-lapi-1 X_NUCLEO_IKS01A1-lapi-1
main.cpp
- Committer:
- lapi
- Date:
- 2016-11-20
- Revision:
- 1:937c297c25da
- Parent:
- 0:e3e4af4648ab
File content as of revision 1:937c297c25da:
#include "mbed.h" #include "x_nucleo_iks01a1.h" #include "SpwfInterface.h" #include "TCPSocket.h" DigitalOut led1(LED1); // main() runs in its own thread in the OS // (note the calls to Thread::wait below for delays) int main() { Serial pc(USBTX, USBRX); DevI2C i2c(D14, D15); HTS221 htsensor(i2c); LPS25H barosensor(i2c); uint8_t sensor_id; int status = htsensor.ReadID(&sensor_id); if (status || sensor_id != I_AM_HTS221) { pc.printf("No HT sensor (status = %d id = %02x?\n", status, sensor_id); } HUM_TEMP_InitTypeDef htInitState = { .OutputDataRate = HTS221_ODR_7Hz, // This is the only one used by the init }; status = htsensor.Init(&htInitState); if (status) { pc.printf("HT init fails!\n"); } status = barosensor.ReadID(&sensor_id); if (status || sensor_id != I_AM_LPS25H) { pc.printf("No Barosensor (status = %d id = %02x?\n", status, sensor_id); } PRESSURE_InitTypeDef baroInitState = { // These are used in the initialization .OutputDataRate = LPS25H_ODR_7Hz, .DiffEnable = LPS25H_DIFF_DISABLE, .BlockDataUpdate = LPS25H_BDU_CONT, .SPIMode = LPS25H_SPI_SIM_4W }; status = barosensor.Init(&baroInitState); if (status) { pc.printf("Baro init fails!\n"); } SpwfSAInterface wifiIf(D8, D2, /*debug*/true); Thread::wait(5000); pc.printf("Connecting...\n"); int wifiStatus = wifiIf.connect("ssid", "Pa55w0rd", NSAPI_SECURITY_WPA2, 3); while (true) { led1 = !led1; float temperature = 0.0; status = htsensor.GetTemperature(&temperature); float humidity = 0.0; status |= htsensor.GetHumidity(&humidity); float pressure = 0.0; status |= barosensor.GetPressure(&pressure); float temperatureB = 0.0; status |= barosensor.GetTemperature(&temperatureB); pc.printf("Status = %d T = %.1f C RH = %.1f%% | T = %.1f C P = %.1f mbar\n", status, temperature, humidity, temperatureB, pressure); Thread::wait(15000); // pc.printf("IP address %s\n", wifiIf.get_ip_address()); } }