多模态云协同智能居家门禁与安防系统(基于STM32/ESP8266/ESP32与华为云)
基于STM32并能实时上传云平台开关状态的智能门禁警报系统 - 学习笔记一、项目简介本项目是一个结合物联网通信与嵌入式控制的智能门禁警报系统,核心目标是实现用户身份验证(密码/指纹)后控制门锁状态,并能将门锁状态通过ESP8266上传至云平台,达到实时同步与远程管理的效果。 项目主要功能如下: 支持6位数字密码或指纹登录 指纹登录显示指纹ID 登录失败3次启动报警(LED闪烁或蜂鸣器报警) 继电器控制报警装置 登录成功后通过串口控制ESP8266同步门锁状态到云平台 支持: 新增指纹(双次按压、选择ID、最多100个) 删除指纹(指定ID或全部清除) 修改密码 退出登录并同步云平台状态 云平台状态实时回传,判断是否允许进入登录流程 二、使用硬件清单 硬件名称 说明 STM32F103C8T6 主控单片机 ESP8266 从控通信模块,用于云平台数据上传 ESP32 从控通信模块,用于获取当前城市天气信息 AS608 指纹识别模块 继电器 + LED灯 模拟开锁 有缘蜂鸣器 模拟警报系统 4x4矩阵键盘 用于密码输入 OLE...
ubantu20通过ngrok部署node网页
具体可参考本人github(test)仓库 使用 ngrok 部署 Node.js 应用的完整流程1. 环境准备1.1 安装 Node.js 和 npm确保你的系统上安装了 Node.js 和 npm。如果没有安装,可以通过以下命令安装: 12sudo apt updatesudo apt install nodejs npm 1.2 安装 MySQL确保安装了 MySQL 数据库服务器: 12sudo apt updatesudo apt install mysql-server 2. 配置 MySQL2.1 登录 MySQL使用 root 用户登录 MySQL: 1sudo mysql -u root 2.2 设置 root 用户密码和权限在 MySQL 控制台中,设置 root 用户密码和权限: 12ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';FLUSH PRIVILEGES; 2.3 创建数据库...
基于 STM32F103C8T6 的 FreeRTOS 系统开发与应用笔记
FreeRTOS 在 STM32F103C8T6 上的移植与应用笔记第一章:FreeRTOS 移植到 STM32FreeRTOS 是一个小巧、可裁剪、开源的实时操作系统,广泛应用于嵌入式系统中。STM32F103C8T6 是一款基于 ARM Cortex-M3 内核的微控制器,具备较强的处理能力和丰富的外设资源,适合移植 FreeRTOS 进行多任务调度控制。 1.1 准备工作移植 FreeRTOS 之前需要完成以下准备工作: 安装 STM32CubeMX 和 Keil MDK 开发环境。 下载 FreeRTOS 源码包或通过 CubeMX 自动配置。 确保已有基本裸机程序运行(例如串口输出正常)。 1.2 使用 STM32CubeMX 创建工程 打开 STM32CubeMX,选择 STM32F103C8Tx 芯片。 配置时钟系统,确保主频设置为 72MHz。 启用 USART(用于调试输出)和 SysTick(系统节拍来源)。 在 Middleware 中启用 FreeRTOS,选择 CMSIS_V1 接口。 配置任务参数,例如任务名、栈大小、优先级。 生成工程并在 Kei...
多种通信协议总结
📘 串口通信协议与模拟接口学习笔记总结在嵌入式系统开发中,各类通信协议与模拟接口是实现外设连接与控制的基础。本文总结了常见的串口通信协议(UART、I2C、SPI、CAN、SDIO、蓝牙)和模拟/数字接口(PWM、ADC、DAC)的工作原理、特点与应用场景。 一、串口通信协议总结1. UART(Universal Asynchronous Receiver/Transmitter) 类型:异步串行通信协议 连接线:2 根(TX发送、RX接收) 结构:点对点,无主从关系 特点: 不需要时钟线,靠波特率同步 适合短距离通信,调试、模块通信广泛使用 典型应用:调试串口、蓝牙模块(如HC-05) 2. I²C(Inter-Integrated Circuit) 类型:同步串行通信协议 连接线:2 根(SCL时钟线、SDA数据线) 结构:多主多从 特点: 每个设备有唯一地址,可挂多个外设 硬件资源占用少,但速率较低 典型应用:温湿度传感器(如 SHT30)、OLED 显示器、RTC 时钟芯片 3. SPI(Serial Per...
定时器与中断学习笔记
一、认知单片机中的“中断”(1)中断的基本概念在计算机执行程序的过程中,当出现某种情况时,由服务对象向CPU发出请求当前程序中断的信号,要求CPU暂时停止当前程序的执行,而转去执行相应的处理程序,待处理程序执行完毕后,再返回继续执行原来被中断的程序,这样的过程称为中断过程。引起中断的原因或触发中断请求的来源称为中断源。为实现中断而设置的各种硬件和软件称为中断系统。 (2)采用中断技术的优点 实行分时操作,提高了CPU的利用率。当服务对象向CPU发出中断请求时,才使CPU转向为该对象服务,否则不影响CPU的正常工作。这样,利用中断可以使CPU同时为多个对象服务,从而大大提高了整个单片机系统的工作效率。 实现实时处理,及时处理实时信息。在工业现场控制中,常常要求单片机系统对信号进行实时处理。利用中断技术,各服务对象可以根据需要随时向CPU发出中断请求,CPU及时检测并处理各对象的控制要求,已实现实时控制。 对难以预料的情况或故障进行及时处理。在单片机系统工作过程中,有时会出现一些难以预料的情况或故障,如电源掉电、运算溢出、传输错误等,此时可以利用中断进行相应的处理而不必停机。 ...
My Blog
记录学习点滴
推挽输出与开漏输出
推挽输出与开漏输出推挽输出(Push-Pull Output)推挽输出是一种常见的数字电路输出配置,通常用于驱动负载,如LED、电机等。在推挽输出中,使用了两个互补的晶体管,一个用于提供高电平输出,另一个用于提供低电平输出。这两个晶体管可以同时工作,使输出可以提供较高的驱动能力和速度。 特点: 高驱动能力: 由于使用了两个互补的晶体管,推挽输出可以提供较高的电流输出能力,适用于驱动较大负载。 快速切换速度: 两个晶体管可以快速切换,因此推挽输出可以实现高速的电平变化,适用于需要快速响应的应用场景。 适用范围广: 由于其性能稳定且输出能力较强,推挽输出被广泛应用于各种数字电路中。 适用场景: 驱动电机: 推挽输出可以提供足够的电流驱动电机,适用于各种类型的电机驱动。 LED控制: 推挽输出可以提供足够的电流和快速的切换速度,适用于LED灯带、显示屏等LED控制场景。 开漏输出(Open-Drain Output)开漏输出是另一种常见的数字电路输出配置,也常用于驱动负载。在开漏输出中,晶体管只提供了一个方向的电流流动路径,当输出为低电平时,晶体管导通,输出接地;当输出为高电平时,...
C语言设计_智能五子棋
C语言棋类游戏项目笔记一、项目概述本项目使用 C 语言编写了一个棋类游戏,支持玩家对战、玩家与 AI 对战以及电脑与电脑对战三种模式。借助图形库实现了游戏界面的绘制,包含棋盘绘制、棋子落子特效等功能,同时具备判断胜负和计分的逻辑。 二、代码结构与功能模块(一)头文件与宏定义引入了多个标准库和图形库相关的头文件,定义了游戏窗口的宽度、高度、棋盘大小、玩家标识等常量。这些宏定义方便后续代码的编写和修改,例如通过修改 width 和 heigth 可以轻松调整游戏窗口的大小。 (二)全局变量定义了一系列全局变量,用于存储游戏的关键信息,如棋盘状态、当前玩家、棋子数量、得分等。全局变量的使用使得不同函数之间可以方便地共享数据,提高了代码的交互性。 (三)函数实现1. chesscomputer2() 功能:实现电脑下棋的逻辑。根据当前棋盘状态计算每个可落子位置的得分,选择得分最高的位置落子。若为初始状态,将棋子放在棋盘中心。 逻辑: 若当前轮到 p2 且棋子数量为 0,将棋子放在棋盘中心。 遍历棋盘,计算每个可落子位置对于电脑和对手的得分,根据得分选择落子位置。 落子后切换当前玩家。 ...