大家好,关于e4a取网站源码分享很多朋友都还不太明白,今天小编就来为大家分享关于网站源码安装视频教程的知识,希望对各位有所帮助!
本文介绍了使用ESP8266作为控制处理器实现远程遥控船,从单片机写入源码、Web后台源码、控制端源码三个方面给出了源代码,然后给出二路直流电机控制板连接图以及讲解,最后给出硬件的连线方案,根据教程,小白也能完成。后续我自己将此方案进行升级后制作了更加稳定的水库垂钓打窝船(将饵料运送到指定位置后倒入水中)、放钓船(将海竿的鱼钩等使用小船运送到指定位置后放入水中)。后续升级采用了大扭力马达和升压模块,电机控制摆放模块,根据这篇文章的收益再决定是否可以将后续发布出来。
想要实现联网遥控船,用手机就可以远程遥控船在水中进行运动,并且可以实现无距离限制,其中涉及到很多关键点。使用手机发送控制指令到服务器,单片机不断的从服务器获取控制执行指令进行控制变化操作,进而实现控制遥控船在水中的前进后退以及转向操作。先展示实物效果。
一.准备材料:
ESP8266单片机一个
L298N驱动板(2路直流电机驱动模块比L298N便宜)
杜邦线若干
导线若干
18650电池两块(板子供电和马达控制供电分开可以使得马达转动更快,更有动力)
F130马达两个
扇叶两个
轴连接器两个(由于马达转轴较短,需要延长转动轴距离)
转动抽两根
支持插卡联网并且可以开启WIFI的旧手机一台
提供远程Web访问的服务器一台(阿里云、腾讯云、百度云都有免费的3个月体验名额)
二、源码开发
1、单片机写入源码
单片机的源码编写采用的是ArduinoIDE工具,源码如下:
include<ESP8266HTTPClient.h>\n34;http://,更改成自己的服务器访问地址即可&defineURL&34;\n\n//设置wifi接入信息(请根据您的WiFi信息进行修改)\nconstchar*ssid=&34;;\nconstchar*password=&34;;\n\nvoidsetup(){\ninitdo();//初始化输出引脚都为低电平\n//初始化串口设置\nSerial.begin(9600);\n//设置ESP8266工作模式为无线终端模式\nWiFi.mode(WIFI_STA);\n//开始连接wifi\nWiFi.begin(ssid,password);\n//等待WiFi连接,连接成功打印IP\nwhile(WiFi.status()!=WL_CONNECTED){\ndelay(1000);\nSerial.print(&34;);\n}\nSerial.println(&34;);\nSerial.print(&34;);\n//httpClientRequest();\n\n}\n\nvoidloop(){\nif(WiFi.status()!=WL_CONNECTED){\n//设置ESP8266工作模式为无线终端模式\ndealout(&34;);\nWiFi.mode(WIFI_STA);\n//开始连接wifi\nWiFi.begin(ssid,password);\nwhile(WiFi.status()!=WL_CONNECTED){\n//等待WiFi连接\ndelay(1000);\nSerial.println(&34;);\n}\n}else{\nhttpClientRequest();\ndelay(300);\n}\n\n}\n\n//发送HTTP请求并且将服务器响应通过串口输出\nvoidhttpClientRequest(){\nHTTPClienthttpClient;\nhttpClient.begin(URL);\nSerial.print(&34;);Serial.println(URL);\n//GET启动连接并发送HTTP请求\ninthttpCode=httpClient.GET();\nSerial.print(&34;);\nSerial.println(URL);\n//服务器响应HTTP_CODE_OK(200)则从服务器获取响应信息\nif(httpCode==HTTP_CODE_OK){\n//使用getString函数获取服务器响应体内容\nStringresponsePayload=httpClient.getString();\nSerial.println(&34;);\nSerial.println(responsePayload);\n\n//需要对responsePayload字符串进行拆解处理\nStringx=responsePayload;\ndealout(x);\n}else{\nSerial.println(&34;);\nSerial.println(httpCode);\ndealout(&34;);\n}\n//关闭ESP8266与服务器连接\nhttpClient.end();\n}\nvoidinitdo(){//初始化引脚全部为输出模式且都为低电平\npinMode(D0,OUTPUT);\ndigitalWrite(D0,LOW);\n\npinMode(D1,OUTPUT);\ndigitalWrite(D1,LOW);\n\npinMode(D2,OUTPUT);\ndigitalWrite(D2,LOW);\n\npinMode(D3,OUTPUT);\ndigitalWrite(D3,LOW);\n\npinMode(D4,OUTPUT);\ndigitalWrite(D4,LOW);\n\npinMode(D5,OUTPUT);\ndigitalWrite(D5,LOW);\n\npinMode(D6,OUTPUT);\ndigitalWrite(D6,LOW);\n\npinMode(D7,OUTPUT);\ndigitalWrite(D7,LOW);\n}\nvoiddealout(Stringstr){//通过传入的字符串进行拆分后控制引脚的电平状态\ninti;\nfor(i=0;i<8;i++){\nif(i==0){\npinMode(D0,OUTPUT);\nif(str[i]==&39;){\ndigitalWrite(D0,LOW);\n}else{\ndigitalWrite(D0,HIGH);\n}\n}\nif(i==1){\npinMode(D1,OUTPUT);\nif(str[i]==&39;){\ndigitalWrite(D1,LOW);\n}else{\ndigitalWrite(D1,HIGH);\n}\n}\nif(i==2){\npinMode(D2,OUTPUT);\nif(str[i]==&39;){\ndigitalWrite(D2,LOW);\n}else{\ndigitalWrite(D2,HIGH);\n}\n}\nif(i==3){\npinMode(D3,OUTPUT);\nif(str[i]==&39;){\ndigitalWrite(D3,LOW);\n}else{\ndigitalWrite(D3,HIGH);\n}\n}\nif(i==4){\npinMode(D4,OUTPUT);\nif(str[i]==&39;){\ndigitalWrite(D4,LOW);\n}else{\ndigitalWrite(D4,HIGH);\n}\n}\nif(i==5){\npinMode(D5,OUTPUT);\nif(str[i]==&39;){\ndigitalWrite(D5,LOW);\n}else{\ndigitalWrite(D5,HIGH);\n}\n}\nif(i==6){\npinMode(D6,OUTPUT);\nif(str[i]==&39;){\ndigitalWrite(D6,LOW);\n}else{\ndigitalWrite(D6,HIGH);\n}\n}\nif(i==7){\npinMode(D7,OUTPUT);\nif(str[i]==&39;){\ndigitalWrite(D7,LOW);\n}else{\ndigitalWrite(D7,HIGH);\n}\n}\n}\n}\n
2、Web后台源码
Web后台采用的是php语言的脚本进行处理,所以需要在部署的时候部署好php运行环境,不会的可以百度一下。
<?php\n\tif(isset($_GET[&39;])&&$_GET[&39;]==&34;){//客户端获取控制信息\n\t\tif(file_exists(&34;)){\n\t\t//检测文件是否存在在\n\t\t\t$file=fopen(&34;,&34;)ordie(&34;);\n\t\t\t$data_array=array();\n\t\t\twhile(!feof($file))\n\t\t\t{\n\t\t\t$data_array[]=fgets($file);\n\t\t\t}\n\t\t\tfclose($file);\n\t\t\t$tempstr=&34;;\n\t\t\tfor($i=0;$i<count($data_array);$i++)\n\t\t\t{\n\t\t\t\t$tempstr=$tempstr.$data_array[$i];\n\t\t\t}\n\t\t\techo$tempstr;//输出到返回值\n\t\t}else{\n\t\t\t$file=fopen(&34;,&34;)ordie(&34;);\n\t\t\tfwrite($file,&34;);\n\t\t\tfclose($file);\n\t\t\techo&34;;\n\t\t}\n\t}\n\tif(isset($_POST[&39;])&&strlen($_POST[&39;])==8){\n\t\t//接收手机端的控制信号\n\t\t$file=fopen(&34;,&34;)ordie(&34;);\n\t\tfwrite($file,$_POST[&39;]);\n\t\tfclose($file);\n\t\techo&34;;\n\t}\n?>
3、控制端源码
我这里根据使用习惯采用的安卓app向服务器发送POST请求,将控制信息发送给服务器,其实可以采用HTML页面的方式发送POST请求,但是这方面我没有开发,所以只是展示安卓APP端的控制代码。并且想要用最快的方式创建一个安卓APP,建议使用E4A。先看app界面的组件效果图:
以下是根据功能开发的代码
\t变量lswb为文本型\n\t变量server为文本型\n事件control.切换完毕()\n\t保存设置(&34;,&34;)\n\tserver=读取设置(&34;)&&34;\n结束事件\n过程提示(str为文本型)\n\t如果文本比较(&34;,str)=0则\n\t\t弹出提示(&34;)\n\t否则\t\n\t\t弹出提示(&34;)\n\t结束如果\n结束过程\n事件按钮1.被单击()&34;id=10000000&34;utf-8&39;左停止\n\tlswb=发送网络数据(server,&34;,&34;,5000)\n\t提示(lswb)\n结束事件\n\n事件按钮7.被单击()&34;id=01000000&34;utf-8&39;右边前进\n\tlswb=发送网络数据(server,&34;,&34;,5000)\n\t提示(lswb)\n结束事件\n\n事件按钮4.被单击()&34;id=00000000&34;utf-8&39;右边后退\n\tlswb=发送网络数据(server,&34;,&34;,5000)\n\t提示(lswb)\n结束事件\n\n事件按钮5.被单击()&34;id=10100000&34;utf-8&39;左右同时后退\n\tlswb=发送网络数据(server,&34;,&34;,5000)\n\t提示(lswb)\n结束事件\n\n事件按钮9.被单击()&34;id=00000000&34;utf-8&34;12345678&34;12345678″;//wifi密码
当单片机连上wifi之后我们就只需要在处理2路直流电机控制板的输入信号端的焊接连接工作,将两个马达分别焊接到OUTA-B端,如上图所示,此时我们的硬件部分搞定。如果按照我的方案,还需要制作安卓APP和部署服务器端,这是一个需要大量时间来学习的阶段。但是你不需要将这些都学习,仅仅需要百度一下使用E4A创建APP和PHP环境部署即可,根据现有的方案进行即可快速完成,还需要学会使用Arduino向单片机写入源码,这些都可以百度一下就学会了。当然马达的安装也是非常重要的,其中防水的问题是设备使用时间的关键,需要使用热熔胶对容易沾水的部分密封。
至此,我们已经掌握了源码、控制原理、接线原理,接下来就自己实践去完成吧。有不懂的地方关注我,私信我,我会很耐心的帮你解答问题。
e4a取网站源码分享和网站源码安装视频教程的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!
