在之前的第一篇中,我已经确定了项目的方案,但是对于摄像头、随身WIFI以及如何使用ESP32开发板去实现小车远程控制,心里还是没有低。
不过现在已经调通了,来汇报一下情况。
小车远程控制
使用ESP32S3开发板,通过arduino的blinker库实现通过WIFI去远程操控小车。目前小车的PCB还没有开始设计,所以在代码中没有加入电机控制方面。
blinker库的官方说明资料:点灯科技 (diandeng.tech)
- APP下载以及界面设计
app下载
首先是APP的下载:https://diandeng.tech/doc/app-download
也可以在手机的应用商城中搜索:点灯·blinker (我的手机是小米,小米的手机应用商城中已经有该APP)
界面设计
打开APP,点击右上角的+号,添加设备。
选择独立设备。
选择网络接入。
记录设备密钥(在后期的代码调试中,需要使用到该密钥)(请使用自己生成的密钥)
,进入刚才新建的设备中进行界面设计。我的界面设计如下:
注意!每一个控件的名称都要清楚,因为在后面的代码设计中,需要通过控件名称确定是要操控哪个控件。
- 代码编程设计
如果是没有任何使用基础的,请参考点灯科技官网的入门说明,去安装对应的编程环境。
官方入门指导:https://diandeng.tech/doc/getting-start-esp32-wifi
使用arduino新建一个工程,接入开发板。
我的开发板参数如下:
写入以下代码,点击左上角的√键(验证),编译测试是否通过。
#define BLINKER_WIFI
#include <Blinker.h>
char auth[] = "08eec437a3de"; //设备秘钥
char ssid[] = "4G-UFI-7787"; //WIFI名称
char pswd[] = "1234567890"; //WIFI密码
// //初始创建化数据对象
BlinkerNumber num_temp("num-temp"); //温度数据
BlinkerNumber num_electric("num-electric"); //电量数据
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
int startPos = data.indexOf(""") + 1;
int endPos = data.indexOf(""", startPos);
// 提取双引号内的内容,获取键名
String KeyName = data.substring(startPos, endPos);
//暂时通过串口输出查看是否提取正确
//后期通过键名确定是控制哪一个按钮
Serial.println(KeyName);
startPos = data.indexOf(""", endPos+1) + 1;
endPos = data.indexOf(""", startPos);
// 提取双引号内的内容,获取键值
String KeyValue = data.substring(startPos, endPos);
//暂时通过串口输出查看是否提取正确
//后期通过键值确定是按钮是按下还是松开
Serial.println(KeyValue);
//板载LED状态翻转,说明能够远程控制
digitalWrite(48, !digitalRead(48));
//将值上传到温度的数据对象
num_temp.print(12);
}
void setup()
{
// 初始化串口
Serial.begin(115200);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
//注册回调函数,当设备收到APP发来的数据时会调用设置的dataRead回调函数
Blinker.attachData(dataRead);
// 初始化有LED的IO
pinMode(48, OUTPUT);
// 点亮LED
digitalWrite(48, LOW);
//设置电机的PWM
ledcSetup(0, 2000, 8); // 设置通道0的频率为2000,分辨率8位
ledcAttachPin(1, 0); // 将通道0与引脚1连接
}
void loop() {
Blinker.run();
//设备延时
//Blinker.delay(500);
}
复制代码- 下载验证
将开发板接入电脑,在arduino中设置好ESP32开发板的参数,点击左上角的→键(上传),将代码烧录到开发板中。
在arduino下面的输出窗口中,等待下载完成。下图为下载完成指示图。
下载完成之后,保持ESP32开发板处于上电状态,等待开发板连接上服务器。我们可以去手机APP端查看ESP32开发板是否连接成功。
当APP界面显示设备在线时,说明连接成功。
打开设备,进行数据传输测试。随便点击几个按钮。
电脑端的串口调试助手输出显示在APP上按下的按键名,以及按下的状态:top表示按下一次
手机端显示ESP32开发板上传过来的数据:
验证成功。
无线随身WIFI调试
根据购买的随身WIFI上的说明书进行激活即可。需要注意的是,使用随身WIFI需要实名认证才能够使用。
我购买的设备链接:https://detail.tmall.com/item.htm?_u=u2t4uge500f1&id=723126849433&spm=a1z09.2.0.0.336c2e8d3ccgnA
套餐参数:
这个随身WIFI没有什么好调试的,只是需要注意的是,随身WIFI使用的是5V供电,我们要在后面的PCB设计中加入USB供电接口。
语音对话摄像头调试
根据购买的摄像头上的说明书进行激活即可。需要注意的是,摄像头的APP和手机控制的APP是不一样的,到时候需要在手机上将摄像头APP的界面缩小,形成两个APP在一个界面的样子,这样才好操控。
最终的测试结果
实现的摄像头的视频与语言的对话,并且可以通过手机APP控制开发板
下一篇预告:电路设计