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

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

概述树莓派(Raspberry Pi,RPi)的详细介绍 前言

  树莓派(RaspBerry Pi,RPi)是专门为学生计算机编程教育而设计,只有xyk大小的卡片式电脑,可以运行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)的详细介绍全部内容,希望文章能够帮你解决树莓派(Raspberry Pi,RPi)的详细介绍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存