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

前言

  树莓派(Raspberry Pi,RPi)是专门为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,可以运行Linux或者Windows 10 IoT Core操作系统。本文将利用树莓派和UWP(Universal Windows Platform)开发技术搭建一个可以实时监控的气象站系统。

硬件和涉及技术

  

硬件部分:

  • 树莓派2或3一块,8G以上内存卡一张,读卡器(或带sd卡接口的电脑)一个;
  • Dht11温湿度传感器一个,BMP180气压计一个;
  • 土壤湿度计一个,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:[email protected]

时间: 2024-08-05 11:07:32

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

基于JT/T 1078协议设计和开发部标视频服务器

交通部与2016年10月份推出了JT/T 1078-2016标准,全称是<道路运输车辆卫星定位系统视频通信协议>.该标准将改变以往两客一危车辆的视频监控设备通信协议都是设备厂商私有协议的局面.标准起草单位:中国交通通信信息中心.北京国交信通科技发展有限公司.江苏威森通讯科技有限公司.大连信开数码软件有限公司.深圳市锐明视讯技术有限公司.广州亿程交通信息有限公司.深圳市瑞信视讯技术有限公司.吉林省寰旗卫星导航通信集团有限公司.杭州海康威视数字技术股份有限公司.大连鼎视科技有限公司.这里面真正做视

基于web自动化测试框架的设计与开发(本科论文)

原文地址:https://www.cnblogs.com/caiqianghao/p/10107690.html

【移动终端软件开发】2017-2018秋学期教材《Android移动应用设计与开发(第2版)——基于Android Studio开发环境》

经过仔细比较,最终选定2017-2018秋季教材: <Android移动应用设计与开发(第2版)——基于Android Studio开发环境> 出版日期:2017-03-01  书号:978-7-115-44780-7  定价:49.80 元   页数:268 第1章 Android简介 11.1 Android发展概述 11.2 配置开发环境 31.2.1 安装JDK 31.2.2 安装Android Studio 51.2.3 安装SDK 51.3 本章小结 7习题 7 第2章 Andro

基于SSH2的新闻信息管理平台的设计与开发——论文随笔

一.基本信息 标题:基于SSH2的新闻信息管理平台的设计与开发 时间:2017-03 出版源:青岛大学 领域分类:系统设计与架构 二.研究背景 问题定义:如何人性化.个性化的为不同用户提供不同的特定的新闻以满足用户需求 难点:用户的喜好各不同,如何精确的制定用户画像 相关工作:用户可以通过分类直接查找喜欢的模块新闻,也 可以通过站内搜索功能,查找自己喜欢的模块新闻.如果在本地库中没有查找到需 求的新闻,可以进行站外爬虫查找,显示出新闻来源,并进行信息呈现.如果用户 还不满足这些功能,可以进行注册

基于Bootstrap框架的临床数据管理系统的设计与开发

    基于Bootstrap框架的临床数据管理系统的设计与开发     2018年11月10日 目  录 第一章绪论... 6 1.1 选题背景及其意义... 6 1.2国内外研究现状... 7 1.2.1 临床大数据管理系统发展现状... 7 1.2.2医疗电子表单管理发展现状... 8 1.3研究目标... 9 1.4 研究内容... 10 1.5论文整体结构... 10 第二章相关技术研究... 12 2.1 AngularJS技术简述... 12 2.2 RESTful API +sw

基于JavaEE的网上书店的设计与开发

获取项目源文件,技术交流与指导联系Q:1225467431 摘  要 在正常运营中,一个现代化网上书店需要对进书.售书.库存.统计信息以及个人信息进行管理,这些信息数量非常巨大并且处理起来十分复杂.如果使用传统的管理方法,既浪费了人力物力,而且存在着很多的漏洞,一旦出现错误,造成的损失将是不可估量的.因此,一个信息化.系统化.智能化的网上书店是十分必要的. 本系统是基于B/S(Browser/Server)结构的网上书店,它使用了目前最流行的Java语言编写,用到了先进的JSP技术,用户界面友好

了解如何设计和开发基于Http请求的数据接口服务系统

如今互联网的蓬勃发展离不开Http这个应用层面上的网络通信协议的诞生和发展,在经历着信息技术时代,到现在"数据时代"一词屡见不鲜之后,可以洞悉数据在影响着我们生活,昨晚在下载百度地图的离线数据包就发现,广州市的离线数据包明显大于全国其它市区不少. 数据作为一种服务已成常态,比如:12306火车票查询数据接口,商标信息服务接口,甚至车辆违章高发路段数据接口,这些数据来自各行各业并且通过数据接口服务提供给更多需要的人或信息系统. 本文主要介绍如何设计和开发数据接口服务系统,主要涉及到数据接

DIY一个基于树莓派和Python的无人机视觉跟踪系统

DIY一个基于树莓派和Python的无人机视觉跟踪系统 无人机通过图传将航拍到的图像存储并实时传送回地面站几乎已经是标配.如果想来点高级的--在无人机上直接处理拍摄的图像并实现自动控制要怎么实现呢?其实视觉跟踪已经在一些高端的消费级无人机上有了应用,不过玩现成的永远没有自己动手来劲;).前段时间DIY了一个无人机三轴云台的视觉跟踪系统,除去云台花了¥370,本文将设计思路与实验效果分享出来. 一.基本配置 1.1 硬件 计算平台:树莓派3 (¥219.00) 摄像头:USB网络摄像头(¥108.

树莓派、 Arduino 、传统单片机开发板该如何选择?

几十年前的电子爱好者,最喜欢的就是电烙铁.面包板和收音机:十几年前,出现了单片机,于是玩具就成了电烙铁.面包板和单片机:到了2015年,贴片技术的不断普及,让面包板不再那么有用武之地,经济的发展也让现成的板卡价格降到了一个合理的范围,购买现成的电路板,甚至自己打样电路板来使用,已经成为了一个趋势.现在,我们面前的选择就空前的丰富,一方面,是以Arduino和树莓派为首的开源硬件阵营,另一方面,则是以STM32.51和S3C2440为首的传统单片机开发板阵营.笔者根据自己的使用体验,与读者简单谈一