zl程序教程

您现在的位置是:首页 >  其他

当前栏目

物联网视频监控服务(一)-硬件选择篇

2023-04-18 14:23:23 时间

需求

  • 硬件能进行图像采集及网络传输功能
  • 硬件中的软件开发侧重于使用 熟悉的语言 如go , python
  • 硬件知识的学习 倾向于 软件层面的实现,如PWM,PIN等方式直接通过软件控制相关硬件,不要涉及 电路基础,电路设计等过于偏向硬件的知识;
  • 尽量使用集成度高的硬件,能直接进行编译运行,不能进行电焊,面包板等相关实践;
  • 价格要便宜,百元以内;

需求分析

  • 硬件要经济实惠,具备联网传输功能,图片采集功能,且算力不能太低
  • 硬件要能用python或go进行编写相关软件代码并在硬件运行
  • 硬件要高集成度,拿来即用

硬件调研

树莓派+Grove系统

树莓派简介

此为一个微型的计算机,运行linux系统,上面提供各种引脚,用来接入其他硬件,进行供电控制及数据交互; 以4B版本的树莓派为例,其包括的硬件功能分布如下

Grove系统

  • 引用简介: Grove是一个模块化的标准连接器原型系统。Grove采用积木式组装电子技术。与基于跳线或焊接的系统相比,连接,试验和构建更容易,并简化了学习系统;
  • 优点如下:
  • 不用再使用 焊枪进行电线焊接,改为基于拔插式;
  • 不用过于考虑 2个硬件间 的连错线问题,人家提供的每个硬件会告诉用户怎么接线;
  • 不用担心人家提供的硬件 在软件层怎么调用的问题,人家提供 各个语言的包,直接调用包里的函数就行对硬件进行控制及数据交互;
  • 硬件不用担心垄断价格贵等问题,电路图都是开源的,哪都能买到;
  • 总结:就像人家说的,简化了学习系统,让大家更偏向于软件层实现,不过于关注硬件底层;

总结

  • 优点: 两者结合使用,外加摄像头硬件便可满足需求,且可以使用python语言进行开发调试,简化硬件知识学习成本,且 树莓派算力强大,甚至将涉及到opencv的大量消耗算力的任务也可完成; 在网络良好时,甚至能提供较高的视频FPS;
  • 缺点: 太贵了,不符合需求

Jetson Nano

简介

  • 此为 NVIDIA(英伟达) 开发生产的 一个微型计算机,和树莓派差不多,只是此硬件的GPU比树莓派强大一些,能进行AI相关应用;

总结

  • 此硬件也能结合 Grove使用,缺点 是 价格比树莓派还贵

Arduino

简介

  • Arduino平台提供 不同类型的 arduino开发板,包括 usb,引脚,微控制器,稳压器等等基础功能,保证基础的插电即可编程使用; 以 Arduino UNO 开发板为例,其电路如下
    在这里插入图片描述
  • Arduino平台使用C/C++编程语言,提供可以跨平台的IDE(代码编辑器),可以写代码,编译上传到硬件中;
  • Arduino平台提供 封装好的C/C++库文件,通过调用库文件里的函数即可操作硬件,非常方便易学;
  • Arduino可以结合Grove套件共同使用,Grove各种硬件(如传感器)对应提供了Arduino平台的库文件,因此也是通过函数调用即可控制硬件,且通过Grove提供的拔插式线缆,无需再使用 面包板;
  • Arduino平台未来会支持MicroPython语言;

总结

  • C/C++语言基础编程没问题
  • 价格不符合需求,但是低于树莓派;

ESP32-CAM开发套件

简介

在这里插入图片描述

  • esp32-cam开发板 是 安信可公司开发的一个 摄像头模块,其包含功能有 wifi联网(2.4G),图像采集,闪光灯,支持TF卡,有可观的运算能力; 是一种单片机,和Arduino开发板相似,和上面的树莓派等不在一个层级,无法运行linux系统;只能 按照固定的程序运行;
  • esp32-cam串口通信板及烧录板 能扩展开发板与其他硬件通信能力(增加引脚)及烧录新固件及提供电力支持;

总结

  • 此硬件满足需求,价格便宜,尺寸秀珍,无需过多关注硬件问题;

软件调研

前言

  • 硬件选择了esp32-cam,那么在此基础选择 编程语言及IDE

Arduino IDE

用法

  • 从Arduino社区下载相关esp32包后,能够编译上传到esp32单片机上;
  • 使用C/C++语言;

总结

  • 不使用此方式

MicroPython+Thonny+Pycharm

  • MicroPython语言是在python3的基础上 进行简化适配到单片机(微控制器),精简删除了python3的一部分标准库,如requests;语法和python3相同;
  • 编译上传到单片机的IDE用Thonny,
  • 代码编写的IDE用Pycharm;因为Thonny代码编辑器太过于初级,代码提示,自动补全等等均没有;

总结

使用此方式,python熟悉,编辑器只需简单学习

最终决定

  • 硬件部分 使用ESP32-CAM开发套件;总价 80元左右;
  • 软件部分 使用 MicroPython+Thonny+Pycharm 进行开发;