1.功能实现
本次任务主要实现了一个用于检测户外环境的小型监测站系统。检测环境参数有:
周边环境温度(精度:±0.1°C, ±0.1°F)
周边环境湿度(精度:±1%)
大气压强(精度:±0.1kPa, ±0.1psi)
日照强度(用于判断白天/夜晚)
周边平均噪声(精度:±1dB)
2.硬件连接
外接一个1.14寸LCD屏幕,使用NANO_33_BLE_SENSE的一个SPI接口
1.14寸LCD屏幕引脚 | 板卡引脚 |
---|---|
VCC/GND | +3V3/GND |
SCL | D13/P0.13/SCK |
SDA | D11/P1.01/MOSI |
DC | D9/P0.27 |
CS | D8/P0.21 |
RES | D10/P1.02 |
BLK | D7/P0.23 |
3.代码部分
检测环境数据通过两部分显示:第一是未连接BLE前只通过屏幕显示;第二是连接BLE后通过屏幕和微信小程序显示。
LCD显示
void display_process(void)
{
tft.setTextColor(ST77XX_WHITE, ST77XX_BLACK);
tft.setCursor(0, 0);
tft.print("WERTHER STATION");
tft.drawLine(0, 16, tft.width() - 1, 16, ST77XX_YELLOW);
temperature = HTS.readTemperature() + CALIBRATION_FACTOR;
Serial.print(F("TEMPERATURE:"));
Serial.print(temperature, 1);
Serial.println(F(" °C"));
tft.setTextColor(ST77XX_RED, ST77XX_BLACK);
tft.setCursor(0, 20);
tft.print("TEMPERATURE:");
tft.print(temperature, 1);
tft.drawCircle(200, 20, 3, ST77XX_RED);
tft.setCursor(208, 20);
tft.print("C");
tft.drawLine(0, 36, tft.width() - 1, 36, ST77XX_YELLOW);
humidity = HTS.readHumidity();
Serial.print(F("HUMIDITY:"));
Serial.print(humidity, 1);
Serial.println(F(" %"));
tft.setTextColor(ST77XX_RED, ST77XX_BLACK);
tft.setCursor(0, 40);
tft.print("HUMIDITY:");
tft.print(humidity, 1);
tft.setCursor(160, 40);
tft.print("%");
tft.drawLine(0, 56, tft.width(