1、环境搭建

本次主要是用ArduinoIDE平台来进行开发,可以去官网进行下载:Arduino - Home

也可去网盘下载,在这里为大家准备了网盘连接:

链接:https://pan.baidu.com/s/1VLn8Iju1fYWO1PMay8GsEw 
提取码:1502

打开软件后,进行以下设置(注意:USB尽量用51开发板的线,普通的USB线可能会有问题)这样我们的环境就搭建好了

2、智能垃圾桶

简介:通过超声波来控制舵机。然后通过外部设备来进行配合,很简单

首先我们要准备以下几件东西:

超声波

开发板

mini垃圾桶

Sg90舵机

下面就到了核心部分:代码编写(开源)

#include <Servo.h>//I/O口定义#define pwm  D5
#define Echo D2
#define Trig D8Servo myduoji;long getTime()
{digitalWrite(Trig,HIGH);delayMicroseconds(10);digitalWrite(Trig,LOW);return pulseIn(Echo,HIGH);
}void initChaoShengBo()
{pinMode(Echo,INPUT);pinMode(Trig,OUTPUT);
}
void setup()
{// put your setup code here, to run once:initChaoShengBo();myduoji.attach(pwm); Serial.begin(115200);
}void loop()
{//获取距离long dis;dis = getTime()/58;if(dis <= 10) //距离小于等于10{myduoji.write(90);  //舵机转动90°delay(2000);}else{myduoji.write( 180);}}

3、智能家居,让你关灯不再手动

众所周知,esp8266具有上网功能,那么我们就可以通过手机语音助手打开浏览器网页来控制舵机,废话不多说,直接上代码(造轮子)


#include <ESP8266WiFi.h>
#include <Servo.h>const char *ssid = "gcc";  //家里的wifi名称或者手机热点名称
const char *password = "15388515437";//家里的wifi密码或者手机热点密码WiFiServer server(80); //通过80端口连接到wemos D1String readString = ""; //建立一个字符串对象用来接收存放来自客户的数据//响应头
String responseHeaders =String("") +"HTTP/1.1 200 OK\r\n" +"Content-Type: text/html\r\n" +"Connection: close\r\n" +"\r\n";//网页:HTML+JS的网页,当客户端(即浏览器)发送链接请求时,Wemos则通过路由器发送网页
String myhtmlPage =String("") +"<html>" +"<head>" +"    <title>Wemos D1 Web Server Test</title>" + "    <meta charset = \"UTF-8\">" + "    <script defer=\"defer\">" +"        function ledSwitch() {" +"            var xmlhttp;" +"            if (window.XMLHttpRequest) {" +"                xmlhttp = new XMLHttpRequest();" +"            } else {" +"                xmlhttp = new ActiveXObject(\"Microsoft.XMLHTTP\");" +"            }" +"            xmlhttp.onreadystatechange = function () {" +"                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {" +"                    document.getElementById(\"txtState\").innerHTML = xmlhttp.responseText;" +"                }" +"            }," +"            xmlhttp.open(\"GET\", \"Switch\", true);" +"            xmlhttp.send(); " +"        }" +"    </script>" +"</head>" +"<body><center>" +"    <div id=\"txtState\">unknown</div>" +"    <input type=\"button\" value=\"开关\" οnclick=\"ledSwitch()\"></center>" +"</body>" +"</html>";bool isLedTurnOpen = false; // 记录舵机状态Servo myservo;void setup()
{myservo.attach(D5);  //将舵机与D5引脚连接myservo.write(0);  //舵机转动0°Serial.begin(115200);  //启动串口通信,波特率为115200Serial.println();Serial.printf("Connecting to %s ", ssid);  //通过串口在PC打印连接到路由器WiFi.begin(ssid, password);  //连接到路由器while (WiFi.status() != WL_CONNECTED)  //wifi如果没连接成功,则一直在此循环{delay(500);   Serial.print(".");  //每隔0.5s打印一个点.}Serial.println(" connected");   //“连接成功”打印server.begin();   //服务器启动Serial.printf("Web server started, open %s in a web browser\n", WiFi.localIP().toString().c_str());    //打印连接到路由器分配到的ip
}void loop()
{WiFiClient client = server.available(); //尝试建立客户对象if (client)                             //如果当前有客户可用{boolean currentLineIsBlank = true;Serial.println("[Client connected]");while (client.connected()) //如果客户端建立连接{if (client.available()) //等待有可读数据{char c = client.read(); //读取一字节数据readString += c;        //拼接数据/************************************************/if (c == '\n') //等待请求头接收完成(接收到空行){//比较接收到的请求数据if (readString.startsWith("GET / HTTP/1.1")) //如果是网页请求{client.print(responseHeaders); //向客户端输出网页响应client.print(myhtmlPage);      //向客户端输出网页内容client.print("\r\n");}else if (readString.startsWith("GET /Switch")) //如果是改变舵机状态请求{if (isLedTurnOpen == false){myservo.write(170); //舵机的转动角度client.print("电灯已经开启,按下可关闭");isLedTurnOpen = true;}else{  myservo.write(90);client.print("电灯已经关闭,按下可开启");isLedTurnOpen = false;}}else{client.print("\r\n");}break;}if (c == '\n'){currentLineIsBlank = true; //开始新行}else if (c != '\r'){currentLineIsBlank = false; //正在接收某行中}/************************************************/}}delay(1);      //等待客户完成接收client.stop(); //结束当前连接:Serial.println("[Client disconnected]");Serial.println(readString); //打印输出来自客户的数据readString = "";}
}

最终成效:基于esp8266 arduino WeMos D1智能垃圾桶及借助手机语音助手的智能家居_哔哩哔哩_bilibili

大家可以根据自己所在环境进行建模,3D打印一个舵机支架

以上就是本次的全部内容,欢迎大家评论,收藏和转发,如有问题请私信或评论

基于WeMos D1+esp8266的智能垃圾桶和智能家居相关推荐

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

    基于Wemos D1避障WiFi小车及智能垃圾桶设计 一.实验器材 主控芯片 Wemos D1 其他器材 HC-SR04超声波.L9110s电机.ESP82660WiFi模块.蜂鸣器 所需设备 TCP ...

  2. 基于 wemos d1 智能感应开盖垃圾桶

    基于WEMOS d1的智能感应开盖垃圾桶 1.需要用的软件: arduino 垃圾桶视频: 智能感应开盖垃圾桶 2.硬件清单 1.Wemos d1 板子 2.超声波模块 3.SG90 舵机 4.垃圾桶 ...

  3. 基于Wemos D1的智能感应开盖垃圾桶

    硬件:这个项目我们主要用到的东西有环保型垃圾桶,Wemos D1模块,舵机,超声波模块,串口助手,若干条杜邦线等等. 环境:arduino 思路:首先这个项目又超声波,wemos d1模块,舵机SG9 ...

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

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

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

    基于Wemos的感应开盖垃圾桶 一.绪论 1.研究背景 2.研究意义 二.系统总体设计方案 1.设计思路 2.硬件平台功能介绍 3.软件开发环境 三.设计思路实现步骤 1.Wemos的IO口研究驱动蜂 ...

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

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

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

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

  8. 基于Wemos D1和SIM900A(发短信和打电话)的温湿度报警系统

    目录 前言 硬件部分 Wemos D1单片机 DHT22温湿度传感器 SIM900A GSM模块 实物连接效果图 软件部分 DHT库的配置方法 添加.zip库文件包 代码 注意事项 前言 在某些实验室 ...

  9. Arduino文档阅读笔记-WeMos D1 ESP8266 WIFI开发板入门

    WeMos D1开发板以ESP8266WIFI开发板为基础,使用Arduino开发板的设计,工作电压为3.3V设计出来的开发板,这个开发板仅仅是使用了Arduino uno的布局设计,并不是Ardui ...

最新文章

  1. 一个点到多边形顶点距离相同_走进高维空间——所有点之间的距离都相等!奇妙、疯狂、不可思议...
  2. LINQ体验(6)——LINQ to SQL语句之Join和Order By
  3. 用VB.NET(Visual Basic 2010)封装EXCEL VBA为DLL_COM组件(二)
  4. 一套完整的Selenium自动化测试框架设计实战,这次38K, 妥了
  5. 嘉善 机器人比赛_电脑机器人比赛辅导教师培训在浙师大嘉善附校举行
  6. 关于抓包出现TCP DUP ACK问题
  7. Servlet要点、请求与响应
  8. Oracle常用导出导出命令及性能效率对比
  9. 如何将妙控键盘连接到 Macbook?
  10. 浅谈客服中心员工情绪管理这件事
  11. BestCoder HDU 5750 Dertouzos
  12. 【win11】你不能不会的技巧(持续更新)
  13. IT职业技能图谱:IT工程师学习路线
  14. python 标签云_Python中文标签云之pytagcloud
  15. Excel 隔行插入行V2022.7(支持win11,支持Office 和WPS)
  16. 【SAP Basis】SAP用户权限管理
  17. 设计模式(十):模板方法模式
  18. 大数据项目之电商分析平台(2)
  19. Hexo系列 | Hexo部署至服务器
  20. java微信天气查询接口,全国天气预报信息 API 接口

热门文章

  1. 笔记本电脑连接wifi显示无网络访问权限怎么办?
  2. django arya插件对数据库操作使用,reverse发娘解析url的使用
  3. 联想小新air13pro重装系统_联想小新Air 13怎么装win10系统|联想小新Air 13用u盘重装win10系统教程-系统城...
  4. 侍魂无限跳服务器,经典游戏《真侍魂》橘右京的无限残像,对手就这么活活的被挡死了...
  5. 更改linux文件/目录的权限、拥有者及用户组
  6. wincc7.3与MYSQL_Wincc7.3学习之——如何建立起数据库链接
  7. 详细的网络安全基础,一篇文章统统告诉你
  8. STM32之引脚GPIO
  9. ldd 执行结果:不是动态可执行文件
  10. excel给定一个日期,确定是本月的第几周