百问网物联网实战学习笔记-程序框架

2023-11-02 22:41

本文主要是介绍百问网物联网实战学习笔记-程序框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、需求分析

需求开发就是对开发前期的管理,与客户的沟通过程,可以分为4个阶段:需求获取、需求分析、编写需求和需求验证

 按键和LED就不多说了,相信大家都非常熟悉了,而网络通信受限于mini开发板的接口,我们选择了一个UART接口的WiFi模块ESP8266,使用的协议选择了MQTT。而开发模式我们有两个选择:裸机模式和RTOS模式。

1.按键使用定时器消抖的方式:

 一般 硬件上已经使用了RC电路进行了滤波消抖,但是还是需要软件上的对于按键的抖动的消除方式。如果是RTOS模式的话,我们还可以将按键的消抖交给RTOS的软件定时器来做,可以选择的方案很多,根据自己的应用场景、处理器资源、任务处理效率等多方面考虑,灵活选择处理。

2. 对于WiFi模块我们还提及到了一个环形缓冲区的数据保存方法,对于环形缓冲区的基本概念及其C代码实现,在后面会讲到

3.小结:

二 流程图

 

 

而且在工作中,如果要做一个软件设计的说明书或者报告,那么画一个系统的程序流程图应该都少不了。①主板和服务器网络通信;② 通过服务器数据控制LED;③将按键信息上传给服务器;调试信息的输出,也就是第四个任务:④ 调试信息输出

又根据这几个任务控制的设备、使用到的协议、硬件平台以及底层驱动,将项目的系统分成了这样一个层次:

 

 设备层是将可能用到的外设都统一封装到一起提供控制接口,通过设备号、设备名称等来判断需要控制具体的哪个外设,因为这次的应用层可能用到的是deviceA的led0,而另一个应用用到的是led1,那么不同应用只需要调用同一个设备层的api就能控制各自需求的设备,而不是让应用层去做区分,应用层只管传参数就行

 

这篇关于百问网物联网实战学习笔记-程序框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/333804

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结