基于树莓派的袖珍气象局设计与开销(Windows 10 IoT Core)

前言

  树莓派(Raspberry
Pi,福睿斯Pi)是特意为学习者电脑编程教育而设计,唯有信用卡大小的卡片式电脑,能够运行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 应用,
    访问微软开发者中央https://developer.microsoft.com/en-us/windows/iot/GetStarted.
    依次接纳Raspberry Pi 3,Install onto my blank microSD card,Windows10
    IoT core,点击Next按钮来到新页面,点击Download
    Dashboard按钮下载,然后安装。
  • 烧录操作系统到MicromicroSD闪存卡,安装完毕后选取安装新设施项进入烧录页面。设备档次接纳Raspberry
    Pi 2&3;OS内部版本选取Windows 10 IoT
    Core(15063);驱动器选拔插入的MicroSD闪存卡;输入设备名称、密码、确认密码;勾选WLAN互连网连接(勾选此项后可以将目前电脑一连的WLAN新闻复制给树莓派开发板的操作系统,省去再度安排的麻烦);至此,树莓派安装Windows
    10 IoT操作系统达成。

如下图:

图片 1

  Windows Device Portal:

  在相同互联网环境下的浏览器输入树莓派的IP地址,端口为8080,回车后会指示输入用户名和密码。暗许用户名为Administrator,密码为烧录操作系统时设置的密码,如若忘记密码则只好重新安装。登陆成功后会看到树莓派开发板的此时此刻操作系统下的详细新闻,应用程序管理界面,设置私自认同程序以及开机自启动等。

 

实现

 

MQTT通信:

 

  MQTT(Message Queuing Telemetry
Transport,音信队列遥测传输)是IBM开发的一个即时通信协议。经过长年累月的发展,MQTT在各种领域的拔取均有凸出,它可以当做手机客户端的新闻推送工具,并且在安卓应用中有相比大的占比。作为一款专为物联网设计的通讯协议,MQTT具有在低带宽、不稳定的互连网环境下健康干活的天性。它的新闻传递有三种格局:

 

  1. 至多五次,会时有暴发消息丢失或另行,那种形式适合传感器类的数码传输,尽管新闻丢失,很快会再也发送。
  2. 唯有两遍,确保新闻到达且不发出再次数据,适合必要规范数据的序列,例如计费系统。
  3. 至少一次,确保消息可以抵达,但只怕发生再一次。

有关MQTT服务器的搭建可以参考:http://blog.csdn.net/yannanxiu/article/details/52703946

MQTT在UWP下的选择可以参照:http://www.cnblogs.com/Yixin-ran/archive/2016/10/21/mqtt.html

要在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的详尽使用方法参照:http://www.cnblogs.com/yanxiaodi/p/4941312.html

上面是本系统中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图

图片 2

 

硬件连接图:

图片 3

传感器引脚图:

图片 4

图片 5

项目地址:https://github.com/yixinin/Yixin.Atom

该品种还不周到,欢迎大家补充和指正!

有其余难点可以联系自个儿的Email:xingran1994@live.com

 

 

 

网站地图xml地图