开源一个Homekit插座
实物图展示: 一直想制作一个适用于homekit的智能开关用来控制强电设备,原理并不难但是由于各种原因一直鸽了又鸽,苹果开源了homekit的通信协议,又有大佬将其移植到Arduino上,得益于本菜鸟也可以制作适用于苹果家庭的智能设备。已经完成的homekit设备:homekit台灯转接板homekit插座homekit风扇今天来记录一下homekit
实物图展示: 一直想制作一个适用于homekit的智能开关用来控制强电设备,原理并不难但是由于各种原因一直鸽了又鸽,苹果开源了homekit的通信协议,又有大佬将其移植到Arduino上,得益于本菜鸟也可以制作适用于苹果家庭的智能设备。已经完成的homekit设备:homekit台灯转接板homekit插座homekit风扇今天来记录一下homekit
先上视频: 完成思路:1、先去百度智能云免费创建一个图片识别应用“点击我”,创建成功后可以获得API Key与Secret Key,后续我们将通过这两个key获取access_token,很简单,通过查看官网文档可以知道获取的方法,post获取之后就可以在返回的json字符串中看到,我们将它保存下来后续使用,需要注意的是access_token的有效期为30天,需要每30天进行定期更换。2、首先新
先上代码:# encoding:utf-8 import requests import base64 import cv2 from xpinyin import Pinyin p = Pinyin() img_src=r"C:\Users\TSK\Desktop\test.png" display_img = cv2.imread(img_src)
第十四课 二进制信号量#include "freertos/semphr.h" xSemaphoreCreateBinary();SemphoreHandle_t Handle;//二进制信号量Handle = xSemaphoreCreateBinary();//创建xSemaphoreGive(Handle);//释放在任务中:xSemaphoreTake(Handle
第十一课 队列集合多个Task写队列数据,一个Task读取队列数据 Queue Set新建两个消息队列,句柄给两个发送函数,新建一个QSet句柄,使用xQueueAddToSet分别添加两个消息队列到Qset,在接收函数中,算了···这个是用的时候看教程吧第十二课 队列邮箱Queue Mainbox与队列集合相反,一个写,多个读邮箱是保持数据,发送方会覆盖数据,接收方不能移除数据,所有函数使用一个
第八课 Task看门狗中断看门狗:在任务中代码运行时间过长,会触发中断看门狗,中断看门狗使用的是定时器一,需要配置interrupt watchdog 与进行初始化任务看门狗:针对任务,也可以重启整个系统。默认监控idle_task 5s 如果将任务优先级确定到0,则不会触发看门狗,因为与idle任务具有相同的优先级,idle可以持续运行不会造成看门狗触发添加自定义看门狗 添加头文件"esp_ta
1、#include<cmath> #include<cstdio> 用这种方法来调用C语言中的函数2、namespace 名字空间,防止命名重复::叫做限定调用符using namespace X :引入整个名字空间using X:: name 使用单个名字X::name 在程序中加上名字空间前缀3、#include<iostream>using names
我们在大学课程上学习单片机时,会使用一个叫做Keil的工具,完成代码的编辑之后,可以通过点击几个按钮来选择编译,编译并且生成固件,重新编译并且生成固件,这三个是我们最常用的按钮,当时在上课时,很多老师并不会讲清楚三个按钮被点击后具体执行的过程,玩单片机也有两三年,今天大概谈一谈自己的理解。举例几个常用的编辑器:1、适用于x86的:gcc2、适用于arm-linux的:arm-linux-gnuea
以下笔记基于esp32-idf第四课 任务的优先级优先级数值为0~MAX-1 MAX=25如果设定超过最大值,则默认为最大值,设定最大值时最大不能超过32,优先级越大优先级越高,但是并不是越大越好,在某些情况下可能会阻塞其他任务运行,导致其他任务运行不了使用uxTaskPriorityGet获得优先级,传入参数为任务句柄。相同优先级的任务共享相同时间片,谁先创建谁运行不同优先级运行优先级别高的任
本freertos笔记基于esp32-idf开发第一课 系统启动流程第一阶段 bootloader第二阶段 bootloader第三阶段 应用程序入口在components文件夹下有bootloader两个阶段的源代码、也有freertos的源代码 启动流程://esp_system ENTRY(call_start_cpu0) SYS_START_FN g_startup_fn start_cp