基于ESP8266的云端手机遥控小车

基于ESP8266无线wifi模块开发的遥控小车

本次实现的场景是,这个遥控小车我无论在哪里,只要小车有网络,我就能无时无刻的对它进行遥控。

先上成品硬件图

ESP32 443遥控器 esp8266遥控车_嵌入式

ESP32 443遥控器 esp8266遥控车_服务器_02

ESP32 443遥控器 esp8266遥控车_python_03

周末的时候,学习搭建mqtt服务器的时候,发现了一个叫ESP8266的模块,嗯,就长下面这个样子:

ESP32 443遥控器 esp8266遥控车_python_04

这个模块可以连接上emq服务器,并进行通讯,就像下面这样:

ESP32 443遥控器 esp8266遥控车_自动驾驶_05

看到这个模块后,再瞅了一眼吃灰多年的循迹小车,改造的想法立马油然而生!!!

理了一下改造思路:

图片

ESP32 443遥控器 esp8266遥控车_嵌入式_06

简单的说就是分三块:

1.小车硬件的mqtt订阅系统+电机控制系统+电机驱动模块

2.平台端的emq服务器,平台端的信号模拟控制系统

3.手机操控页面

硬件部分:

近期发现了有个叫micropython的嵌入式编程,对于大学本身学习嵌入式的我而言兼职发现了新大陆,什么!python居然也能写嵌入式代码!!

简单说一下对应逻辑,芯片的主要功能是连上wifi,然后连接上云端的mqtt服务器,通过芯片里面的mqtt订阅端代码实现云端信息的接收。

大致如下:

ESP32 443遥控器 esp8266遥控车_嵌入式_07

通过该芯片的IO输出给51单片机对应的信号,然后单片机给电机驱动相应的指令控制电机。

这样一来,简单的硬件部分就实现完毕了,但是要怎么更智能化的操控呢,这就需要一个平台系统了。大概的逻辑就是通过该操作系统模拟个mqtt发布客户端,发布相对应的主体给到硬件,于是乎我就想到了用以前自学的Django写个简单的操控系统吧

Django基础部分可以看看我以前的文章:

Django笔记(五)

Django笔记(四)

Django笔记(三)

Django笔记(二)

Django笔记(一)

python 模拟mqtt通讯这块请看下面:

使用python实现MQTT通讯与模拟(一)

其实逻辑并不复杂,稍微懂点Django就行了,自己写个简单的前端,再在view上输出对应的逻辑,加个urls搞定

像下面那样:

ESP32 443遥控器 esp8266遥控车_ESP32 443遥控器_08

搞定 平台端后,python manage.py runserver

进入对应的地址,看到的这个:

ESP32 443遥控器 esp8266遥控车_ESP32 443遥控器_09

然后再用手机登录该地址,就像下面那样:

ESP32 443遥控器 esp8266遥控车_服务器_10

就这样,简易的一个手机小车遥控器就做好了~~~

通过手机点击前进-左转-右转-停止,就可以达成我们远程控制小车的方式了。