饮水机教程
文章平均质量分 90
wushusuipianxyunni
能力有限,非常抱歉
展开
-
饮水机加入Onenet联网代码实操
在上一讲, 我们已经分析了 饮水机各个功能的调试方法, 并且确定了需要调试的变量, 这次我们就进行Onenet的代码实操, 加入联网工程代码, 主要是走个流程.我们加入联网, 主要是把这些变量,上传到服务器, 让我们可视化的实时的观察单片机的内部变量状态。把变量上传到服务器实时观察, 就取代了oled在屏幕上, 观察变量同时我们要修改其中的变量, 所以我们就要在服务器下发修改变量的值, 然后单片机拆包解析后, 赋予本地变量。服务器下发指令, 就代替了, 调试时候的赋予变量和按键赋值, 更具有灵活性。原创 2024-08-27 18:53:11 · 683 阅读 · 0 评论 -
饮水机复杂交互功能联网调试
饮水机我们从最开始的放水和加热, 逐渐拓展到保温功能, 童锁功能, 红外检测功能, 对于这些复杂的交互功能, 我们如果通过按键进行调试, 会极大的增加我们的开发时间和成本, 如果我们频繁的进行烧录, 则如果涉及到一些中间变量, 则无法进行调试.大家会想到串口, 串口也是可以的, 但是串口发送接受, 太频繁的话, 则会眼花缭乱, 如果我们能够成为上帝, 在程序运行的时候修改并查看变量, 之间的交互状态, 则会方便我们的开发.原创 2024-08-26 22:04:29 · 937 阅读 · 0 评论 -
饮水机开水前加入童锁判断
本博客修改完的代码工程:https://wwyz.lanzoul.com/iKHks286941g1.定义童锁变量与结构体2.定义童锁变量3.在out_water.h, 包含定义童锁与红外变量的文件4.在out_water.c里面, 出水函数里, 加入童锁判断, 如果锁住, 则不开水调试方法烧录工程, 然后触发 PA5处的按键或红外 , 我们通过修改初始化的童锁, 观看PA7处的小灯是否可以亮, 童锁加入底层, 进一步保证安全性. 后续我们联网调控童锁, 并且开关童锁的时候, 加入更多的 界面原创 2024-08-22 23:34:26 · 172 阅读 · 0 评论 -
预警系统OLED挑选模式
我们预警系统对于界面的需求, 也很简单, 在普通模式下, 可以显示家居信息, 通过按键交互可以, 显示其他界面. 在预警系统警报的时候, 可以应急显示特定的预警界面. 当警报解除的时候,可以自动回到之前的界面.原创 2024-08-21 16:58:59 · 760 阅读 · 0 评论 -
利用队列收集单双击和长按按键
当我们仅仅通过在while循环里面进行判断按键类型的标志位, 然后进行操作的时候, 我们的最小例程很小, 所以能够实时的检测到按键,从而触发实验现象.假如我们此时进入了一个事件处理函数呢?并且这个这个函数的操作是不可被打断的, 如果此时我们重复按下多次按键, 标志位只能存放一个数值, 等事件处理完, 我们再处理的时候, 只能处理最后一次按下的按键类型.最常见的就是, 我们使用遥控器, 我们连着按下了多个下箭头, 因为电视太卡, 导致只向下一次, 会极大影响操作体验.原创 2024-08-20 20:16:25 · 1429 阅读 · 0 评论 -
OLED整体刷新到结合switch刷新方式演变
OLED刷新模式, 其实很简单, 就和prinf输出一样, 只是我们这里利用OLED来输出我们所需要的东西了。至于OLED单独整体刷新, 还是利用switch刷新, 都是形而上学, 形的东西, 至于底层, 江协科技大佬已经帮我整理好了, 我们是站在巨人的肩膀上呦。原创 2024-08-20 17:53:28 · 705 阅读 · 0 评论 -
按键收集单击,双击和长按
在我们生活中, 按键是必不可少的, 不同的电器, 有不同的按键, 但是按键总有不够用的时候, 那么给与一个按键赋予不同的功能,就必不可少了. 一个按键可以通过按下的时间长短和频次, 来定义其类型。一次按键收集, 都是在一个按键收集周期的, 比如500毫秒内, 我要收集一个按键类型, 在500毫秒内,按键按下一次按键, 那么到达500毫秒后, 我们就宣布答案, 此次按键是单击。同理, 在500毫秒内, 如果我们按下了, 两次按键,那么就是双击, 以此类推。那长按呢?原创 2024-08-19 20:36:46 · 748 阅读 · 0 评论 -
放水功能加入红外检测
一切为了安全, 我们本可以直接通过按键放水的, 但是我们此时, 还是为了安全, 所以加入了红外检测杯子后, 才能按下按键开水和设置童锁锁住后不能放水。原创 2024-08-18 16:09:47 · 845 阅读 · 0 评论 -
加热系统加入达温即停和保温功能
只开启一次加热功能, 下次开启加热,需用户手动确认。 我们前一节, 是通过控制io口, 直接控制加热的开关, 但是这太简单粗暴了, 如果只是那样, 和普通的家居电器,是没区别的, 我们想要更智能一点, 就是像咱们自己家的热水壶那样, 水烧滚了(水温达到100摄氏度), 就自动停止了.我们通过传入水温阈值和水温, 通过对比判断, 如果水温没达到阈值, 就开启加热, 如果水温达到阈值, 就关闭加热(注意,我们底层写的有判断开关加热的状态, 所以不会重复开关器件)水温达到, 关闭加热, 水温不到,加热保温。原创 2024-08-17 22:03:10 · 401 阅读 · 0 评论