IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 矩阵动力-基于web控制的灌溉小车 -> 正文阅读

[嵌入式]矩阵动力-基于web控制的灌溉小车

Matrix-Dynamics

项目地址:https://gitee.com/que-haohua_admin/matrix-dynamics

此项目为北京林业大学-东方瑞通实训项目,以下为项目详情:

一、项目平台 :fa-star:

1.基本要求

  1. ubuntu20.04 版本云服务器 (本项目使用服务器 x 3)
  2. MySQL8.0 版本云数据库
  3. stm32
  4. esp32 cam s2
  5. openmv4 plus

2.开发软件

  1. vscode
  2. pycharm 2022专业版
  3. solidworks 2020
  4. keil5MDK

二、项目目录 :fa-th-list:

.
├── Back-end              后端代码(前端已集成)                       
│   ├── app.py
│   ├── blueprints
│   ├── config.py
│   ├── decorators.py
│   ├── exts.py
│   ├── migrations
│   ├── models.py
│   ├── MQTT
│   ├── Mqtt_demo
│   ├── __pycache__
│   ├── requirements.txt
│   ├── static
│   ├── templates
│   ├── test.txt
│   └── venv
├── Front-end              前端代码
│   ├── about
│   ├── devicebounded1
│   ├── devicebounded2-4
│   ├── exit
│   ├── get_back_password
│   ├── index
│   ├── purchase
│   ├── register_1
│   └── team
├── Hardware               硬件代码
│   ├── MQTTWcarV1_demo    esp32cam代码
│   ├── openmv             openmv4plus部分代码
│   └── WaterCar_STM32     stm32代码
├── LICENSE
├── Mqtt_demo              mqtt通讯demo
│   ├── pub.py
│   ├── __pycache__
│   ├── sub.py
│   └── test.py
├── README.md
├── Solidworks-drawings    小车solidworks建模文件
│   ├── 9G舵机.SLDPRT
│   ├── 成品1
│   ├── 履带底盘.SLDPRT
│   ├── 水泵.SLDPRT
│   ├── 液位传感器.SLDPRT
│   ├── ESP32-CAM.SLDPRT
│   └── GPS天线.SLDPRT

三、服务器部署

本项目皆使用腾讯云服务器

1.mqtt服务器

2核2G即可

首先要在服务器开启1883和18083端口

打开终端执行以下命令

wget https://www.emqx.io/downloads/broker/v4.0.5/emqx-ubuntu16.04-v4.0.5.zip

解压EMQ X Broker

unzip emqx-ubuntu16.04-v4.0.5.zip

进入解压出来的emqx文件夹,使用命令启动即可

sudo ./bin/emqx start

在浏览器输入服务器公网ip加18083即可进入后端管理界面

ip:18083

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nSKNWndK-1661775470551)(img/emqx.png)]

默认账号为admin

密码为public

2.obs服务器

2核2G即可

首先要在服务器开启1935和8090端口

(1)srs搭建服务器

打开终端执行以下命令

git clone https://github.com/ossrs/srs

修改max_connections 1000;为max_connections 100;

8080端口修改为8090

注意:若不修改此值后面编译中会报错

vi srs/trunk/conf/srs.conf
cd srs/trunk

注意:在mac 系统中./configure 时需要添加 --osx

./configure --osx  

启动srs服务器

./objs/srs -c conf/hls.conf

(2)使用OBS推流

打开obs studio

url为:

rtmp://ip:1935/live

流密钥为:

livestream

(3)播放m3u8流媒体

可以使用以下两种方式进行播放

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
 </head>
 <body>
 <video src="http://ip:8090/live/livestream.m3u8" controls="controls" width="400" height="300"></video>
 </body>
 </html>
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>videojs-contrib-hls embed</title>

  <link href="https://unpkg.com/video.js/dist/video-js.css" rel="stylesheet">
  <script src="https://unpkg.com/video.js/dist/video.js"></script>
  <script src="https://unpkg.com/videojs-contrib-hls/dist/videojs-contrib-hls.js"></script>
  
</head>
<body>
  <h1>Video.js Example Embed</h1>

  <video id="my_video_1" class="video-js vjs-default-skin" controls preload="auto" width="640" height="268" 
  data-setup='{}'>
    <source src="http://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/bipbop_16x9_variant.m3u8" type="application/x-mpegURL">
  </video>
  
  <script>
  </script>
  
</body>
</html>

3.database服务器

租用腾讯云数据库

注意要和web服务器处于同一区域

mysql8.0版本

1核1G即可

4.web服务器(主服务器)

建议配置4核8G

服务器python版本为3.8

部署流程

首先服务器开启5000端口

在服务器中克隆仓库

git clone https://gitee.com/que-haohua_admin/matrix-dynamics.git
cd matrix-dynamics/Back-end

安装依赖

pip install -r requirements.txt

进入config.py

更改邮箱配置和数据库配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ckHSi15z-1661775470553)(img/mysql.png)]

进入Back-end/blueprint/user.py

更改mqtt服务器配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kjnO8Ebw-1661775470555)(img/mqtt.png)]

启动web端

python3 app.py

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q7WJah82-1661775470556)(img/app.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9c8eG5XT-1661775470557)(img/%E9%A6%96%E9%A1%B5.png)]

四、硬件部署

1.物料统计

小车整体采用成品改装+3D打印的方式进行,电路采用飞线,速度快。

后期制作PCB,进行封装集成。

名称数量价格用途
SG90舵机25.43喷头pitch、yaw轴
坦克底盘(走闲鱼二手)136.9小车底盘
ESP32-CAM127.55小车视频推流+无线通信
STM32F103C6T618底盘主控(72M主频 32k内存)
水泵12.6喷水
隔离MOS管FR120N11.1水泵控制
软管11.15供水
L9110S 双路H桥11.5驱动底盘电机
GPS112.1提供位置信息
无线通信JDY-4014.5遥控器遥控使用
动力电池3.7v2000ma128.99考虑替换电池。
打印耗材等杂料费*10外壳,机械结构等
合计145.25(不包括运费)

2.通讯协议帧

1.小车控制报文(MQTT)

以下 水泵 和 电机锁 的1 为字符1或者 数字1 均可以!

该报文至少以 1hz频率发送,以保持小车的运动,一旦停止发送,小车立刻停车

帧头小车ID前进速度转向速度二值量控制帧尾
CTR%02d0-90-9详见下方\n

按字符:

0-2CTR
3-4控制小车的ID
5char 前进速度 0停车 1-5前进 6-9 后退
6char 转向速度 0直走 1-4(慢-快)左转 6-9右转(慢-快)
7char 发1(并且无其它电机操作)解除电机锁,电机上电
8char 1开水泵 0关水泵

2.小车回报报文(MQTT)

以下无特殊强调,均按字符串(String)处理,所有符号均为英文半角符号

其中%d表示以十进制发送(与C语言一样)

_代表下划线

帧头GPS信息车辆状态信息温湿度帧尾
ID%2d_GPS:%s_Car:%s_T%2.1f_H%2.1f_Ready/Error%2d

说明:

● 帧头:回传小车ID(每个小车ID唯一)

● 小车MAC:车辆ESP32 MAC地址,具有全球唯一性。

● GPS信息:详见下方 GPS信息%s

● 车辆状态信息:详见下方 车辆状态信息%s

● 温湿度:车载DHT11测量的温湿度信息。

● 帧尾:返回Ready表示车辆准备完成,返回Error表示车辆硬件故障,故障代码%d详见下方 故障代码

GPS信息%s:

默认采用WGS84坐标系统

/代表或

经度(东/西)经度数据纬度(南/北)纬度数据GPS授时(时:分:秒)
ON/OFF_ON/OFF_Wt:%3d_D:3.2f_GTime:%2d%2d%2d
车辆状态信息%s:

_表示下划线

/表示或,冒号后面的字符串由/分割,表示冒号后面的字符串发送/前方或/后方字符,如车辆启动发送Power:ON或Power:OFF

车辆启动水泵状态剩余水位信息前方距离(cm)云台PItch Yaw剩余电量
ON/OFF_ON/OFF_Wt:%3d_D:3.2f_P%2.1fY%2.1fB:%3d

说明:

● 车辆启动:默认OFF,当为OFF时,车辆所有电机断电,发送任何电机控制命令均无效。需发送上电命令。

● 水泵状态:开或关。

● 水位信息:0-100,单位%,100表示满水位,0表示没水了。

● 前方距离:车辆车头测距传感器测量得到的前方距离,单位厘米。

● 云台:俯仰角、偏航角

● 剩余电量:电池剩余电量,单位%,100满电,0没电。

##### 故障代码:

故障代码:故障情况解决
与车辆主控STM32通信失败检查ESP32与STM32连线是否正常
车辆温湿度传感器离线检查温湿度传感器接线
车辆水位传感器离线检查水位传感器
车辆电池故障(电压过高/过低检查电池
车辆测距传感器故障检查车头红外测距

3.ESP32 ->STM32 (UART)

115200-8-N-1 10Hz

U2_RXD 16 PB10(STM32)

U2_TXD 17 PB11(STM32)

帧头:前进速度转向速度电源控制水泵控制照明控制帧尾
ESP0-90-90/10/10/1\n

按字节:

0-2固定ESP
3[3:0]前进速度
3[7:4]转向速度
4[0]电源控制,这位发1解除电机锁
4[1]水泵控制
4[2]照明控制
5固定\n

4.STM32 -> ESP32(UART)

115200-8-N-1 10Hz 共40字符

B11 -> USART3 RX

B10 -> USART3 TX

帧头GPS经纬GPS 授时小车状态帧尾
STMunionuin16_t\n

按字节:

0-2帧头STM
3E/W
4S/N
5-12double转union联合体 经度
13-20double转union联合体 纬度
21-22uin16_t GPS授时
23[0]车辆是否启动
23[1]水泵状态
24-27float转union联合体 距离
28-31float转union联合体 Pitch
32-35float转union联合体 Yaw
36uint8_t 水位 0-100
37电量uint8_t
38故障代码uint8_t 0表示全部正常
39帧尾\n
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:27:46  更:2022-09-04 01:31:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:49:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码