一,系统总计设计
该系统主要由三个部分组成:传感执行部分、无线通信部分,机智云自助开发平台部分。传感执行部分由主控单元、显示单元、和存储单元共同组成。传感检测部分采集空气环境参数信息,并且实时处理采集到的传感器数据,然后将数据发送给无线通信模块。
无线通信部分就是esp8266模组,也是所有信息交互的驿站,所有采集的信息和控制信息都是通过无线通信模块跟云平台进行传递的。数据通过WIF引模块把数据发送到云平台,云平台的数据可以同步到手机或者其他移动设备。机智云平台上面是用户定义好的数据点可以实时的记录本地的传感器数据并对本地的设备进行控制。总体设计图如图1.
二,系统功能介绍
使用机智云自助开发平台,ESP8266模组联网,实现环境湿度检测,环境光照强度检测,OLED屏幕显示数据。继电器可以自动远程控制以及定时。环境参数远程查看,远程修改阀值参数。
三,智能硬件自助开发选择机智云平台
机智云AIoT自助开发平台,采用微服务架构,将大量IoT技术原理、行业知识、基础模型规则化、软件化、模块化,通过傻瓜式开发工具、MCU自动生成代码、APP开源框架、IoTSDK、开放API,最大限度降低IoT设备开发的技术门槛和开发成本,提高开发、测试、部署效率,已服务超过320000+开发者。
机智云自助开发平台-开发利器GAgent
GAgent-标准串口通信程序,加速智能设备联网开发过程,1天内可完成设备对接平台。GAgent是运行在WiFi/蓝牙/5G/4G/NB-IOT等通讯模组的应用程序,使通讯模块主动连接使能平台服务器,并实现与云端的通信。在开发者产品的控制电路板上集成通讯模块,只需要实现与通讯模组的串口通信(代码自动生成),即可直接接入使能平台服务器,而不需要处键底层的网绪传输。
四,项目文件夹框架
五,核心板原理图
六,LED灯的驱动代码编写
原理图
七,代码实现
- #include "led.h"
- #include "systick.h"
- void LED_Init(void)
- {
- RCC_APB2PeriphClockCmd(LED1_CLK, ENABLE);
- RCC_APB2PeriphClockCmd(LED2_CLK, ENABLE);
- RCC_APB2PeriphClockCmd(LED3_CLK, ENABLE);
- GPIO_InitTypeDef LED_InitStruct = {0};
- LED_InitStruct.GPIO_Pin = LED1_PIN;
- LED_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
- LED_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(LED1_PORT, &LED_InitStruct);
- LED_InitStruct.GPIO_Pin = LED2_PIN;
- GPIO_Init(LED2_PORT, &LED_InitStruct);
- LED_InitStruct.GPIO_Pin = LED3_PIN;
- GPIO_Init(LED3_PORT, &LED_InitStruct);
- LED1(0);
- LED2(0);
- LED3(0);
- }
- void LED_Task(void)
- {
- static uint32_t Timer = 0;
- static uint8_t Sta = 0;
- if(SoftTimer(Timer,500))
- {
- Timer=GetSoftTimer();
- Sta?(Sta=0):(Sta=1);
- LED1(Sta);
- LED2(Sta);
- LED3(Sta);
- }
- }
- void GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
- {
- uint32_t ODR;
- ODR = GPIOx->ODR;
- GPIOx->BSRR = ((ODR & GPIO_Pin) << 16U) | (~ODR & GPIO_Pin);
- }
- #ifndef __LED_H_
- #define __LED_H_
- #include "STM32f10x.h"