基于树莓派的微型气象站设计与开发

Yixin-Ran Yixin-Ran     2022-09-03     675

关键词:

前言

  树莓派(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 应用, 访问微软开发者中心https://developer.microsoft.com/en-us/windows/iot/GetStarted. 依次选择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服务器的搭建可以参考: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图

 

硬件连接图:

传感器引脚图:

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

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

有任何问题可以联系我的Email:xingran1994@live.com

 

 

 

基于树莓派的人脸识别解锁门锁设计

点击查看:基于树莓派的人脸识别解锁门锁设计 查看详情

基于树莓派的智能魔镜,支持人脸识别情感监测热词唤醒语音交互,以及与手机app交互温湿度/新闻热点/日期显示等

目录​​功能清单​​​​界面演示​​​​系统框图​​​​设计方案​​​​整体结构​​​​网站设计​​​​ app设计​​​​ 魔镜界面设计​​​​ 温湿度传感器​​​​ 光电传感器​​​​相关教程... 查看详情

基于树莓派的智能魔镜,支持人脸识别情感监测热词唤醒语音交互,以及与手机app交互的实现(代码片段)

目录效果演示第三方库的安装 换源魔镜界面绘制服务器部署人脸识别流程图 源码地址效果演示天气新闻日期热点等更新【录屏】 第三方库的安装importpaho.mqtt.clientaspahomqttfromPyQt5importQtCore,QtGui,QtWidgetsfromPyQt5.QtWidgetsimportQApplicatio... 查看详情

基于树莓派的智能魔镜,支持人脸识别情感监测热词唤醒语音交互,以及与手机app交互的实现(代码片段)

目录效果演示第三方库的安装 换源魔镜界面绘制服务器部署人脸识别流程图 源码地址效果演示天气新闻日期热点等更新【录屏】 第三方库的安装importpaho.mqtt.clientaspahomqttfromPyQt5importQtCore,QtGui,QtWidgetsfromPyQt5.QtWidgetsimportQApplicatio... 查看详情

基于树莓派的家庭智能监控系统如何实现?

基本描述基于树莓派的家庭智能监控系统。需求大概如下:用各类传感器,树莓派,摄像头和云台构造一个家用智能监控系统。红外、超声波、声音等传感器检测周边环境,遇到情况树莓派自动控制摄像头开始录像,并且发送警... 查看详情

基于树莓派的人脸识别门禁系统(代码片段)

一、树莓派Opencv以及扩展模块的安装1、概述:本次在树莓派上安装Opencv及其扩展模块,考虑到树莓派的SD卡容量和内存的限制,不采用直接pip安装方法,而采用编译Opencv源码的方式进行安装。2、遇到的问题及解决... 查看详情

树莓派笔记——了解与购买树莓派

...一、了解树莓派  树莓派,英文名:RaspberryPi,是一款基于ARM的微型电脑主板,是为学生计算机编程教育而设计的。    二、需要基础  想了解和玩转树莓派,得有以下各方面的基础:计算机硬件知识懂些Linux的命令编... 查看详情

基于树莓派的无线路由器改造

估计是昨天台风的影响,家里的渣渣路由罢工了,只能链接却无法上网。本来打算上网淘一个回来,结果昨晚收拾东西的时候发现大学买来做人脸识别的树莓派在墙角吃灰很久,于是打算对其进行改造。太久没动树莓派,上电没... 查看详情

ui设计设计题目

....智能手机UI交互界面人性化设计研究  20.一种新型自动气象站触控屏交互式系统设计  21.UI设计与产品形象的关系研究  22.虚拟现实语境中的UI风格化  23.论UI设计中色彩的应用  24.手机UI界面的色彩搭配研究  25.地... 查看详情

树莓派进阶之路(017)-基于树莓派的专用摄像头实时监控

环境:硬件:树莓派三代B型,5MPCameraBoardModule软件:Raspbian安装树莓派摄像头模块1、找到CSI接口(CSI接口在以太网接口旁边),掀起深色胶带。2、拉起CSI接口挡板。3、拿起你的摄像头模块,将贴在镜头上的塑料保护膜撕掉。确保黄... 查看详情

校园网络气象站的设计与实现

...气象数据。相较于传统的气象百叶箱,这样的大屏幕气象站有更好的实时性、实用性和科技感,人们从很远处就能清楚地看到气象数据。作为一名创客老师,本着“自己动手,丰衣足食”的创客精神,就开始... 查看详情

校园网络气象站的设计与实现

...气象数据。相较于传统的气象百叶箱,这样的大屏幕气象站有更好的实时性、实用性和科技感,人们从很远处就能清楚地看到气象数据。作为一名创客老师,本着“自己动手,丰衣足食”的创客精神,就开始... 查看详情

手把手带你做liteos的树莓派移植(代码片段)

...;树莓派是英国的慈善组织“RaspberryPi基金会”开发的一款基于arm的微型电脑主板。本文介绍基于LiteOS的树莓派移植过程。本文分享自华为云社区《2021LiteOS树莓派移植指南(一)》,作者:Lionlace。树莓派是英国的慈善组织“... 查看详情

树莓派树莓派的启动与ssh连接

一、树莓派启动将树莓派连接网线,并插上烧录好系统的SD卡,然后上电。二、通过ssh方式连接树莓派①首先需要下载一个SSH工具,推荐使用Putty(当然Xshell也可以,但是目前是有使用期限的限制)PUTTY(https://www.chiark.greenend.org.u... 查看详情

信用卡一样大小的(小型电脑):树莓派

...。 介绍:树莓派是由树莓基金会开发,它是一款基于ARM的微型主板。优势:相比于我们平时所使用的计算机来说,树莓派的优势是体积足够小ÿ 查看详情

树莓派可以运行安卓吗

...机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux。随着Windows10IoT的发布,我们也将可以用上运行Windows的树莓派。安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动... 查看详情

第6次系统综合实践(代码片段)

一,每个人对树莓派的了解程度1.说明你此前对于树莓派的认识程度,是闻所未闻还是只听其名不知其用途,亦或是已经了解熟悉。陈郑铧:知道它是微型的计算机,但是并没有实际使用过。陈益:闻所未闻。沈国煜:有听说过... 查看详情

校园网络气象站的设计与实现

...气象数据。相较于传统的气象百叶箱,这样的大屏幕气象站有更好的实时性、实用性和科技感,人们从很远处就能清楚地看到气象数据。作为一名创客老师,本着“自己动手,丰衣足食”的创客精神,就开始... 查看详情