Rumah > pembangunan bahagian belakang > Tutorial C#.Net > 树莓派(Raspberry Pi,RPi)的详细介绍

树莓派(Raspberry Pi,RPi)的详细介绍

零下一度
Lepaskan: 2017-06-24 10:15:17
asal
6795 orang telah melayarinya

前言

  树莓派(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具有在低带宽、不稳定的网络环境下正常工作的特性。它的消息传递有三种模式:

 

  1. 至多一次,会发生消息丢失或重复,这种模式适合传感器类的数据传输,即使消息丢失,很快会再次发送。

  2. 只有一次,确保消息到达且不发生重复数据,适合需要精确数据的系统,例如计费系统。

  3. 至少一次,确保消息可以到达,但可能发生重复。

关于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));
        }
    }
Salin selepas log masuk

 

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>();
        }
    }
Salin selepas log masuk

INotifyPropertyChanged接口实现

 public class ViewModelBase : INotifyPropertyChanged
    {public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged([CallerMemberName]string name = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
        }
    }
Salin selepas log masuk

 

树莓派GPIO图

 

硬件连接图:

传感器引脚图:

项目地址:

该项目还不完善,欢迎大家补充和指正! 

 

 

Atas ialah kandungan terperinci 树莓派(Raspberry Pi,RPi)的详细介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan