树莓派(Raspberry Pi,RPi)是特地为门生计算机编程教诲而设想,只要信用卡大小的卡片式电脑,能够运转Linux或许Windows 10 IoT Core操作体系。本文将运用树莓派和UWP(Universal Windows Platform)开辟手艺搭建一个能够及时监控的气象站体系。
硬件和触及手艺
硬件部份:
树莓派2或3一块,8G以上内存卡一张,读卡器(或带sd卡接口的电脑)一个;
Dht11温湿度传感器一个,GY-68 BMP180气压计一个;
LY-69 泥土湿度计一个,MQ-2 烟雾气敏传感器一个,雨滴传感器一个;
公母杜邦线多少,面包板一个,micro USB线一根,电源一个;
HDMI接口显示器一台(或HDMI转别的接口)。
开辟部份:
集成开辟环境: Visual Studio 2017(发起运用社区版);
开辟言语:C#;
开辟平台:UWP;
通讯协定:MQTT;
树莓派操作体系:WIndows 10 IoT Core;
数据库:Sqlite
操作体系的下载与装置:
装置Windows 10 IoT Core Dashboard 运用, 接见微软开辟者中间 顺次挑选Raspberry Pi 3,Install onto my blank microSD card,Windows10 IoT core,点击Next按钮来到新页面,点击Download Dashboard按钮下载,然后装置。
烧录操作体系到MicroSD卡,装置完成后挑选设置新装备项进入烧录页面。装备范例挑选Raspberry Pi 2&3;OS内部版本挑选Windows 10 IoT Core(15063);驱动器挑选插进去的MicroSD卡;输入装备称号、暗码、确认暗码;勾选WLAN收集衔接(勾选此项后能够将当前电脑衔接的WLAN信息复制给树莓派开辟板的操作体系,省去再次设置的贫苦);至此,树莓派装置Windows 10 IoT操作体系完成。
如下图:
Windows Device Portal:
在统一收集环境下的浏览器输入树莓派的IP地点,端口为8080,回车后会提醒输入用户名和暗码。默许用户名为Administrator,暗码为烧录操作体系时设置的暗码,假如遗忘暗码则只能重新装置。上岸胜利后会看到树莓派开辟板的当前操作体系下的细致信息,运用顺序管理界面,设置默许顺序以及开机自启动等。
完成
MQTT通讯:
MQTT(Message Queuing Telemetry Transport,音讯行列遥测传输)是IBM开辟的一个即时通讯协定。经由多年的生长,MQTT在各个领域的运用均有凸显,它能够作为手机客户端的音讯推送东西,并且在安卓运用中有比较大的占比。作为一款专为物联网设想的通讯协定,MQTT具有在低带宽、不稳定的收集环境下一般事情的特征。它的音讯通报有三种形式:
最多一次,会发作音讯丧失或反复,这类形式合适传感器类的数据传输,纵然音讯丧失,很快会再次发送。
只要一次,确保音讯抵达且不发作反复数据,合适须要准确数据的体系,比方计费体系。
最少一次,确保音讯能够抵达,但可能发作反复。
关于MQTT服务器的搭建能够参考:
MQTT在UWP下的运用能够参考:
要在UWP下运用MQTT须要装置nuget包m2mqtt
在这里我照样贴一下MQTT的衔接代码:
public class Mqtt : MqttClient {public Mqtt(string host) : base(host, 61613, false, MqttSslProtocols.None) { Connect(Guid.NewGuid().ToString(), "admin", "password"); Subscribe(new string[] { "atmo" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE }); // PostData("Hello World!"); } public void RequestData(string msg) { Publish("atmo", Encoding.UTF8.GetBytes(msg)); }public void PostData(string msg) { Publish("atmo", Encoding.UTF8.GetBytes(msg)); } }
Sqlite完成:
要在UWP下运用Sqlite须要先装置VS扩大Sqlite for Universal Windows Platform和Nuget包SQLite.Net-PCL。关于sqlite的细致运用方法参照:
下面是本体系中Database类:
public class DataBase : SQLiteConnection {public static string path = Path.Combine(ApplicationData.Current.LocalFolder.Path, "atmo.db");public DataBase() : base(new SQLitePlatformWinRT(), path) { CreateTable<DataModel>(); } }
INotifyPropertyChanged接口完成
public class ViewModelBase : INotifyPropertyChanged {public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged([CallerMemberName]string name = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } }
树莓派GPIO图
硬件衔接图:
传感器引脚图:
项目地点:
该项目还不完美,迎接人人补充和斧正!
以上就是树莓派(Raspberry Pi,RPi)的细致引见的细致内容,更多请关注ki4网别的相干文章!