一、需求及项目准备(前期准备)
1、各类的需求 以及复习巩固的东西
2、系统框架图
3、硬连接线
3.1硬件准备
USB充电头(当前实测可用:5V/2.5A)x1、USB转TYPE-Cx1、SU-03Tx1、烟雾报警模块x1、4路继 电器x1、 OLEDx1、 电磁锁x1(5V吸合开锁)、 蜂鸣器x1、小风扇+电机x1(需要自行购买)、面包 板x1、 5号1.5V电池x6 、 2节电池盒x1、4节电池盒x1、带3路led灯小房子(3.3V可驱动, 需自行 购买搭建)
3.2引脚接线信息
3.2.1香橙派的的接线
3.2.2四路继电器的接线
3.2.3 面包板的接线
4、写一个gpiotest.sh的脚本文件(后面把模型搭建好了来测试)
测试结果待补充.....(81节课17:11)
bash -x ./gpio.sh
5、语音模块的配置
6、模块测试
6.1 gpio测试(待补充....)
6.2 oled屏幕测试
I2C模块测试模块可以运行wiringOP中的oled_demo程序
6.3语音模块测试
6.3.1修改串口
6.3.2烧录固件
6.3.3测试
串口调试:
接入香橙派调试:
二、阿里云人脸识别方案
1、接入阿里云平台
在之前树莓派的人脸识别方案采用了翔云平台的方案去1V1上传比对两张人脸比对,这种方案是可行,可 以继续采用。但为了接触更多了云平台方案,在Orange Pi Zero2里, 讲采用人脸搜索1:N方案,通过提 前在阿里云人脸数据库里存储人脸照片后,输入单张已授权人脸图像,与人脸库中人脸图片进行对比, 最终获取比对结果。
1.1 申请人体识别功能
2、创建AccessKey
3、开通人脸识别服务
4、根据技术文档一步一步完成
5、查询人脸样本
5.1调用阿里云的SDK
5.1.1执行命令
5.1.2 导入AccessKey(进入 vi ~/.bashrc #最后的结尾添加)
5.1.3调用示例识别代码
调用结果:
6、C语言调用阿里云的人脸识别Python代码
6.1 python封装成函数
6.2 利用好GPT解决获取分数最大值
6.3 使用C语言调用该函数
三、POSIX消息队列
POSIX消息队列(Message queue)是进程和线程间同步的一种机制。它可以视为一个消息链表,其中每个消息都具有一个优先级,由发送者赋予。有足够写权限的进程可以往队列中发送消息,而有足够读权限的进程则可以从队列中接收消息。这种通信方式在Linux IPC(进程间通信)中非常常用。
与之前学的System V消息队列基本类似,详见笔记
他们最大的区别就是,POSIX消息队列可以实现异步通知
所涉及到的函数见笔记
1、编写函数:mqtest.c进行测试
测试
测试的时候使用 #if 0-->1 注释代码-->打开代码
#endif
2、异步通知(mq_notify)的用法
2.1 struct sigevent和sigval_t sigev_val 的定义如下:
union sigval { /* Data passed with notification */
int sival_int; /* Integer value */
void *sival_ptr; /* Pointer value */
};
struct sigevent {
int sigev_notify; /* Notification method */
int sigev_signo; /* Notification signal */
union sigval sigev_value; /* Data passed with notification */
void (*sigev_notify_function) (union sigval); /* Function used for thread notification (SIGEV_THREAD) */
void *sigev_notify_attributes; /* Attributes for notification thread (SIGEV_THREAD) */
pid_t sigev_notify_thread_id; /* ID of thread to signal
(SIGEV_THREAD_ID); Linux-specific */
};
.