易商讯
当前位置: 首页 » 资讯 » 生活 » 正文

esp8266制作遥控窗帘(遥控船教程)

放大字体  缩小字体 发布日期:2023-12-21 19:09:18
导读

本文介绍了使用ESP8266作为控制处理器实现远程遥控船,从单片机写入源码、Web后台源码、控制端源码三个方面给出了源代码,然后给出二路直流电机控制板连接图以及讲解,最后给出硬件的连线方案,根据教程,小白也能完成。后续我自己将此方案进行升级后制作了更加稳定的水库垂钓打窝船(将饵料运送到指定位置后倒入水中)、放钓船(将海竿的鱼钩等使用小船运送到指定位置后放入水中)。后续升级采用了大扭力马达和升压模块

本文介绍了使用ESP8266作为控制处理器实现远程遥控船,从单片机写入源码、Web后台源码、控制端源码三个方面给出了源代码,然后给出二路直流电机控制板连接图以及讲解,最后给出硬件的连线方案,根据教程,小白也能完成。后续我自己将此方案进行升级后制作了更加稳定的水库垂钓打窝船(将饵料运送到指定位置后倒入水中)、放钓船(将海竿的鱼钩等使用小船运送到指定位置后放入水中)。后续升级采用了大扭力马达和升压模块,电机控制摆放模块,根据这篇文章的收益再决定是否可以将后续发布出来。

想要实现联网遥控船,用手机就可以远程遥控船在水中进行运动,并且可以实现无距离限制,其中涉及到很多关键点。使用手机发送控制指令到服务器,单片机不断的从服务器获取控制执行指令进行控制变化操作,进而实现控制遥控船在水中的前进后退以及转向操作。先展示实物效果。

一.准备材料:

ESP8266单片机一个

L298N驱动板(2路直流电机驱动模块比L298N便宜)

杜邦线若干

导线若干

18650电池两块(板子供电和马达控制供电分开可以使得马达转动更快,更有动力)

F130马达两个

扇叶两个

轴连接器两个(由于马达转轴较短,需要延长转动轴距离)

转动抽两根

支持插卡联网并且可以开启WIFI的旧手机一台

提供远程Web访问的服务器一台(阿里云、腾讯云、百度云都有免费的3个月体验名额)

二、源码开发

1、单片机写入源码

单片机的源码编写采用的是ArduinoIDE工具,源码如下:

include 34;http://,更改成自己的服务器访问地址即可&define URL &34; // 设置wifi接入信息(请根据您的WiFi信息进行修改) const char* ssid = &34;; const char* password = &34;; void setup() { initdo();//初始化输出引脚都为低电平 //初始化串口设置 Serial.begin(9600); //设置ESP8266工作模式为无线终端模式 WiFi.mode(WIFI_STA); //开始连接wifi WiFi.begin(ssid, password); //等待WiFi连接,连接成功打印IP while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print(&34;); } Serial.println(&34;); Serial.print(&34;); //httpClientRequest(); } void loop() { if(WiFi.status() != WL_CONNECTED){ //设置ESP8266工作模式为无线终端模式 dealout(&34;); WiFi.mode(WIFI_STA); //开始连接wifi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { //等待WiFi连接 delay(1000); Serial.println(&34;); } }else{ httpClientRequest(); delay(300); } } // 发送HTTP请求并且将服务器响应通过串口输出 void httpClientRequest(){ HTTPClient httpClient; httpClient.begin(URL); Serial.print(&34;); Serial.println(URL); //GET启动连接并发送HTTP请求 int httpCode = httpClient.GET(); Serial.print(&34;); Serial.println(URL); //服务器响应HTTP_CODE_OK(200)则从服务器获取响应信息 if (httpCode == HTTP_CODE_OK) { // 使用getString函数获取服务器响应体内容 String responsePayload = httpClient.getString(); Serial.println(&34;); Serial.println(responsePayload); //需要对responsePayload字符串进行拆解处理 String x=responsePayload; dealout(x); } else { Serial.println(&34;); Serial.println(httpCode); dealout(&34;); } //关闭ESP8266与服务器连接 httpClient.end(); } void initdo(){//初始化引脚全部为输出模式且都为低电平 pinMode(D0,OUTPUT); digitalWrite(D0,LOW); pinMode(D1,OUTPUT); digitalWrite(D1,LOW); pinMode(D2,OUTPUT); digitalWrite(D2,LOW); pinMode(D3,OUTPUT); digitalWrite(D3,LOW); pinMode(D4,OUTPUT); digitalWrite(D4,LOW); pinMode(D5,OUTPUT); digitalWrite(D5,LOW); pinMode(D6,OUTPUT); digitalWrite(D6,LOW); pinMode(D7,OUTPUT); digitalWrite(D7,LOW); } void dealout(String str){//通过传入的字符串进行拆分后控制引脚的电平状态 int i; for(i=0;i<8;i++){ if(i==0){ pinMode(D0,OUTPUT); if(str[i]==&39;){ digitalWrite(D0,LOW); }else{ digitalWrite(D0,HIGH); } } if(i==1){ pinMode(D1,OUTPUT); if(str[i]==&39;){ digitalWrite(D1,LOW); }else{ digitalWrite(D1,HIGH); } } if(i==2){ pinMode(D2,OUTPUT); if(str[i]==&39;){ digitalWrite(D2,LOW); }else{ digitalWrite(D2,HIGH); } } if(i==3){ pinMode(D3,OUTPUT); if(str[i]==&39;){ digitalWrite(D3,LOW); }else{ digitalWrite(D3,HIGH); } } if(i==4){ pinMode(D4,OUTPUT); if(str[i]==&39;){ digitalWrite(D4,LOW); }else{ digitalWrite(D4,HIGH); } } if(i==5){ pinMode(D5,OUTPUT); if(str[i]==&39;){ digitalWrite(D5,LOW); }else{ digitalWrite(D5,HIGH); } } if(i==6){ pinMode(D6,OUTPUT); if(str[i]==&39;){ digitalWrite(D6,LOW); }else{ digitalWrite(D6,HIGH); } } if(i==7){ pinMode(D7,OUTPUT); if(str[i]==&39;){ digitalWrite(D7,LOW); }else{ digitalWrite(D7,HIGH); } } } }

2、Web后台源码

Web后台采用的是php语言的脚本进行处理,所以需要在部署的时候部署好php运行环境,不会的可以百度一下。

3、控制端源码

我这里根据使用习惯采用的安卓app向服务器发送POST请求,将控制信息发送给服务器,其实可以采用HTML页面的方式发送POST请求,但是这方面我没有开发,所以只是展示安卓APP端的控制代码。并且想要用最快的方式创建一个安卓APP,建议使用E4A。先看app界面的组件效果图:

以下是根据功能开发的代码

变量 lswb 为 文本型 变量 server 为 文本型 事件 control.切换完毕() 保存设置(&34;,&34;) server=读取设置(&34;) & &34; 结束 事件 过程 提示(str 为 文本型) 如果 文本比较(&34;,str) =0 则 弹出提示(&34;) 否则 弹出提示(&34;) 结束 如果 结束 过程 事件 按钮1.被单击()&34;id=10000000&34;utf-8&39;左停止 lswb=发送网络数据(server,&34;,&34;,5000) 提示(lswb) 结束 事件 事件 按钮7.被单击()&34;id=01000000&34;utf-8&39;右边前进 lswb=发送网络数据(server,&34;,&34;,5000) 提示(lswb) 结束 事件 事件 按钮4.被单击()&34;id=00000000&34;utf-8&39;右边后退 lswb=发送网络数据(server,&34;,&34;,5000) 提示(lswb) 结束 事件 事件 按钮5.被单击()&34;id=10100000&34;utf-8&39;左右同时后退 lswb=发送网络数据(server,&34;,&34;,5000) 提示(lswb) 结束 事件 事件 按钮9.被单击()&34;id=00000000&34;utf-8&34;12345678&34;12345678";//wifi密码

当单片机连上wifi之后我们就只需要在处理2路直流电机控制板的输入信号端的焊接连接工作,将两个马达分别焊接到OUTA-B端,如上图所示,此时我们的硬件部分搞定。如果按照我的方案,还需要制作安卓APP和部署服务器端,这是一个需要大量时间来学习的阶段。但是你不需要将这些都学习,仅仅需要百度一下使用E4A创建APP和PHP环境部署即可,根据现有的方案进行即可快速完成,还需要学会使用Arduino向单片机写入源码,这些都可以百度一下就学会了。当然马达的安装也是非常重要的,其中防水的问题是设备使用时间的关键,需要使用热熔胶对容易沾水的部分密封。

至此,我们已经掌握了源码、控制原理、接线原理,接下来就自己实践去完成吧。有不懂的地方关注我,私信我,我会很耐心的帮你解答问题。


声明:易商讯尊重创作版权。本文信息搜集、整理自互联网,若有来源标记错误或侵犯您的合法权益,请联系我们。我们将及时纠正并删除相关讯息,非常感谢!

 
(文/小编)
免责声明
• 
本文esp8266制作遥控窗帘(遥控船教程)链接:http://www.esxun.cn/news/472947.html 。本文仅代表作者个人观点,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们,我们将在24小时内处理完毕。如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
 

Copyright © www.esxun.cn 易商讯ALL Right Reserved


冀ICP备2023038169号-3