开源一个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)
使用ESP32-IDF开发时,最简单的方法就是使用printf();函数输出调试信息,但是IDF给了我们更优秀的信息调试装置,库中有以下五种LOG输出函数,详细度从最低到最高。ESP_LOGE - 错误(最低) ESP_LOGW - 警告 ESP_LOGI - 信息 ESP_LOGD - 调试 ESP_LOGV - 详细(最高) 考虑到线程安全,在F
第十四课 二进制信号量#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
看到B站很多大佬都在单片机上运行flappy bird小游戏,自己也想试一试,顺便提升自己的编程思路! 开发平台:platform平台(不得不说这是一个好东西)+Arduino框架 硬件:ESP32、ILI9341 编程思路: 新建水管结构体,包含水管参数与水管更新删
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