垃圾分类子项目-识别垃圾类型

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

思路: 阿里云图像识别 +  语音模块实现

主程序:

#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)

    {

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值