2018-2-13-win10-uwp-iot
title | author | date | CreateTime | categories |
---|---|---|---|---|
win10 uwp iot
|
lindexi
|
2018-2-13 17:23:3 +0800
|
2018-2-13 17:23:3 +0800
|
Win10 UWP
|
这篇文章主要译:
https://msdn.microsoft.com/magazine/mt694090 有很多都是胡说,随便喷,但我不会理。
https://blogs.msdn.microsoft.com/lucian
今天的科技行业最常用的短语之一就是“物联网”,物联网可以让每个设备使用云而智能。使用云,设备可以分享数据和控制别的设备。我们可以远程控制相机,远程收集分析数据。
虽然在MSDN杂志有很多文章说如何收集和分析数据,尚未有任何从硬件和布线的角度讨论。转IOT开发需要电子设计、电工、焊接等硬件。开发者一般都是活在虚拟的世界不太想去弄现实的。好像我就是这个样子,在二次元。当然这句话原文没有说。很多开发者难以知道自己该如何做硬件,跨接电缆和电阻。为了解决这问题,本文章介绍了win10 iot如何让开发者不使用硬件。不使用硬件是不可能,但是我们能让开发者很大的不理解硬件就做出好的。
可编程的硬件已经有了很久,在硬件写程序需要对硬件了解, Raspberry Pi 2 Model B可以运行win10,自然和我们电脑的win10不一样。win10系统可以在Iot的可以到dev.windows.com/iot下载, Raspberry Pi 2可以运行UWP。
这文章作者将会创建UWP在Raspberry Pi 2虽然这是一个使用天气API根据他闪灯。作者将会介绍Iot概念,如何使用C#。这里的作者自然不是我,作者:Frank La Vigne 。
检测霜
春天他们会有霜,我们想要检测如果有霜我们就告诉,告诉使用亮灯。除了软件我们还需要硬件。我需要Raspberry Pi 2 Model B ,MicroSD card,LED light,无焊料的电路试验板,很多线。
Raspberry Pi 2 Model B的介绍可以看下面的博客。我就发一张图,因为翻译不好。
MicroSD Card 可以做Raspberry Pi 2 Model B硬盘,里面安装系统,我们的uwp。因为作者现在有4G的MicroSD Card,就使用了,建议还是8G。MicroSD Card大小根据需求。
无焊料的电路试验板、线 连接Raspberry Pi 2组件。虽然我可以使用随意连接,最快的方式是无焊料的电路试验板。如同名称我不需要焊接。我需要把线连接,使用30行10列。注意列有两个五组,"a-e","f-j",很容易就知道怎么弄。
Led 电阻 我将会连接led到Raspberry Pi 2 ,电压5V,会让LED坏,所以我们需要电阻。
以太网电缆,USB鼠标和键盘,HDMI监视器 Raspberry Pi 2有4个USB我们可以连接键盘,以太网,HDMI,我们可以把Raspberry Pi 2当做电脑。
下载windows10 可以在iot跑,可以到https://developer.microsoft.com/zh-CN/windows/iot/Downloads.htm#Win8
开始项目有点难,很多开发者移动代码不一定适合硬件,为了这个例子我做了一个很简单的LED闪动,实时从网上下载数据。需要下面这些硬件:led灯,无焊料的电路试验板,电缆。
Raspberry Pi 2 Model B 有很多GPIO ,GPIO 是General Purpose Input/Output,如果想知道可以百度,当然我是觉得google才是比较好,具体翻墙我就不说,相信大家github host很快就可以干了百度。有一些接口是保留我们不能编程,那么不能使用的有标出来,可以看上面的图有哪些被引出不能够编程。
设计电路
Led需要的电路可以看下图,电流动从pin1,标着3.3V的见上图的接口,3.3V对Led太大,所以我们需要一个电阻,然后电流流GPIO 5,根据引脚,从上面图我们可以看到是pin29。这个接口是可以编程让led变得“smart“,通过接口高电压和低电压,led亮一下暗一下。
现在作者将会开发来显示上面图的让led暗一下亮一下,作者合并开关连接 Raspberry Pi 2 pin29。作者选择e列7行然后把led长的接到a列8行,短的到a列7行。这里翻译都是在胡说,因为我没有真的弄。
作者把电阻连在c列8行和c列15行,我把正极连在a列15行,负极连在pin1,可以看下面,我也不知道翻译是不是。
作者把Windows IoT Core安装在MicroSD card,插Raspberry Pi 2,连接。启动设备看到下面
硬件设置好,我们开始写软件,首先打开神器,新建一个iot。我们需要新建一个UWP项目,我们把它命名WeatherBlink
打开扩展 Windows IoT Extensions for the UWP
在MainPage.xaml.cs
,我们需要使用Windows.Devices.Gpio
- using Windows.Devices.Gpio;
我们可以很容易使用pin,下面是我们使用pin电压高,好像电压高不是翻译电压
- var gpioController = GpioController.GetDefault();
- gpioPin = gpioController.OpenPin(5);
- gpioPin.Write(GpioPinValue.High);
下面代码获取pin电压
- var currentPinValue = gpioPin.Read();
整个app需要 GPIO pins,我们把他写成员
- private GpioPin gpioPin;
- private GpioPinValue gpioPinValue;
我们在构造
- private void InitializeGPIO()
- {
- var gpioController = GpioController.GetDefault();
- gpioPin = gpioController.OpenPin(5);
- gpioPinValue = GpioPinValue.High;
- gpioPin.Write(gpioPinValue);
- gpioPin.SetDriveMode(GpioPinDriveMode.Output);
- }
我们可以使用win10 全部控件,我感觉微软这个没有什么好。很多iot没有好看的界面,对于一个渣,没有界面实在不好,所以我们需要做一个界面。这些话都是我自己的,还没有去弄就觉得把重点放到了一个我们不用的。
我们弄一个简单的UI,如果我们能连接鼠标,使用压缩来更新天气。
作者需要下载天气信息从网上,我的天气可以从openweathermap.org/api接收的是json,温度是k,我们可以使用
- private async void LoadWeatherData()
- {
- double minTempDouble = await GetMinTempForecast();
- // 38F/3.3C = 276.483 Kelvin
- if (minTempDouble <= 276.483)
- {
- Blink(500);
- txtStatus.Text = "Freeze Warning!"
- }
- else
- {
- Blink(2000);
- txtStatus.Text = "No freezing weather in forecast."
- }
- }
如果天气不好我们就很多开始警报,看到的函数就是我们的警报
- private void Blink(int interval)
- {
- blinkingTimer = new DispatcherTimer();
- blinkingTimer.Interval =
- TimeSpan.FromMilliseconds(interval);
- blinkingTimer.Tick += BlinkingTimer_Tick;
- }
- private void BlinkingTimer_Tick(
- object sender, object e)
- {
- var currentPinValue = gpioPin.Read();
- if (currentPinValue == GpioPinValue.High)
- {
- gpioPin.Write(GpioPinValue.Low);
- }
- else
- {
- gpioPin.Write(GpioPinValue.High);
- }
- }
我们需要在PC部署,我们需要改变编译ARM
在运行选择远程,我们能看到
我们可以使用我的 Raspberry Pi 2,我听到有一些大神连接不了,如果连接不了自己写ip,一般可以,如果还是不可以不用找我我自己没有去
连接了我们就可以看到我的led在闪,我还没有去弄,作者没有图,我就没法弄一个,随便找一个觉得和这个不合
Iot是一个新的挑战,开发需要运行环境,需要电源和网,大多挑战来自于想要如何,如增加一个防风雨的室外场景的容器,我的iot需要显示,很多挑战决定我的代码。如果我的设备有4G网络,我需要考虑数据传输,他的意思是他需要钱,需要优化设备数据发送。
虽然我们的天气没有使用云,很多iot都是要网络,我们可以做一个简单的可以发送邮件的应用。Iot可以用很多地方,所以有空可以去玩。
代码:https://github.com/ms-iot/samples
中文好的博客:
http://edi.wang/post/2016/3/26/windows-10-iot-gy-30-light-sensor
http://edi.wang/post/2016/3/28/windows-10-iot-moisture-sensor-raspberry-pi3
http://edi.wang/post/2016/4/2/windows-10-iot-hc04-ultra-sonic-distance
http://edi.wang/post/2016/4/3/windows-10-iot-sound-light
http://edi.wang/post/2016/4/4/windows-10-iot-stepper-motor
http://edi.wang/post/2016/4/10/windows-10-iot-azure-remote-light
2018-2-13-win10-uwp-iot的更多相关文章
- win10 uwp iot
这篇文章主要译: https://msdn.microsoft.com/magazine/mt694090 有很多都是胡说,随便喷,但我不会理. https://blogs.msdn.microsof ...
- win10 uwp 使用 Microsoft.Graph 发送邮件
在 2018 年 10 月 13 号参加了 张队长 的 Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Micros ...
- win10 uwp MVVM 轻量框架
如果在开发过程,遇到多个页面之间,需要传输信息,那么可能遇到设计的问题.如果因为一个页面内包含多个子页面和多个子页面之间的通信问题找不到一个好的解决方法,那么请看本文.如果因为ViewModel代码越 ...
- Win10 UWP版《芒果TV》v2.4.0直播超女,芒果台综艺一网打尽
Win10 UWP版<芒果TV>直播超女,芒果台综艺一网打尽 Win10版UWP<芒果TV>自2015年9月登录商店以来,一直在持续更新,积极改进,拥有芒果台视频的独家点播和直 ...
- Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App
安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...
- Win10 UWP开发系列:实现Master/Detail布局
在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...
- Win10 UWP开发实现Bing翻译
微软在WP上的发展从原来的Win7到Win8,Win8.1,到现在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform简称.即Wi ...
- Win10/UWP开发—使用Cortana语音与App后台Service交互
上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...
- 【Win10 UWP】后台任务与动态磁贴
动态磁贴(Live Tile)是WP系统的大亮点之一,一直以来受到广大用户的喜爱.这一讲主要研究如何在UWP应用里通过后台任务添加和使用动态磁贴功能. 从WP7到Win8,再到Win10 UWP,磁贴 ...
- 【Win10 UWP】URI Scheme(一):Windows Store协议的解析和使用
协议是Windows Phone和Windows Store应用的一个重要特点,可以做到在不同应用之间进行互相呼起调用.小小协议,学问大着呢.我打算写几篇关于协议在UWP中使用的文章. 这一讲的主要对 ...
随机推荐
- 【题解】sweet
题目描述 为了防止糖果被小猫偷吃,John把他的糖果放在了很多的高台上,一个高台可以认为是一段平行于X轴的线段,并且高台的y坐标都是大于0的,每个高台都有左端点和高台的长度,每个高台都有糖果.所有的高 ...
- java爬取猫咪上的图片
首先是对知识点归纳 1.用到获取网页源代码,分析图片地址,发现图片的地址都是按编号排列的,所以想到用循环获取 2.保存图片要用到流操作和文件操作,对两部分知识进行了复习巩固 3.保存后的图片有一部分是 ...
- 使用Hbuilder 报错The keyword 'export' is reserved
右击文件 > 验证本文档语法(V)后报错 解决: 项目右键->”属性”->”语法&框架”界面中配置项目的javaScript版本,将ECMAScript5.1 修改为6.
- Input标签文件上传,使用详解
1.html添加标签按钮 <button ion-button (click)="selectVideo()">添加</button> <input ...
- Gym 102007I 二分 网络流
题意:给你一张图,每个城市有一些人,有不超过10个城市有避难所,避难所有容量上限,问最快多久可以让所有人进入避难所? 思路:二分时间,对于每个时间跑一遍最大流,判断最大流是不是人数即可.我们还需要用二 ...
- nginx进行获取阿里云slb真实ip配置操作
环境: 1.使用阿里云的slb进行配置nginx,nginx无法获取用户的真实ip解决方案 参考阿里云: https://help.aliyun.com/knowledge_detail/40535. ...
- TreeSet集合在哪种情况下会报错
1.自然排序中的元素对象,都必须实现了Comparable接口,否则会抛出异常,案例如下: public class MySetTree { public static void main(Strin ...
- 八年技术加持,性能提升10倍,阿里云HBase 2.0首发商用
摘要: 早在2010年开始,阿里巴巴集团开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储,HBase在几代阿里专家的不懈努力下,已经表现得运行更稳定.性能更高效 ...
- J2EE学习篇之--JQuery技术详解
前面我们讲解了的J2EE的技术都是服务端的技术,下面我们来看一下前端的一些开发技术,这一篇我们来看一下jQuery技术 简介: jQuery由美国人John Resig创建,至今已吸引了来自世界各地的 ...
- AcWing 197. 阶乘分解 (筛法)打卡
给定整数 N ,试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pipi 和 cici 即可. 输入格式 一个整数N. 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi, ...