华为云IoT智慧物流案例01 | 背景介绍与环境搭建

引言

笔者有幸成为华为云-基于北斗和4G Cat1模组的智慧物流开发学习课程的体验官,写下此文记录我的学习过程,与大家做技术交流分享。

第一章 背景介绍与案例开发及实现方案的步骤分析

1.1 背景介绍

传统物流:点到点的单线传输。
智慧物流:(大数据+物联网)
提高物流的运输效率,运输过程可追溯、可查询、可分析
传统物流智慧物流

1.2 智慧物流方案分析

三个方面:

应用侧: 冷链管理开发(与用户交互 软件使用:IoT Stuidio)
使用华为云IoT开发者服务,实现管理系统的快速开发,调用地图控件实时显示位置及轨迹信息。

云侧: 设备接入开发
使用华为云IoT的设备接入及设备管理服务 ,实现物流终端批量接入及管理

端侧 定位开发
基于高精度的北斗定位,实现经纬度数据的实时采集,采用温湿度传感器实现冷链货箱中的温湿度数据采集。
智慧物流方案分析

1.3 方案开发想法及流程

本次采用“开发板+传感器”,模拟运货车辆,通过华为云IoT平台实现货车数据的采集和处理,并且利用华为云IoT Studio开发智慧物流应用。

学习点:

  1. 如何用STM32MP1开发板开发一款物流终端
  2. 如何将传感器数据上报的云端
  3. 如何在华为云IoT平台接收并解析数据
  4. 如何快速开发智慧物流管理系统的Web界面

设别侧→平台侧→应用侧
方案开发想法及流程
智慧物流开发思维导图
智慧物流开发概述

1.4 小章总结

  • 笔者认为在项目开始时,将整个项目根据的需求做好分类,分成几个小部分,逐个击破。画一个思维导图理清自己的思路,规划好了“运行逻辑”,对于完成项目十分有帮助,就像有了一盏明灯
  • 了解智慧物流场景的总体实现方案
  • 明确实战项目需求,将项目进行分类,逐个击破
  • 查阅资料,做好准备

学习资料推荐:

第二章 环境搭建与基础功能测试

前言

  • 开发环境搭建是整个项目开发的基础
  • 如果已经有了成熟的环境,无需二次搭建
  • 可参考米尔核心板资料进行环境搭建
  • 此次所需安装软件较多,需耐心对待

学习成果:

  1. 熟悉主流交叉编译环境的搭建
  2. 实现开发板与PC间的通信
  3. 实现第一个demo程序的运行

开发环境搭建

2.1 虚拟机与Ubuntu安装、VS code安装及终端软件安装

笔者虚拟机版本:VMware Workstation 16.1.1
笔者Ubuntu版本:ubuntu-20.04.2.0-desktop-amd64
网上有众多的虚拟机Ubuntu安装教程,笔者在此就不赘述了,安装虚拟机后推荐将源换为国内源(默认为国外源,所以国内使用速度会很慢)阿里源和清华源都可以。
虚拟机与ubuntu的安装
笔者Ubuntu环境截图
在Ubuntu下安装VS Code(Ubuntu环境中安装)
Ubuntu应用商店(Ubuntu software)方式:
应用商店

官网方式:(Ubuntu命令行安装)
在windows环境中到VS Code官网下载安装包
官网下载链接:https://code.visualstudio.com/Download/
官网方式
在windows将下载好的.deb文件后拖到ubuntu中,
打开终端 输入命令:sudo dpkg -i
输入用户密码,按回车键,即可完成安装。
官方vs code
官方vs code

终端软件:MobaXterm(Free免费版)(Windows环境下安装)
被誉为全能终端神器,界面美观

  1. 功能十分强大,支持SSH,FTP,串口,VNC,X server等功能
  2. 支持标签,切换也十分方便
    这里我们用它在Windows下远程连接虚拟机。
    下载链接https://mobaxterm.mobatek.net/
    MobaXterm

2.2 烧写工具安装

烧写工具使用开发板ST官方烧写工具:STM32CubeProgrammer(需要Java环境)
下载链接:https://www.st.com/zh/development-tools/stm32cubeprog.html
Java环境下载链接:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
Java的jdk下载安装好后要记得将bin目录添加到环境变量Path中才会生效(网上教程众多)。
STM32CubeProgrammer
STM32CubeProgrammer
选择此工具是因为其同时支持USB,JTAG/SWD,UART三种串口来烧写程序,还能对未分区存储设备(eMMC/NandFlash/SD Card)进行分区
这里我们使用它来烧写镜像文件

2.3 交叉编译环境与QT环境的搭建

交叉编译环境我这里使用米尔公司定制的SDK,此SDK提供了一个独立的交叉开发工具链和库(库是根据板子烧写的特制镜像内容而定制的)。

米尔公司定制SDK下载链接:http://down.myir-tech.com/MYD-YA157C/
定制SDK
定制SDK
解压后所示文件如上,将sdk文件夹移动到ubuntu中(自己创建opt/st路径文件夹 命令:mkdir opt/st -p)
在Ubuntu进入sdk文件夹,看到自动构建的脚本文件.sh文件
meta-toolchain-qt5-openstlinux-eglfs-myir-x86_64-toolchain-3.1-snapshot.sh

执行命令:./meta-toolchain-qt5-openstlinux-eglfs-myir-x86_64-toolchain-3.1-snapshot.sh(文件名输入前几个字符后可按Tab自动补全)
提示键入Entry后,按下回车键
提示确认,输入大写Y后按回车
提示输入用户名密码(也就是你Ubuntu用户登陆密码),输入后按回车即可自动完成构建
构建成功
构建成功后会显示如图log

设置环境变量
设置环境变量
命令:source /opt/st(后面一直Tab自动补全)
回车完成设置

输入命令:$CC --version
测试是否安装完gcc交叉编译链工具
测试交叉编译链
如图上所示有查询到对应的版本号,表示gcc安装成功

接下来我们安装Qt Creator(开发上位机)
安装Qt Creator
官网链接:https://download.qt.io/development_releases/qtcreator/4.1/4.1.0-rc1/
工具包:
工具包Qt
Qt
按照提示完成下载(需要注册Qt账号)
qt账号注册
qt安装完成
安装完成后我们配置其环境变量
用命令行在终端打开Qt
命令行打开Qt
命令:qtcreator-4.12.0-rc1/bin/qtcreator.sh &
依次点击工具 -> 选项,出现选项对话框,在左边点击Kits,右边选择“编译器”标签。
编译器
点击右侧的添加,弹出窗口后
Name:YA157C-GCC
(填自己的,找到自己前面Qt安装时候的3.1-snapshot的位置,下方为笔者)
Compiler:/opt/st/myir/3.1-snapshot/sysroots/x86_64-ostl_sdk-linux/usr/bin/arm-ostl-linux-gnueabi/arm-ostl-linux-gnueabi-gcc
按照相同的方式添加G++
Name:YA157C-G++
Compiler:/opt/st/myir/3.1-snapshot/sysroots/x86_64-ostl_sdk-linux/usr/bin/arm-ostl-linux-gnueabi/arm-ostl-linux-gnueabi-g++
gcc和g++

下一步我们添加qmake文件(作用:引导到我们之前集成的SDK环境里)
选择旁边的“Qt Version”标签,右侧添加
弹出的路径选择:/opt/st/myir/3.1-snapshot/sysroots/x86_64-ostl_sdk-linux/usr/bin/qmake
qmake
“Version name”改为:Qt %{Qt:Version} (YA157C)
然后点击"APPLY"按钮。

安装到这里恭喜你已完成基本的环境的搭建,可以准备联动开发板了。

2.5小章总结

  • 环境搭建是所以开发的基础
  • 搭建好Windows和Linux的环境,让我们连上开发板,准备动手实践。

技术指导:华为云社区与华为云学院:https://edu.huaweicloud.com/

(完)