热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于正点原子IMX6ULL开发板的智能仓储系统:嵌入式Linux项目实践

目前,制造企业市场竞争日益激烈,提高生产效率、降低运营成本,对于企业来说至关重要。为此基于、ZigBee技术、嵌入式linux技术、并结合web服务器及单片机stm32,可以实现仓

基于正点原子的IMX6ULL开发板的智能仓储项目

提示:该项目根据华清远见智能仓储项目改版,将他的A9开发板换成了自己的IMX6ULL开发板。同时等我将该项目整个流程完成之后,会为大家附上适配正点原子linux开发板的全部代码(代码资料和视频教程私聊)
视频教程

视频教程
相应课程配套源码

本人其他项目链接基于linux的智能仓储项目
基于Qt的人脸识别
基于STM32的智能家居
移植人脸识别到Linux开发板上
基于正点原子的IMX6ULL开发板的智能车载系统(Qt)



PS:华清远见这个项目真的很不错,适合自学转行的同学好好学习一波,我就是机械转行自学的



文章目录


  • 基于正点原子的IMX6ULL开发板的智能仓储项目

  • 前言

  • 一、项目系统概述

  • 二、整体流程图如下

  • 三、项目效果

  • 总结



  • 前言

    提示:这里可以添加本文要记录的大概内容:

    目前,制造企业市场竞争日益激烈,提高生产效率、降低运营成本,对于企业来说至关重要。为此基于、ZigBee技术、嵌入式linux技术、并结合web服务器及单片机stm32,可以实现仓库货物的入库、盘点、出库、仓库环境管理、实现远程实时监控、远程环境控制,并集报警提醒等多种功能于一身,实现了真正的智能,技术积累雄厚,入门门槛高,但是操作简单,方便快捷。



    提示:以下是本篇文章正文内容,下面案例可供参考


    一、项目系统概述

    智能仓储是基于Linux C编程和HTML界面编程,通过stm32作为终端仓储环境的采集,结合RFID和数据库将仓库实时的货物数据存储到数据库当中,并将仓库数据和环境数据提交给主机做处理,主机将环 境信息实时的更新到网页上,而将仓库的货物出入库的信息保存到数据库当中。当检测到的环境信息低于设定值时,比如仓库的光照较暗,那么系统主机端自动控制远程的LED灯开启,增加光照的强度,改善环境信息。
    如果仓库内环境温度高于某一值,则自动开启蜂鸣器报警,并开启风扇进行换气操作,降低仓库内的环境温度,如果温度持续升高。其硬件整体环境如下:将stm32采集的数据封装为一个环境信息结构体,然后通过zigbee将结构体数据发出,zigbee的接收端使用usb转串口模块,通过驱动的编写,将zigbee接收端在linux开发板上识别为一个串口节点。然后开发板通过读取节点的信息即可处理来自32开发板的数据,然后通过linux开发板将数据发送到网页端。


    二、整体流程图如下


    接下来就是对流程图的介绍。
    上面介绍了linux开发板读取到了zigbee传来的数据,然后通过pthread_transfer线程将环境信息结构体填充,然后将数据通过pthread_refresh线程刷新到网页。这里就存在一个问题了主线程中是C语言编写的,而网页是用html语言显示的。这就涉及到了C语言与html语言的通信。所以本项目在正点原子linux开发板移植了boa服务器。通过boa服务器和CGI应用程序将C与html形成交互(中间还有一层cgi应用程序)


    三、项目效果


    下图为网页显示部分,通过账号密码登录后来到主界面,主界面又可分为4个部分,分别为历史照片、实时监控(此部分是将摄像头采集到的数据通过FFmpeg推流mgpeg-streamer和nginx服务器作为流媒体服务器,然后将视频流信息拉流到网页端口,后面我会写博客详细介绍)、M0控制部分(此部分是通过消息队列,将网页下发的数据来控制linux硬件,比如led,beep等)、环境信息(该部分是将stm32部分采集到的数据上传到linux板子之后,通过pthread_transfer线程将数据填充到环境信息结构体部分,该环境信息和网页通信采用了共享内存的方法)

    下图为M0控制部分
    通过网页下发命令到cgi程序,然后cgi与主进程进行交互来控制板子上面的硬件

    下图为stm32传过来的环境信息

    可以将32采集到的环境信息通过linux板子上传到网页端


    以上网页就是我暂时移植好的项目,目前实现了通过网页端控制linux板子上的硬件,然后将stm32传上来的数据显示到网页上,将摄像头采集到的数据推流到网页上还没实现,后续接着实现


    总结

    提示:这里对文章进行总结:

    其实该项目的应用场景不要局限于智能仓储,当你把这一套项目跑通之后,你会发现无论是什么板子的硬件采集到的数据都可以通过无线通信的方式将数据上传到linux开发板,然后让Linux开发板单单作为一个服务器来协调数据的上传和下发,只需要更改网页显示不同的数据,和最下层的硬件采集不同的数据来达到不同应用场景的目的
    与此同时,该项目相对比较复杂,使用了线程、线程间通信、信号量、消息队列、共享内存、互斥锁、网页、无线通信等模块的知识,是一个综合项目,能够帮助我们掌握UC的知识,很适合非科班更改应用场景后作为面试的项目,且该文章只是单纯的介绍了本人做出来的项目效果和大体框架,里面的细节很多都没有表述,因此欢迎大家关注收藏和指正,我接下来的博客会详细的介绍没一部分的详细内容。到时候会附上代码



    推荐阅读
    • Oracle优化新常态的五大禁止及其性能隐患
      本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
    • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
    • Nginx使用AWStats日志分析的步骤及注意事项
      本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
    • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
    • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
    • [译]技术公司十年经验的职场生涯回顾
      本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
    • 如何用UE4制作2D游戏文档——计算篇
      篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
    • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
    • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
      本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
    • 计算机存储系统的层次结构及其优势
      本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
    • 一句话解决高并发的核心原则
      本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
    • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
    • 知识图谱——机器大脑中的知识库
      本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
    • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
    • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
    author-avatar
    ccmmm
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有