借鉴了MSP 李桑郁关于Win10 IoT 的设置和在Azure上通信的实例,设计了在Win10 IoT 下局域网内与Win 10 PC的互联,并基于此设计了室内外温度的监控程序。
首先是在树莓派3B上安装Win 10 IoT, 最新的版本是10.0.16299.15 可以在微软官网下载 Windows 10 IoT Core Dashboard 自动化部署系统,也可以在下载 ISO 文件使用FFU 手动部署,链接
https://developer.microsoft.com/en-us/windows/iot/Downloads
相关部署步骤可以借鉴MSP 李桑郁的这盘文章
https://mp.weixin.qq.com/s?__biz=MzU0NjAzODIxMA==&mid=2247483676&idx=1&sn=221b2a5139e8a1da9062c0da177ba54a&chksm=fb6289b1cc1500a798035f3d12f6f79c5be7b13be356b549e79f0e76d4d6d9e7b44245489590&scene=0#rd
完成部署后在电脑端的Windows 10 IoT Core Dashboard可以检测到树莓派,如下图所示
之后在PC端的 Microsoft Store 上下载 Windows IoT Remote Client
或者也可以通过SSH或者POWER SHELL 连接,使用微软自带的远程桌面应用也可以做到远程打开,不过在做这些前记得先接入显示屏打开Raspi的远程桌面,否则会出现访问失败的情况。
ok,出现这步的时候就是连接成功了,现在我们可以开始设置树莓派GPIO口了
先打开VS 新建 IoT项目
新建的项目初始代码 C#
具体实现代码节选
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Http;
using Windows.ApplicationModel.Background;
// The Background Application template is documented at http://go.microsoft.com/fwlink/?LinkID=533884&clcid=0x409
namespace BackgroundApplication1
{
public sealed class StartupTask : IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
//初始化Pins
var pins = new DHT22[] { new DHT22(DHT.W, 10), new DHT22(DHT.T, 3), new DHT22(DHT.S, 10) };
//循环
while (true)
{
//依次操作LED
foreach (var pin in pins)
{
InitDHT22();
// 初始化DHT22温湿度传感器
pin.Read();
//读取DHT22的IO口信息
SendMsg(pin.DHT.ToString());
//发送到Azure/PC上
Task.Delay(TimeSpan.FromSeconds(pin.Interval)).Wait();
//延迟
pin.Close();
}
}
//
// TODO: Insert code to perform background work
//
// If you start any asynchronous methods here, prevent the task
// from closing prematurely by using BackgroundTaskDeferral as
// described in http://aka.ms/backgroundtaskdeferral
//
}
}
}
然后将其加载到到树莓派的Win 10 IoT上就可以开始运行了,在Azure上通过监控IP来获取其本地位置,并借助中国天气网的API获取到本地数据,以Web形式显示出来(这些会在下一篇文章中介绍到)