思路: 阿里云图像识别 + 语音模块实现
主程序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h> // access()
#include <error.h> // remove()
#include "uartTool.h"
#include "garbage.h"
static int detect_process(const char *process_name) // 判断某个进程是否在运行
{
int n = -1;
FILE *strm;
char buf[128] = {0};
sprintf(buf, "ps -ax | grep %s|grep -v grep", process_name); // 组合进程名字,为完整命令
if ((strm = popen(buf, "r")) != NULL) // 通过 popen 的 方式去执行
{
if (fgets(buf, sizeof(buf), strm) != NULL) // 执行完后 判断是否能拿到正确的进程号,空格分开,第一个字符串就是进程号
{
n = atoi(buf); // 拿到就放回 进程号,不然 返回 -1
}
}
else
{
return -1; // 执行失败
}
pclose(strm);
return n;
}
int main(int argc, char **argv)
{
int serial_fd = -1;
int len = 0;
int ret = -1;
char *category = NULL;
unsigned char buffer[6] = {0xAA, 0x55, 0x00, 0x00, 0x55, 0xAA}; // 初始化 buffer[2] -- 关联垃圾类型
garbage_init(); // 先初始化 阿里云接口
ret = detect_process("mjpg_streamer"); // 用于判断mjpg_streamer服务是否已经启动
if (-1 == ret)
{

该博客介绍了一个结合阿里云图像识别和语音模块的项目。通过C语言编写主程序,利用串口通信,判断进程是否运行、初始化阿里云接口和串口设备。等待语音输入,启动识别后拍照,经阿里云接口进行图像识别获取垃圾类型,将结果发送到串口并清理缓存。
最低0.47元/天 解锁文章
5365

被折叠的 条评论
为什么被折叠?



