基于Wemos D1避障WiFi小车及智能垃圾桶设计

一、实验器材

主控芯片 Wemos D1
其他器材 HC-SR04超声波、L9110s电机、ESP82660WiFi模块、蜂鸣器
所需设备 TCP

二、效果展示
图1.

三、具体操作
1.开始我们还是用Wemos D1来 点亮我们的第一个LED灯吧

void setup() {// put your setup code here, to run once:pinMode(2,OUTPUT);//这里我们直接用2号引脚//void setup()这里面为核心代码只执行一次}void loop() {// put your main code here, to run repeatedly:digitalWrite(2,LOW);delay(1000);//延迟1msdigitalWrite(2,HIGH);delay(2000);
}

图2.

2.HC-RS04超声波

工作电压电流 5V 15mA
感测距离 2——400cm
4个引脚 GND(接地) VCC(正极)Trig(触发)Eco(接受)
前面的两个像眼睛的圆圈 一个用于发射信号、一个用来接受信号

图3.

运行


#define Ecno D2
#define Trig D8    //这里我们先将触发与接收两个引脚定义便于后面的操作void initchaosbo()     //初始化超声波
{pinMode(Ecno,INPUT);pinMode(Trig,OUTPUT);
}long getTime()       //获取待测距离
{digitalWrite(Trig,HIGH);delayMicroseconds(10);digitalWrite(Trig,LOW);return pulseIn(Ecno,HIGH);
}void setup() {// put your setup code here, to run once:initchaosbo();Serial.begin(115200);  //打开串口}void loop() {// put your main code here, to run repeatedly:long dis;dis=getTime()/58;Serial.print(dis);Serial.println("cm");delay(500);}

为什么要除与58?
记录一下,其他博客大哥哥讲的~~~·"声音在干燥、摄氏 20度的空气中的传播速度大约为343米/秒,合34,300厘米/秒。
或者,我们作一下单位换算,34,300除以1,000,000厘米/微秒。
即为:0.0343厘米/微秒
再换一个角度,1/(0.0343 厘米/微秒)

即:29.15 微秒/厘米。
这就意味着,每291.5微秒表示10CM的距离。1厘米就是29.15微秒。
但是发送后到接收到回波,声音走过的是2倍的距离呀。
所以实际距离就是1厘米,对应58.3微秒。
实际上整个测距过程是测的发出声波到收到回波的时间,你的程序里的第一个distance实际上是时间us。
所以换成距离cm,要除以58。当然除以58.3可能更精确。"

3.L9110s驱动步电机原理

驱动原理:总共有6个引脚 中间两个为电源的正负极其他四个为信号线
四个信号线我们可以用假设法0代表不转 1代表转动

图4.

具体操作

#define Zhuang1 D4
#define Zhuang2 D5
#define Dong1   D7
#define Dong2   D8
//定义四个引脚前面两个用于控制小车前进还是后退后两个控制小车的转向//初始化舵机
void initL9110s()
{pinMode(Dong1,OUTPUT);                                                                       pinMode(Dong2, OUTPUT);pinMode(Zhuang1, OUTPUT);pinMode(Zhuang2, OUTPUT);
}//后退
void huo()
{digitalWrite(Dong1, HIGH);digitalWrite(Dong2, LOW);
}//前进
void qian()
{digitalWrite(Dong1, LOW);digitalWrite(Dong2, HIGH);
}
void zuo()
{digitalWrite(Zhuang1, HIGH);digitalWrite(Zhuang2, LOW);
}//回正
void zheng()
{digitalWrite(Zhuang1, LOW);digitalWrite(Zhuang2, LOW);
}//左转
void zuo()
{digitalWrite(Zhuang1, HIGH);digitalWrite(Zhuang2, LOW);
}//右转
void you()
{ digitalWrite(Zhuang1, LOW);digitalWrite(Zhuang2, HIGH);
}//停止
void ting()
{ digitalWrite(Dong1, LOW);digitalWrite(Dong2, LOW);
}

注:在操作过程中对于前后左右的控制可能会出错自己可以根据小车运行的情况进行相应的代码改动

4.ESP82660WiFi
Wemos D1的一个很大优势就是集成了ESP8266WiFi模块,而且运行WemosD1平台有自带的ESP8266的封装库,在这里我们只需要知道如何去调用库函数使用就可以了。

具体操作

#include<ESP8266WiFi.h>   //所需的头文件
char *ssid = "nova 5 Pro";   //WiFi热点名称 这里大家根据自己来就可以了
char *password = "yin1234567";  //WiFi密码
int port = 8888;     //端口号
WiFiServer server(port);//初始化wifi 这里的初始化代码差不多一个模板在使用的时候可以直接用
void initwifista()
{WiFi.mode(WIFI_STA);//设置STA模式WiFi.begin(ssid, password); //连接网络while (WiFi.status() != WL_CONNECTED){Serial.print(".");delay(500);}Serial.println(WiFi.localIP());//通过串口打印地址
}void  setup()
{initwifista();Serial.begin(115200);server.begin();
}
void  loop()
{char cmd;
WiFiClient client = server.available(); //服务初始化while (client.connected()){while (client.available() > 0){cmd = client.read();if(cmd=='q'){Serial.println("xaio yin student");//满足自己所输入的可以更改要实现的功能}else{}}}}

4.WiFi小车所需要的器材使用方法就差不多都讲完了(话不多说我们在来看看整体代码吧,让小车跑起来吧 嘻嘻是不是有点成就感鸭)

#include<ESP8266WiFi.h>
#define Dong1 D6
#define Dong2 D7
#define Zhuang1 D4
#define Zhuang2 D5#define Ecno D2
#define Trig D8
char *ssid = "nova 5 Pro";
char *password = "yin1234567";
int port = 8888;
WiFiServer server(port);void initchaosbo()
{pinMode(Ecno,INPUT);pinMode(Trig,OUTPUT);
}long getTime()
{digitalWrite(Trig,HIGH);delayMicroseconds(10);digitalWrite(Trig,LOW);return pulseIn(Ecno,HIGH);
}void initwifista()
{WiFi.mode(WIFI_STA);//设置STA模式WiFi.begin(ssid, password); //连接网络while (WiFi.status() != WL_CONNECTED){Serial.print(".");delay(500);}Serial.println(WiFi.localIP());//通过串口打印地址
}void initL9110s()
{pinMode(Dong1, OUTPUT);                                                                                 pinMode(Dong2, OUTPUT);pinMode(Zhuang1, OUTPUT);pinMode(Zhuang2, OUTPUT);
}void huo()
{digitalWrite(Dong1, HIGH);digitalWrite(Dong2, LOW);
}void qian()
{digitalWrite(Dong1, LOW);digitalWrite(Dong2, HIGH);
}
void zuo()
{digitalWrite(Zhuang1, HIGH);digitalWrite(Zhuang2, LOW);
}void zheng()
{digitalWrite(Zhuang1, LOW);digitalWrite(Zhuang2, LOW);
}void you()
{ digitalWrite(Zhuang1, LOW);digitalWrite(Zhuang2, HIGH);
}void ting()
{ digitalWrite(Dong1, LOW);digitalWrite(Dong2, LOW);
}void setup() {initL9110s();initchaosbo();Serial.begin(115200);initwifista();server.begin();}void loop() {char cmd;long dis;dis=getTime()/58;WiFiClient client = server.available(); //服务初始化while (client.connected()){while (client.available() > 0){cmd = client.read();switch (cmd){case 'q':qian();if(dis<=10){ting();}break;case 'h':huo();break;case 'z':zuo();break;case 'y':you();break;case 's':ting();break;case 'd':zheng();break;}}}
}

5.对了这里我忘记说用TCP来控制小车了,其实原理很简单在执行过程中我们会用到ComAssistant(当然也可以用其他软件)这个串口软件来获取我们所需要的IP地址。注意在使用过程中我们也需要将对应的端口号波特率设置成我们在代码中设置的一样哦。然后在TCP用我们所获取的ID进行远程主机连接 在根据自己的代码发送相应的指令就可以啦。
图5.

三、智能垃圾桶

在这里就不仔细说了所用到的芯片还是WemosD1 超声波与前面的WiFi小车的原理一模一样只是多一个多舵机的处理这里我们使用的是SG90舵机。

3.SG90舵机

型号 SG90 重量13克
工作电压 4.8v~6v(3.3v也可以)
三线对应端口 红色:正极 棕色:GND 橙色:信号线

图6.整体效果展示

具体操作

#include<Servo.h>    //所需要用到的头文件
#define Ecno D2
#define Trig D8
#define BEEP D5      //这里加了一个蜂鸣器可以根据距离的长短来控制蜂鸣器的响与不响
Servo myDuoJi;
#define DuoPin D5     //定义舵机//初始化蜂鸣器
void initfmq()
{pinMode(BEEP,OUTPUT);digitalWrite(BEEP,HIGH); // 在运行时我们先将其设置为高电平避免程序一运行蜂鸣器就响了
}
void setup() {// put your setup code here, to run once:myDuoJi.attach(DuoPin);   // 接入舵机initchaosbo();Serial.begin(115200);myDuoJi.write(180);      //翻转的度数//initfmq();}//初始化超声波
void initchaosbo()
{pinMode(Ecno,INPUT);pinMode(Trig,OUTPUT);
}long getTime()
{digitalWrite(Trig,HIGH);delayMicroseconds(30);digitalWrite(Trig,LOW);return pulseIn(Ecno,HIGH);}void loop() {// put your main code here, to run repeatedly:long dis;dis=getTime()/58;Serial.println(dis);Serial. println("cm");if(dis<4){// digitalWrite(BEEP,LOW);// delay(1000);myDuoJi.write(90);delay(2000);}else{//digitalWrite(BEEP,HIGH);myDuoJi.write(180);}}

以上就是WiFi小车和智能垃圾桶的全部代码了,个人的理解如果有错误的地方希望大家能够指出,相互学习共同进步(冲鸭)。

基于Wemos D1避障WiFi小车及智能垃圾桶设计相关推荐

  1. 智能避障小车学习笔记(基于Wemos的避障小车)

    智能避障小车 一.开发环境及硬件 ArduiNo平台 网盘地址:https://pan.baidu.com/s/1w3MHxkCUBOlbqKRxRhlwbQ 提取码:o6gk 硬件 WeMos D1 ...

  2. 基于单片机智能灯光光控照明系统设计、基于单片机HX711电子秤自动计价系统设计、基于单片机GPRS远程测控系统设计、基于单片机多功能循迹避障无线遥控蓝牙智能小车-设计资料

    基于单片机智能灯光光控照明系统设计 智能光控照明系统设计原理: 本系统采用STC89C52系列的单片机为核心,利用BH1750传感器测量实时光照强度,并将亮度的模拟信号转化成数字信号,大大减少了系统的 ...

  3. 基于单片机HX711电子秤自动计价系统设计-基于单片机GPRS远程测控系统设计-818基于单片机循迹避障无线遥控蓝牙智能小车-基于单片机24s倒计时篮球积分器系统-基于单片机智能洗衣机控制系统

    816基于单片机HX711电子秤自动计价系统设计 本设计使用高精度电阻应变式压力传感器,用A/D转换器HX711(HX711数据手册)对传感器信号进行调理转换.AT89s52(AT89s52数据手册) ...

  4. stm32捕获占空比_基于STM32超声波避障小车

    不管是对于初学者还是对于一个玩过单片机的电子爱好者来说,或多或少都接触到过小车项目,今天给大家介绍的的一个项目基于STM32超声波避障小车.这也是我曾经的一个课设,在此开源分享给大家,全文5000多字 ...

  5. 基于wemos D1的无线遥控灯(433m无线模块)

    参考:基于wemos D1的无线遥控灯(433m无线模块) 作者:一只小阿大:) 发布时间: 2021-04-16 09:25:53 网址:https://blog.csdn.net/qq_44610 ...

  6. 非确定性算法_使用最坏情况提高基于MPC的避障算法对参数不确定性的鲁棒性

    编者按:避障问题是AGV行驶过程中的一个重点,尤其是在未知和非结构化的环境中,没有关于环境的先验知识以及准确的车辆模型参数,难以充分发挥车辆的性能.作者在以前工作中,提出了在未知和非结构化环境中基于非 ...

  7. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车红外避障实验(带后退掉头避障)

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车红外避障实验1(基础避障) //======= ...

  8. 基于Wemos D1的感应开盖垃圾桶

    参考:基于Wemos D1的感应开盖垃圾桶(增加自己的代码实现部分) 作者:LEO-max 发布时间:2020-12-29 15:21:26 网址:https://blog.csdn.net/zouc ...

  9. esp8266单片机透传_基于WeMos D1(ESP8266)的校园卡门禁系统

    刷卡https://www.zhihu.com/video/1107591334902345728 电脑端控制https://www.zhihu.com/video/11075913630797332 ...

最新文章

  1. 开源Pravega架构解析:如何通过分层解决流存储的三大挑战?
  2. ASP.NET页面生命周期与应用程序生命周期
  3. hdmi 屏幕旋转 树莓派_计算机实验室之树莓派:课程 9 屏幕04
  4. golang函数:命名返回值代码示例
  5. 统计代码行数_推荐一波代码量、行数、提交量、作者等全维度统计神器
  6. 机器学习笔记(1):Introduction
  7. OkHttp透明压缩,收获性能10倍,外加故障一枚
  8. ipython版本_1. Python版本的选择与安装
  9. 微软补丁星期二修复120个漏洞,含2个已遭利用的 0day
  10. newlisp 注释生成文档
  11. mysql设置主键可视化_mysql怎么设置主键自
  12. IEEE 会议模板介绍
  13. 卓有成效的管理者—第二章 掌握自己的时间
  14. APISpace 手机号码归属地和运营商查询API
  15. 百度地图模拟签到考勤程序
  16. 给字体添加背景图 HTML+CSS
  17. 设置两个路由器连接以扩大WiFi覆盖范围的方法
  18. 什么是内部类?有什么作用?静态内部类和非静态内部类的区别?
  19. C++/C语言中十进制转二进制的常见方法
  20. 我的大学计算机课 作文,我的大学第一课

热门文章

  1. IEEE14节点求解系统潮流matlab仿真( PQ分解法)
  2. 音频隐写 MP3stego+wav隐写+题目
  3. xxf页面编辑bootstarp
  4. 聚观早报 | 东方甄选与顺丰、京东合作;拼多多跨境电商平台上线
  5. 【隐写工具】【试一试?】jphide seek(JPHS) 使用方法,检测提示,附下载地址
  6. 沧海一粟 之 杏花村
  7. TCL L55E5800A-UD ROOT 降级固件 V8-A962T01-LF1V026.zip
  8. PCL中的PointT类型
  9. 【Vegas2010】1月24日-钢琴教材从零起步的进阶选取
  10. coursera课程下载_如何在永远消失之前下载Coursera的课程