引言
笔者有幸成为华为云-基于北斗和4G Cat1模组的智慧物流开发学习课程的体验官,写下此文记录我的学习过程,与大家做技术交流分享。
第一章 背景介绍与案例开发及实现方案的步骤分析
1.1 背景介绍
传统物流:点到点的单线传输。
智慧物流:(大数据+物联网)
提高物流的运输效率,运输过程可追溯、可查询、可分析。
1.2 智慧物流方案分析
三个方面:
应用侧: 冷链管理开发(与用户交互 软件使用:IoT Stuidio)
使用华为云IoT开发者服务,实现管理系统的快速开发,调用地图控件实时显示位置及轨迹信息。
云侧: 设备接入开发
使用华为云IoT的设备接入及设备管理服务 ,实现物流终端的批量接入及管理。
端侧 定位开发
基于高精度的北斗定位,实现经纬度数据的实时采集,采用温湿度传感器实现冷链货箱中的温湿度数据采集。
1.3 方案开发想法及流程
本次采用“开发板+传感器”,模拟运货车辆,通过华为云IoT平台实现货车数据的采集和处理,并且利用华为云IoT Studio开发智慧物流应用。
学习点:
- 如何用STM32MP1开发板开发一款物流终端
- 如何将传感器数据上报的云端
- 如何在华为云IoT平台接收并解析数据
- 如何快速开发智慧物流管理系统的Web界面
设别侧→平台侧→应用侧
智慧物流开发思维导图
1.4 小章总结
- 笔者认为在项目开始时,将整个项目根据的需求做好分类,分成几个小部分,逐个击破。画一个思维导图理清自己的思路,规划好了“运行逻辑”,对于完成项目十分有帮助,就像有了一盏明灯。
- 了解智慧物流场景的总体实现方案
- 明确实战项目需求,将项目进行分类,逐个击破
- 查阅资料,做好准备
学习资料推荐:
- STM32MP1官方网站与文档:https://wiki.st.com/stm32mpu
- STM32MP1官方公众号推荐视频:https://c.51.diantang.com
- 广和通L610 Cat1通信模组官方网站及文档:https://www.fibocom.com
- 华为云物联网平台:https://www.huaweicloud.com
第二章 环境搭建与基础功能测试
前言
- 开发环境搭建是整个项目开发的基础
- 如果已经有了成熟的环境,无需二次搭建
- 可参考米尔核心板资料进行环境搭建
- 此次所需安装软件较多,需耐心对待
学习成果:
- 熟悉主流交叉编译环境的搭建
- 实现开发板与PC间的通信
- 实现第一个demo程序的运行
2.1 虚拟机与Ubuntu安装、VS code安装及终端软件安装
笔者虚拟机版本:VMware Workstation 16.1.1
笔者Ubuntu版本:ubuntu-20.04.2.0-desktop-amd64
网上有众多的虚拟机Ubuntu安装教程,笔者在此就不赘述了,安装虚拟机后推荐将源换为国内源(默认为国外源,所以国内使用速度会很慢)阿里源和清华源都可以。
在Ubuntu下安装VS Code(Ubuntu环境中安装)
Ubuntu应用商店(Ubuntu software)方式:
官网方式:(Ubuntu命令行安装)
在windows环境中到VS Code官网下载安装包
官网下载链接:https://code.visualstudio.com/Download/
在windows将下载好的.deb文件后拖到ubuntu中,
打开终端 输入命令:sudo dpkg -i
输入用户密码,按回车键,即可完成安装。
终端软件:MobaXterm(Free免费版)(Windows环境下安装)
被誉为全能终端神器,界面美观
- 功能十分强大,支持SSH,FTP,串口,VNC,X server等功能
- 支持标签,切换也十分方便
这里我们用它在Windows下远程连接虚拟机。
下载链接https://mobaxterm.mobatek.net/
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中才会生效(网上教程众多)。
选择此工具是因为其同时支持USB,JTAG/SWD,UART三种串口来烧写程序,还能对未分区存储设备(eMMC/NandFlash/SD Card)进行分区
这里我们使用它来烧写镜像文件。
2.3 交叉编译环境与QT环境的搭建
交叉编译环境我这里使用米尔公司定制的SDK,此SDK提供了一个独立的交叉开发工具链和库(库是根据板子烧写的特制镜像内容而定制的)。
米尔公司定制SDK下载链接:http://down.myir-tech.com/MYD-YA157C/
解压后所示文件如上,将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
命令: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++
下一步我们添加qmake文件(作用:引导到我们之前集成的SDK环境里)
选择旁边的“Qt Version”标签,右侧添加
弹出的路径选择:/opt/st/myir/3.1-snapshot/sysroots/x86_64-ostl_sdk-linux/usr/bin/qmake
“Version name”改为:Qt %{Qt:Version} (YA157C)
然后点击"APPLY"按钮。
安装到这里恭喜你已完成基本的环境的搭建,可以准备联动开发板了。
2.5小章总结
- 环境搭建是所以开发的基础
- 搭建好Windows和Linux的环境,让我们连上开发板,准备动手实践。
技术指导:华为云社区与华为云学院:https://edu.huaweicloud.com/