STM32的oneNet物联网远程智能家居控制系统-思路分享
Posted Mr song song
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32的oneNet物联网远程智能家居控制系统-思路分享相关的知识,希望对你有一定的参考价值。
设计了一款基于OneNET的物联网智能家居系统,用于家庭的智能控制系统。系统采用意法半导体公司的STM32F103C8T6作为控制单片机,果云科技的GA6作为物联网通信的载体。中国移动的OneNET作为服务器的数据交互平台实现物联网的远程数据采集以及设备控制。该系统具有数据通信可靠,开发成本低,维护简单等特点。
随着物联网技术的发展,越来越多的设备被连接入互联网,小到一个不起眼的插座,大到远程医疗手术设备,物联网技术已经遍布我们的生活,起着一个不可替代的作用,物联网产业的兴起促进了人们生活、工作的信息化和智能化水平的提升。推进物联网产业的发展,提高新兴产业的经济竞争力是下一阶段重点要做的工作。但当下我国物联网产业尚且存在很多漏洞,如产业链薄弱、物联网技术发展不成熟以及产业区域发展不平衡等,抑制了物联网的进一步发展。若想要使物联网产业取得实质性发展,就要加大对物联网技术的研究和对物联网产业布局的优化,健全物联网产业链,以期促进产业的协同发展。
物联网产业的领域、区域发展不平衡是当前非常显著的问题,通过分析和归纳物联网的发展情况和趋势,不难发现未来一段时间其发展的主要方向是物联网的行业应用。当前我国已经在智能交通、智能物流、医疗卫生等诸多领域进行了试点。但是物联网技术、行业保护等还不够成熟,导致部分试点项目存在周期长、回报收益低等问题,还有就是对行业实际发展需要和物联网现有技术认识不到位,出现盲目无序开发现象。
再者,物联网产业区域发展不平衡也是当前的显着问题。东部沿海地区的省市信息产业较为发达,争相对物联网产业的发展进行合理规划,以期形成特色产业集群效应。中西部省市由于物联网产业基础薄弱,实际发展需求较小,抑制了物联网产业的发展,逐渐与东部省份拉开差距。而其领域、区域的发展不平衡造成我国的物联网产业布局出现了不均衡的局面,物联网产业集群多分布在东部地区经济发达省市,而发达地区之间却又少有合作沟通,且对周围的不发达省市不能起到带动和示范作用。
其次,物联网产业的健康发展需要统一的行业组织规范。物联网产业涉及到多个领域的多个企业,行业跨度较大,不同行业的要求和用户需求也各不相同。目前,我国的物联网发展缺乏统一的行业组织标准,物联网产业各个时期的成本增加,阻碍了物联网的长效发展。
因此面对这种种的困境,中国移动首次推广了其物联网平台”OneNET”, 该系统从当前的实际情况出发,为用户提供了一个集开发、管理、推广于一体的物联网开放平台,是的人们能够用最少的经历以及最短的时间开发出最稳定的产品,借助于OneNET平台,用户可以不用过多的考虑协议层的内容。
2 系统组成
图3 系统架构
本设计要求系统能够接收来自于手机APP的控制指令并准确无误的执行,并且实时反馈环境变量,系统架构如图3所示。整个设计由四部分组成,分别是MCU、GPRS通信、传感器电路、继电器电路。MCU主要负责处理来自与GPRS模块和传感器哦模块通信,并控制继电器进行响应的动作。GPRS模块主要负责与OneNET平台进行数据交互,传感器采集环境的温湿度,继电器用来控制用电设备的通断。
3 硬件系统设计
本设计的硬件主要包含了电子元器件的选型,基本电路的设计,以及电路的布局和排布,如图5所示,电源由5V电源输入,分别供应了继电器和GPRS模块,5V电源经过ASM1117-3.3后转换为3.3V电压供应单片机最小系统和DHT11温湿度模块。
图5 硬件设计流程图
#include "user.h"
#include "a6.h"
#include "mqttkit.h"
#include "onenet.h"
#include "bsp_DHT11.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
unsigned char Connect=0;
/* USER CODE END PTD */
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
unsigned int timeCount = 0; //发送间隔变量
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_USART1_UART_Init();
MX_USART2_UART_Init();
MX_USART3_UART_Init();
/* USER CODE BEGIN 2 */
User_Gpio_Init();
DHT11_Init();
DHT11_Data_TypeDef DHT11_Data;
if(DHT11_Read_TempAndHumidity(&DHT11_Data)==SUCCESS)
printf("读取DHT11成功!-->湿度为%.1f %RH ,温度为 %.1f℃ \\n",DHT11_Data.humidity,DHT11_Data.temperature);
else
printf("读取DHT11信息失败\\n");
HAL_Delay(2000);//等待外设初始化完成
printf("串口1工作正常\\r\\n");
A6_Init();
HAL_Delay(200);
if(OneNet_DevLink()==1)//连接平台
HAL_Delay(500);
printf("平台连接成功");
OneNet_SendData();
unsigned char *dataPtr = NULL;
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
if(++timeCount >= 100*60*4 ) //发送间隔5min
OneNet_SendData();
timeCount = 0;
A6_Clear();
dataPtr = A6_GetIPD(0);
if(dataPtr != NULL)
OneNet_RevPro(dataPtr); //平台返回数据检测
printf("检测到平台数据\\r\\n");
HAL_Delay(5);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
/* USER CODE END 3 */
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
RCC_OscInitTypeDef RCC_OscInitStruct = 0;
RCC_ClkInitTypeDef RCC_ClkInitStruct = 0;
/** Initializes the CPU, AHB and APB busses clocks
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
731 基于STM32的ONENET物联网远程智能家居控制系统(毕业设计全套)
文章转自电设屋,完整资料百度网盘下载地址 https://www.aiesst.cn/share.html
以上是关于STM32的oneNet物联网远程智能家居控制系统-思路分享的主要内容,如果未能解决你的问题,请参考以下文章
基于iOS快捷指令和Siri控制连接OneNET物联网平台的STM32的智能安防家居系统
基于iOS快捷指令和Siri控制连接OneNET物联网平台的STM32的智能安防家居系统
基于iOS快捷指令和Siri控制连接OneNET物联网平台的STM32的智能安防家居系统
基于STM32设计物联网在线智能称重系统(OneNet)_2022