基于WeMos D1+esp8266的智能垃圾桶和智能家居
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的智能垃圾桶和智能家居相关推荐
- 基于Wemos D1避障WiFi小车及智能垃圾桶设计
基于Wemos D1避障WiFi小车及智能垃圾桶设计 一.实验器材 主控芯片 Wemos D1 其他器材 HC-SR04超声波.L9110s电机.ESP82660WiFi模块.蜂鸣器 所需设备 TCP ...
- 基于 wemos d1 智能感应开盖垃圾桶
基于WEMOS d1的智能感应开盖垃圾桶 1.需要用的软件: arduino 垃圾桶视频: 智能感应开盖垃圾桶 2.硬件清单 1.Wemos d1 板子 2.超声波模块 3.SG90 舵机 4.垃圾桶 ...
- 基于Wemos D1的智能感应开盖垃圾桶
硬件:这个项目我们主要用到的东西有环保型垃圾桶,Wemos D1模块,舵机,超声波模块,串口助手,若干条杜邦线等等. 环境:arduino 思路:首先这个项目又超声波,wemos d1模块,舵机SG9 ...
- 基于Wemos D1的感应开盖垃圾桶
参考:基于Wemos D1的感应开盖垃圾桶(增加自己的代码实现部分) 作者:LEO-max 发布时间:2020-12-29 15:21:26 网址:https://blog.csdn.net/zouc ...
- 基于Wemos的感应开盖垃圾桶
基于Wemos的感应开盖垃圾桶 一.绪论 1.研究背景 2.研究意义 二.系统总体设计方案 1.设计思路 2.硬件平台功能介绍 3.软件开发环境 三.设计思路实现步骤 1.Wemos的IO口研究驱动蜂 ...
- 基于wemos D1的无线遥控灯(433m无线模块)
参考:基于wemos D1的无线遥控灯(433m无线模块) 作者:一只小阿大:) 发布时间: 2021-04-16 09:25:53 网址:https://blog.csdn.net/qq_44610 ...
- esp8266单片机透传_基于WeMos D1(ESP8266)的校园卡门禁系统
刷卡https://www.zhihu.com/video/1107591334902345728 电脑端控制https://www.zhihu.com/video/11075913630797332 ...
- 基于Wemos D1和SIM900A(发短信和打电话)的温湿度报警系统
目录 前言 硬件部分 Wemos D1单片机 DHT22温湿度传感器 SIM900A GSM模块 实物连接效果图 软件部分 DHT库的配置方法 添加.zip库文件包 代码 注意事项 前言 在某些实验室 ...
- Arduino文档阅读笔记-WeMos D1 ESP8266 WIFI开发板入门
WeMos D1开发板以ESP8266WIFI开发板为基础,使用Arduino开发板的设计,工作电压为3.3V设计出来的开发板,这个开发板仅仅是使用了Arduino uno的布局设计,并不是Ardui ...
最新文章
- 一个点到多边形顶点距离相同_走进高维空间——所有点之间的距离都相等!奇妙、疯狂、不可思议...
- LINQ体验(6)——LINQ to SQL语句之Join和Order By
- 用VB.NET(Visual Basic 2010)封装EXCEL VBA为DLL_COM组件(二)
- 一套完整的Selenium自动化测试框架设计实战,这次38K, 妥了
- 嘉善 机器人比赛_电脑机器人比赛辅导教师培训在浙师大嘉善附校举行
- 关于抓包出现TCP DUP ACK问题
- Servlet要点、请求与响应
- Oracle常用导出导出命令及性能效率对比
- 如何将妙控键盘连接到 Macbook?
- 浅谈客服中心员工情绪管理这件事
- BestCoder HDU 5750 Dertouzos
- 【win11】你不能不会的技巧(持续更新)
- IT职业技能图谱:IT工程师学习路线
- python 标签云_Python中文标签云之pytagcloud
- Excel 隔行插入行V2022.7(支持win11,支持Office 和WPS)
- 【SAP Basis】SAP用户权限管理
- 设计模式(十):模板方法模式
- 大数据项目之电商分析平台(2)
- Hexo系列 | Hexo部署至服务器
- java微信天气查询接口,全国天气预报信息 API 接口
热门文章
- 笔记本电脑连接wifi显示无网络访问权限怎么办?
- django arya插件对数据库操作使用,reverse发娘解析url的使用
- 联想小新air13pro重装系统_联想小新Air 13怎么装win10系统|联想小新Air 13用u盘重装win10系统教程-系统城...
- 侍魂无限跳服务器,经典游戏《真侍魂》橘右京的无限残像,对手就这么活活的被挡死了...
- 更改linux文件/目录的权限、拥有者及用户组
- wincc7.3与MYSQL_Wincc7.3学习之——如何建立起数据库链接
- 详细的网络安全基础,一篇文章统统告诉你
- STM32之引脚GPIO
- ldd 执行结果:不是动态可执行文件
- excel给定一个日期,确定是本月的第几周