该项目在 Raspberry Pi 套件组件上使用适用于 Windows 10 IoT Core 的 Adafruit 入门包来创建一个项目,该项目使用传感器读取温度、气压、湿度和高度。这适用于较旧的 Raspberry Pi 2 套件或带有 Raspberry Pi 3 的较新版本。
注意:此项目假定您拥有 BME280 传感器随附的套件版本。
此项目源自Microsoft 创建的原始Weather Station V 2.0项目。
根据本项目“原理图”部分的接线图中的布局连接 Raspberry Pi 2、面包板和 BME280 传感器。
首先,您需要安装 Visual Studio 2015,转到“新建 -> 项目”并创建一个新的“空白应用程序(通用 Windows)”应用程序模板以从一个新的空白 UWP 应用程序开始。
1. 如上所述创建一个新的空白 UWP 应用程序。
2. 添加对“UWP 的 Windows IoT 扩展”Windows 通用扩展的引用。
3.将对 BuildAzure.IoT.Adafruit.BME280 Nuget 包的引用添加到 UWP 应用程序。
4. 添加一个变量来保存对 MainPage 类的 DispatcherTimer 的引用。
5. 添加以下设置代码以使用 OnNavigatedTo 的覆盖在 MainPage 类中设置 DispatcherTimer 和 Tick 事件处理程序:
DispatcherTimer _timer;
public MainPage()
{
this.InitializeComponent();
}
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
_timer = new DispatcherTimer();
_timer.Interval = TimeSpan.FromSeconds(5);
_timer.Tick += _timer_Tick;
_timer.Start();
}
private void _timer_Tick(object sender, object e)
{
}
6. 在 MainPage 类中,添加一个变量以保存对 BME280Sensor 对象的引用以及“_timer”变量。
BuildAzure.IoT.Adafruit.BME280.BME280Sensor _bme280;
6. 在“OnNavigatedTo”方法中,添加代码以在“_timer.Start()”方法调用之前某处初始化 BME280Sensor 对象。
_bme280 = new BuildAzure.IoT.Adafruit.BME280.BME280Sensor();
await _bme280.Initialize();
7. 在MainPage 类中,添加常量、浮点变量来保存表示海平面的压力值。
const float seaLevelPressure = 1022.00f;
8. 在“_timer_Tick”处理程序中,添加以下代码以从 BME280 传感器读取温度、湿度、压力和高度值:
var temp = _bme280.ReadTemperature();
var humidity = _bme280.ReadHumidity();
var pressure = _bme280.ReadPressure();
var altitude = _bme280.ReadAltitude(seaLevelPressure);
9. 接下来,添加代码以将 BME280 传感器读数写入调试控制台:
Debug.WriteLine("Temp: {0} deg C", temp);
Debug.WriteLine("Humidity: {0} %", humidity);
Debug.WriteLine("Pressure: {0} Pa", pressure);
Debug.WriteLine("Altitude: {0} m", altitude);
10. 您的应用程序已准备好部署到 Raspberry Pi!
温度:24.46189摄氏度
湿度:54.372%
压力:99738.73帕
海拔:205.1726米
PS 您可以从该项目的代码部分查看/下载完整代码。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !