5.wifi开发【智能家居:上】,开发准备:智能开关灯,智能采集温湿,智能调彩灯
一。wifi智能家居项目开发
【开发准备1】:继电器控制开发
1.智能开关
器件准备:wifi(esp8266,使用CP2102)继电器
结果:
2.继电器工作原理
(1)继电器是一种自动电气开关
(1) 输入输出电路隔离
(2)信号转换(从断开到接通)
(3)增加输出能力
(2)继电器工作原理
利用电磁铁控制工作电路通断的开关
(3)继电器模块介绍
高电平触发指的是信号触发端(IN)与电源负极之间有一个正向电压,.通常是用电源的正极与触发端连接的一种触发方式,当触发端有正极电压或达到触发的电压时,继电器则吸合。低电平触发指的是信号触发端与电源负极之间的电压为Ov时,或者说触发端的电压比电源正极的电压更低,低到可以触发的电压时,使继电器吸合,通常是将电源的负极与触发端连接的一种触发方式使继电器吸合。
产品参数:
电压版本:5v静态电流:4mAs工作电压:65mA蚀发电压:2-5V触发电流:2mA
(4)继电器模块使用
3.开发要求:
1.ComBox模拟TCP客户端连接ESP8266
(1)发送“relayon”打开继电器
(2)发送“relayoff”关闭继电器
4.硬件连接
1.采用GPIO5直接驱动继电器
2.继电器电源VCC连接到VIN 继电器GND连接到GND
5.开发流程
1.在SDK目录下新建relay文件
2.拷贝tcpserver下所有文件到relay下
3.在relay/user目录下新建relay.c
4.在relay/include目录下新建relay.h
5.在tcpserver下完成relayon/relayoff解析
6.控制命令解析
【开发准备2】:环境采集模块
1.智能环境采集
器件使用
wifi模块+温湿度
结果:温湿度采集模块
2.空气温湿度传感器原理
数字式空气温湿度传感器
16Bit温度测量 16Bit湿度测量
3.驱动设计
1.启动采集
2.配置IO为输出模式
3.拉低18ms后拉高
4.配置IO为输入模式
5.延时40us等待DHT11相应
6.DHT11拉低
7.等待拉低80us后拉高
8.等待拉高80us后拉低
4.
5.需求分析
1.ComBox模拟TCP客户端连接ESP8266
2.定时5秒采集一次温湿度数据
3.客户端发送readdata,服务器当前温湿度数据
6.功能开发
(1)新建dht11工程目录
1.在SDK目录下新建dht11目录
2.拷贝tcpserver目录下所有文件到dht11目录下
(2)新建dht11源码文件
1.在user目录下新建tdht11.c
2.在include目录下新建dht11.h
(3)Sourceinsight配置
1.在之前的工程中,移除relay文件夹
2.添加dht11文件夹
7.代码实现
1.在dht11.c下
(1)创建Dht11_init(),用于任务创建
(2)创建void ATaskDht11( void *pvParameters ),用于任务实现
(3)创建DHT11_TEST(void) ,用于温湿度数据采集
【正式实现1】:wifi智能灯开发
1.智能灯泡
wifi+WS2812RGB
结果:智能灯
2.WS2812RGB介绍
WS2812RGB原理:
控制电路与RGB芯片集成在一个5050封装的元器件中, 构成一个完整的外控像素点。 每个像素点的三基色颜色可实现256级亮度显示,完成16777216种颜色的全真色彩显示, 扫描频率不低于400Hz/s。
串行级联接口, 能通过一根信号线完成数据的接收与解码。 当刷新速率30帧/秒时, 低速模式级联数不小于512点, 高速模式不小于1024点。
数据发送速度可达800
WS2812RGB硬件连接:
WS2812驱动时序图
输入码型
输入码型(高位先发,按照GRB的顺序发送数据)
数据传输方法
硬件连接
1.采用GPIO5直接驱动WS2812 VIN
2.VCC连接到3.3V GND连接到GND
3.驱动设计
1.发送0码
2.发送1码
3.ns级延时
4.发送复位码
5.写入RGB数据
4.代码实现
1.进入临界段
2.发送复位码
3.循环写入7组RGB数据
4.退出临界段
【正式实现2】:wifi智能灯开发2
1.功能需求
1.ComBox模拟TCP客户端连接ESP8266
2.客户端发送setcolour,服务器接收解析,改变一次灯泡颜色
2.功能开发
新建ws2812工程目录
1.在SDK目录下新建ws2812目录
2.拷贝tcpserver目录下所有文件到ws2812目录下
新建ws2812源码文件
1.在user目录下新建ws2812.c
2.在include目录下新建ws2812.h
Sourceinsight配置
1.在之前的工程中,移除dht11文件夹
2.添加ws2812文件夹
代码实现
1.在ws2812.c下
(1)创建delay100Ns(),用于精准延时
(2)创建SEND_WS_0(),用于写入0码
(3)创建SEND_WS_1(),用于写入1码
(4)创建Ws2812REST (),用于帧复位
(5)创建Ws2812Write(colours colour),用于颜色写入
相关文章:

5.wifi开发【智能家居:上】,开发准备:智能开关灯,智能采集温湿,智能调彩灯
一。wifi智能家居项目开发 【开发准备1】:继电器控制开发 1.智能开关 器件准备:wifi(esp8266,使用CP2102)继电器 结果: 2.继电器工作原理 (1)继电器是一种自动电气开关 ÿ…...

26523-2022 精制硫酸钴 随笔练习
声明 本文是学习GB-T 26523-2022 精制硫酸钴. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了精制硫酸钴的要求、试验方法、检验规则、标志、标签、包装、运输和贮存。 本文件适用于精制硫酸钴。 注:该产品主要用于…...

企业该如何选择数字化转型工具?_光点科技
随着科技的不断进步和数字化的浪潮席卷全球,企业数字化转型已经成为了保持竞争力和持续增长的关键因素之一。无论企业规模大小,数字化转型都可以提高效率、降低成本、改善客户体验,从而实现更好的业务结果。然而,要成功进行数字化…...

算法与数据结构-Trie树
文章目录 什么是“Trie 树”?如何实现一棵 Trie 树?Trie 树真的很耗内存吗?Trie 树与散列表、红黑树的比较 什么是“Trie 树”? Trie 树,也叫“字典树”。顾名思义,它是一个树形结构。它是一种专门处理字符…...
语音助手开发小记(2023.9.25)
通道问题 在使用函数swr_alloc_set_opts给SwrContext传递输入输出的音频参数时,需要设置通道,这里通道为2,但是通道布局不能传递2.比如AV_CH_LAYOUT_STEREO 实际值为3 如果要计算通道布局的通道数使用函数av_get_channel_layout_nb_channels…...

FastestDet---模型训练
代码:https://github.com/dog-qiuqiu/FastestDet 一、构造数据集 数据集格式YOLO相同,每张图片对应一个txt标签文件。标签格式:“category cx cy wh”,category为类别id,cx, cy为归一化标签框中心点的坐标,w, h为归一化标签框的宽度和高度, .txt标签文件内容示例如下: 0…...

基于SpringBoot的医院管理系统
目录 前言 一、技术栈 二、系统功能介绍 病床信息管理 药房信息管理 个人中心管理 药房信息 病床类别 科室信息管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息互联网信息的飞速发展,医院也在创建着属于自己的管理系统。本文介…...
java图片转pdf ,pdf 导出
pom引入jar <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.0-RC2</version></dependency> 转pdf方法 /*** 使用pdfbox将jpg转成pdf** throws IOException IOException*/pu…...

掌握Go的运行时:从编译到执行
目录 一、Go运行编译简介Go语言的目标和设计哲学运行时环境编译过程小结 二、执行环境操作系统与硬件层系统调用(Syscalls)虚拟内存 Go运行时(Runtime)Goroutine调度器内存管理和垃圾收集网络I/O代码示例:Go运行时调度…...

打造香港最安全便捷的银行,众安银行发布首份技术白皮书
作者:林海宾&李龙 作为香港金融科技的代表,香港虚拟银行通过科技驱动,为客户提供了安全、便捷、普惠的金融服务。在八间持牌的虚拟银行中,众安银行目前在用户数量、存款、资产和收入规模上均处于领先水平。最快120秒线上开户…...

Spring实现简单的Bean容器
1.BeanDefinition,用于定义 Bean 实例化信息,现在的实现是以一个 Object 存放对象 public class BeanDefinition {/*** bean对象*/private Object bean;/*** 存放 (定义)Bean 对象*/public BeanDefinition(Object bean) {this.bea…...
Python15题day13
③continue的好处 break是跳出循环体,continue是跳过continue语句后面的代码块,循环并不停止 题目要求: 使用input函数接受用户的输入,如果用户输入的数值小于等于10,则判断是奇数还是偶数如果数值大于10,则输出“输入…...

聊聊并发编程——多线程之AQS
目录 队列同步器(AQS) 独占锁示例 AQS之同步队列结构 解析AQS实现 队列同步器(AQS) 队列同步器AbstractQueuedSynchronizer(以下简称同步器),是用来构建锁或者其他同步组 件的基础框架&…...

DE0开发板交通灯十字路口红绿灯VHDL
名称:基于DE0开发板的交通灯十字路口红绿灯 软件:Quartus 语言:VHDL 要求: 设计一个十字路口交通信号灯的控制电路。分为两种情况,正常状态和报警状态。 1.正常状态:要求红、绿灯按一定的规律亮和灭&a…...

华为云云耀云服务器L实例评测使用 | 通过程序实现直播流自动分段录制
华为云云耀云服务器L实例评测使用 | 通过程序实现直播流自动分段录制 1. 准备工作2. 环境搭建3. 心得总结 1. 准备工作 随着云计算时代的进一步深入,越来越多的中小企业企业与开发者需要一款简单易用、高能高效的云计算基础设施产品来支撑自身业务运营和创新开发。基…...
前端教程-webpack
官网 webpack webpack基础 视频教程 尚硅谷Webpack5入门到原理(面试开发一条龙)...
white-space几种属性的用法(处理空格)
white-space:normal 文首的空格忽略,文本内部的换行符自动转成了空格。 white-space:nowrap 不换行,即使超出容器宽度 white-space:pre 与原文本一致,空格和换行符保留 white-space:pre-…...
Linux的历史
Linux的历史 前言: 关于Linux,你可能只是听说过它是一款操作系统,也许你还知道它是开源的,但在日常生活中,你更熟悉的是Windows。 那么我们为什么要了解、学习Linux,看完这一篇,你也许可以从…...
软考高级系统架构设计师系列论文真题八:论企业集成平台的技术与应用
软考高级系统架构设计师系列论文真题八:论企业集成平台的技术与应用 一、论企业集成平台的技术与应用二、找准核心论点三、理论素材准备四、精品范文赏析1.摘要2.正文3.总结软考高级系统架构设计师系列论文之:百篇软考高级架构设计师论文范文软考高级系统架构设计师系列之:论…...
[H5动画制作系列] 路径引导动画 Demo
代码参考1: <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>路径引导动画 Demo1</tit…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...