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());
}
}