【Io开发笔记】机智云智能浇花器实战(1)-基础Demo实现

这篇博客介绍了如何使用STM32进行LED和按键的初始化及控制,以实现智能浇花器的基础功能。通过初始化LED、按键,并设置定时器,实现了LED的闪烁和按键检测,为后续机智云智能浇花器的开发奠定了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,系统总计设计
该系统主要由三个部分组成:传感执行部分、无线通信部分,机智云自助开发平台部分。传感执行部分由主控单元、显示单元、和存储单元共同组成。传感检测部分采集空气环境参数信息,并且实时处理采集到的传感器数据,然后将数据发送给无线通信模块。
无线通信部分就是esp8266模组,也是所有信息交互的驿站,所有采集的信息和控制信息都是通过无线通信模块跟云平台进行传递的。数据通过WIF引模块把数据发送到云平台,云平台的数据可以同步到手机或者其他移动设备。机智云平台上面是用户定义好的数据点可以实时的记录本地的传感器数据并对本地的设备进行控制。总体设计图如图1.

 

 
二,系统功能介绍
使用机智云自助开发平台,ESP8266模组联网,实现环境湿度检测,环境光照强度检测,OLED屏幕显示数据。继电器可以自动远程控制以及定时。环境参数远程查看,远程修改阀值参数。
 
三,智能硬件自助开发选择机智云平台
 
机智云AIoT自助开发平台,采用微服务架构,将大量IoT技术原理、行业知识、基础模型规则化、软件化、模块化,通过傻瓜式开发工具、MCU自动生成代码、APP开源框架、IoTSDK、开放API,最大限度降低IoT设备开发的技术门槛和开发成本,提高开发、测试、部署效率,已服务超过320000+开发者。
 
机智云自助开发平台-开发利器GAgent
GAgent-标准串口通信程序,加速智能设备联网开发过程,1天内可完成设备对接平台。GAgent是运行在WiFi/蓝牙/5G/4G/NB-IOT等通讯模组的应用程序,使通讯模块主动连接使能平台服务器,并实现与云端的通信。在开发者产品的控制电路板上集成通讯模块,只需要实现与通讯模组的串口通信(代码自动生成),即可直接接入使能平台服务器,而不需要处键底层的网绪传输。

四,项目文件夹框架

五,核心板原理图

六,LED灯的驱动代码编写
原理图

七,代码实现
  1. #include "led.h"
  2. #include "systick.h"
  3. void LED_Init(void)
  4. {
  5.         RCC_APB2PeriphClockCmd(LED1_CLK, ENABLE);        
  6.         RCC_APB2PeriphClockCmd(LED2_CLK, ENABLE);        
  7.         RCC_APB2PeriphClockCmd(LED3_CLK, ENABLE);        
  8.         
  9.         GPIO_InitTypeDef            LED_InitStruct = {0};
  10.         
  11.         LED_InitStruct.GPIO_Pin   = LED1_PIN;
  12.         LED_InitStruct.GPIO_Mode  = GPIO_Mode_Out_PP;                 
  13.         LED_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;        
  14.         
  15.         GPIO_Init(LED1_PORT, &LED_InitStruct);
  16.         
  17.         LED_InitStruct.GPIO_Pin   = LED2_PIN;
  18.         GPIO_Init(LED2_PORT, &LED_InitStruct);
  19.         
  20.         LED_InitStruct.GPIO_Pin   = LED3_PIN;
  21.         GPIO_Init(LED3_PORT, &LED_InitStruct);
  22.         
  23.         LED1(0);  
  24.   LED2(0);
  25.         LED3(0);
  26. }
  27. void LED_Task(void)
  28. {
  29.         static uint32_t Timer = 0;
  30.         static uint8_t  Sta   = 0;
  31.         if(SoftTimer(Timer,500))
  32.         {
  33.                 Timer=GetSoftTimer();
  34.                 Sta?(Sta=0):(Sta=1);
  35.                 LED1(Sta);
  36.                 LED2(Sta);
  37.                 LED3(Sta);
  38.         }
  39. }
  40. void GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
  41. {
  42.         uint32_t ODR;
  43.         ODR = GPIOx->ODR;
  44.         GPIOx->BSRR = ((ODR & GPIO_Pin) << 16U) | (~ODR & GPIO_Pin);
  45. }
复制代码
  1. #ifndef __LED_H_
  2. #define __LED_H_
  3. #include "STM32f10x.h"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值