ESP8266小车总结

前言:历时大半个月的时间,第一版WiFi小车终于做好了从前端操作页面到后端的芯片控制,中间历经了太多困难,现在在此总结一下。

整体框架

image-20230109111456089

  • 主控芯片用的是ESP8266WiFi模块使用Arduino进行代码的编写

  • 操作界面使用的是uniapp编写网页端H5部署在我的服务器上

  • 中间的MQTT通信服务器也放在了我的服务器上

成品展示

前端页面
在这里插入图片描述
请添加图片描述

软件部分

开发环境

中间经历了两天的ESP8266开发环境的搭建和选择,这是整个过程中最令我头疼的一部分了。

ESP8266开发方式

  • 第一种是AT指令开发,需要在芯片上烧录AT指令的固件,就可以使用串口通讯的方式使用AT指令操作芯片,这种方式适合一个主控芯片+ESP8266的方式。这种方式我还没有试过,所以了解的不是很多,STM32开发板上正好有一颗ESP8266芯片,所以等过段时间学STM32的时候学一学AT指令。

  • 第二种开发方式是使用乐鑫官方的SDK进行开发,官方的SDK分为带操作系统的RTOS版SDK和无操作系统的NONOS版SDK,SDK就是官方封装好的函数,和STM32的固件库一样,只需要调用函数即可实现相应的功能。代码写好后通过乐鑫提供的工具链(就是一些使用python和makefile写的脚本文件)将代码编译一下就可以烧录到芯片上了。编译环境又分为Linux操作系统下的和Windows系统下的,因为编译的时候使用的是make命令,所以在Windows环境下不能直接使用,需要借助一些工具来模拟linux环境。就跟很多C/C++的IDE一样,代码无法直接用make进行编译,需要借助MinGW(我也不知道叫啥,也可能叫mingw32),反正就是Windows环境下的GCC编译工具。在Linux环境下编译只需要将SDK和工具链路径设置为系统环境变量,然后在示例代码中使用make menuconfig命令配置波特率,串口等信息,make命令编译,make flash烧录,make monitor监视串口。教程在这Linux下搭建ESP-IDF 开发环境教程,适合ESP32/S2/C3/S3系列模组二次开发

在windows环境下又有许多种开发环境

  • 一是直接使用mingw32模拟Linux系统使用终端跟Linux一样的操作即可,还可以将终端配置到VSCode里面,实现开发环境(代码编写,编译,烧录)的一体化。教程在这乐鑫IDF 第一课 ESP8266 RTOS VSCODE开发环境搭建

  • 二是安信可提供的安信可一体化开发环境,这种方式和VSCode+mingw32的方式是一样的,但是因为他们的教程太老,很多东西都对不上,还有eclipse我也不太会用,使用起来各种报错,所以没用这种方式,也不推荐这种方式。

  • 三是Arduino,在本质上和使用SDK开发是一样的,只不过Arduino中关于ESP8266的库文件都是基于SDK的二次封装,使用起来更人性化,再加上Arduino是一个一体化环境,用起来也是更加的方便,所以最终采用了这种方式,教程可以参考太极创客的esp8266视频

  • 其他的还有platform,在vscode中下载一个platformio的插件,即可使用Arduino或者SDK的方式进行开发,也是比较方便的一种开发方式。好像还有使用MicroPython开发的方式,这个暂时还没了解过,但是因为Python语法简便,应该也是一个比较不错的开发方式。

MQTT服务器

MQTT可以使用免费的测试网站,也可以通过Docker部署在自己的服务器上,教程自行百度。

前端

前端代码使用的是uniapp,这中间也有许多挫折,因为uniapp可以一套代码多端使用,所以本打算用小程序或者H5网页端,但是小程序进行通讯需要正规域名,不能直接使用ip地址,我的服务器没有部署域名,之前也尝试弄过,但是审核挺麻烦的我就放弃了。中间也尝试使用点灯科技的前端页面,但是存在延迟比较高的问题,但这不是主要问题,主要问题是使用他们的插件时回调函数调用不了,所以根本没法用,应该是我使用的方法不对,这个方法最后也不了了之。最后使用的是网页端,从github上找了一个mqtt通讯的框架粘贴过来自己改了改,因为前端(VUE+JavaScript+CSS)只是简单的学了一下,uniapp的项目框架我是真不会用,只能自己改一些组件调用一下函数,所以只能从网上找代码。这中间还有@touchstart和@touchend这两种方式在电脑网页端无法调用,我也上网查了好多资料,最后发现在手机端可以调用,最终才选择了网页端的方式,因为之前没有部署过网页,本以为挺难的,结果只需要把在uniapp打包好的文件放到服务器指定目录下即可。

硬件部分

硬件采用ESP8266开发板作为主控,L298N驱动芯片用于驱动电机。八节1.2V电池。

写在最后

最后现在小车只是能简单的跑起来,还有许多bug,功能也挺少,日后打算加上

  • 自动配网
  • WiFi边缘检测
  • 自动避障
  • 装个显示屏
  • 装个摄像头
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指针到处飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值