【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计

这是我的物联网开发系列文章,将介绍如何从嵌入式开发、云平台开发、Android端开发来实现一个简单的物联网应用开发,体验物联网全栈开发的过程,积累开发的经验。
本篇文章为系列文章的第一篇,主要介绍该系统的实现目标,硬件、软件环境,使用的协议,系统的基本框架等内容。
接下来是暑假,争取系列文章每周更新一到两篇。

本文目录

  • 一、关于物联网应用
    • 1.物联网应用的典型架构
    • 2.物联网应用的分层架构
  • 二、关于MQTT协议
    • 1.MQTT协议的简介
    • 2.MQTT协议的特点
  • 三、系统实现目标
    • 1.设备端
    • 2.网页端
    • 3.APP端
  • 四、硬件选择和软件环境
    • 1.硬件
      • 1.1设备端
      • 1.2辅助硬件
    • 2.软件平台
      • 2.1云平台
      • 2.2开发软件
  • 注释

一、关于物联网应用

1.物联网应用的典型架构

【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第1张图片

  • 物联网设备:物联网的终端感知设备;
  • 网关:物联网设备通常通过无线方式接入互联网。网关通过无线接收数据,并通过有线将数据传输到物联网云平台;
  • 物联网云平台:功能主要包括存储物联网感知数据,提供相应的数据查询、分析、处理、展示;物联网终端、网关设备的接入和管理;设备间通信支持;多重安全防护保障等;
  • 客户端:应用开发者开发的各类用户端应用。

2.物联网应用的分层架构

上述的物联网的典型架构实际上也可以简化为一种三层的层次架构——感知控制层、网络层、应用层。
【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第2张图片

  • 感知控制层:指物联网终端设备,包括传感设备(如温度传感器)和控制设备(如电机),是获取物联网数据的起点,同时也对某些量(如温度)进行控制的实现终端。
  • 网络层:主要指网关、物联网云平台以及相关的通信协议(如:MQTT、TCP/IP、WiFi),负责网络通信和数据的操作和存储。
  • 应用层:指Web网页、手机APP、小程序等用户端的应用程序,向用户提供管理设备、查看数据等服务。

二、关于MQTT协议

1.MQTT协议的简介

MQTT(消息队列遥测传输) 是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上。
MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。1

2.MQTT协议的特点

MQTT协议具有以下主要的几项特性:

  1. 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
  2. 对负载内容屏蔽的消息传输;
  3. 使用 TCP/IP 提供网络连接;
  4. 有三种消息发布服务质量(QoS):
  • “至多一次”(QoS0),消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
  • “至少一次”(QoS1),确保消息到达,但消息重复可能会发生。
  • “只有一次”(QoS2),确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
  1. 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
  2. 使用 Last Will (遗嘱)和 Testament 特性通知有关各方客户端异常中断的机制。

三、系统实现目标

1.设备端

  1. 设备端能够通过传感器获取温度、湿度和亮度的数据;
  2. 设备端能够根据预设的条件(如:温度达到某个数值)自动开启LED或者风扇;
  3. 设备端能够通过OLED屏幕显示当时的数据和时间;
  4. 设备端能通过蜂鸣器提供声音反馈(例如:故障);
  5. 设备端通过WiFi协议、MQTT协议等网络通信协议接入云端,实现上报数据、获取云端数据的功能;
  6. 设备端能够通过按键进入近场WiFi连接模式,提供热点与手机连接,并在APP端中可以获取设备信息、设置WiFi参数;
  7. 设备端能够通过阿里云物联网平台的NTP服务联网获取unix时间。

2.网页端

  1. 基于阿里云物联网平台的IoT Studio开发出网页端,能够实现远程控制设备、查看设备数据和状态、查看云端历史数据;
  2. 网页端能够通过域名进行外部访问。

注:阿里云物联网平台的IoT Studio开发的Web网页需要通过绑定外部域名才能实现外部访问,否则只能通过阿里云平台进行访问。

3.APP端

  1. APP端通过阿里云的API获取云端的数据;
  2. APP端能够远程控制设备、查看设备的数据;
  3. APP端能够通过连接设备端的热点获取设备信息、控制设备。

注:由于目前阿里云物联网平台IoT Studio的移动应用可视化开发功能没有对所有用户开放,所以我这里只能在Android Studio通过阿里云的API实现APP的相关的功能。

四、硬件选择和软件环境

1.硬件

1.1设备端

项目 型号 用途 图片
单片机 STM32F103C8T6 作为设备端的主控模块 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第3张图片
温湿度模块 DHT11 获取温湿度的数据 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第4张图片
亮度模块 光敏电阻传感器(4针) 获取亮度的数据 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第5张图片
通信模块 ESP-12S模块(ESP8266) 通过串口AT指令进行WiFi通信 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第6张图片
显示模块 0.96寸OLED显示屏(SPI IIC 7针) 显示设备状态和当前的数据 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第7张图片
声音模块 有源蜂鸣器(高电平触发) 当进行某些操作或者设备故障时提供一定的声音反馈 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第8张图片
电机模块 130电机马达+继电器模块 风扇降温功能(文章首发时此处电机模块使用的是28BYJ-48步进电机,后来发现手头还有个130电机,所以电机模块就换成了130电机 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第9张图片
电源模块 3.3V、5V、12V输出DC输入模块+带DC头的电池盒 提供多种电源电压 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第10张图片

1.2辅助硬件

项目 型号 用途 图片
下载调试器 STLink V2 为STM32提供下载调试程序的功能 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第11张图片
USB转TTL模块 CH340 作为串口通信调试使用 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第12张图片
ESP-12S模块转接板 为ESP-12S模块提供转接功能(从安信可官方淘宝店购买的ESP-12S模块本身没有焊接排针,所以需要自己焊接相关器件 【物联网开发】基于STM32和阿里云的室内温、湿、亮度监测系统(一)—— 物联网介绍和系统初步设计_第13张图片
杜邦线 母对母、公对公、公对母 连接各个模块的引脚
面包板 方便一些线路(如:VCC、GND)的共享使用
面包板专用跳线 用于面包板上的线路连接
焊接工具 电烙铁、松香、焊锡、镊子等 用于焊接排针等

2.软件平台

2.1云平台

  • 阿里云物联网平台:阿里云官网链接
  • 阿里云域名、CDN、云解析DNS等业务
    注:以上业务仅仅用于域名的注册、备案、解析等业务,如果不需要在Web端使用域名的话可以不开通此类业务。

2.2开发软件

软件 版本 下载链接/安装教程
Keil μVision5(MDK5) V5.18.0 链接
STM32CubeMX 5.6.1 链接
Android Studio 4.0 链接
安信可串口调试助手 v1.2.3 链接
ESP Flash下载工具 v3.8.5 链接
字模软件 PCtoLCD2002 链接
阿里云物联平台配置软件 v1.0.0 链接

注释


  1. 内容摘自百度百科:MQTT_百度百科 ↩︎

你可能感兴趣的:(物联网应用开发)