ESP8266 mDNS
https://circuits4you.com/2017/12/31/esp8266-mdns/
本教程介绍如何使用ESP8266进行多播DNS?在网络世界中,很难记住每个网站和计算机的IP地址,解决这个问题域名系统(DNS)用于制作人类可理解的名称。在ESP8266中使用ESP作为Web服务器时,很难记住ESP8266的IP地址,并且在DHCP模式下很难识别ESP的IP地址。即WiFi路由器为ESP8266分配IP地址。大多数ESP8266应用程序没有显示界面,并且不容易访问以了解其IP地址。为了克服这个问题,使用mDNS。
什么是mDNS?
有关mDNS的更多信息,请阅读RFC6762
随着联网设备变得更小,更便携和更普遍,使用配置较少的基础设施进行操作的能力变得越来越重要。特别是,在没有传统的托管DNS服务器的情况下查找DNS资源记录数据类型(包括但不限于主机名)的能力是有用的。
多播DNS(mDNS)提供在没有任何传统单播DNS服务器的情况下在本地链路上执行类似DNS的操作的能力。此外,多播DNS指定DNS名称空间的一部分可供本地使用,无需支付任何年费,也无需设置授权或以其他方式配置传统DNS服务器来回答这些名称。
多播DNS名称的主要优点是
- 它们几乎不需要管理或配置来设置它们,
- 它们在没有基础设施时工作,并且
- 它们在基础设施故障期间工
在ESP8266上使用本地网络中的mDNS
使用ESP8266的mDNS程序
该程序创建ESP8266 mDNS,名称为esp8266 MDNS.begin(“esp8266”)
/*
* Circuits4you.com
* mDNS example ESP8266 in Arduino IDE
* After connecting to WiFi router enter esp8266.local in web browser
*/
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h> const char* wifiName = "circuits4you.com";
const char* wifiPass = "your_password"; ESP8266WebServer server(80); //Handles http request
void handleRoot() {
digitalWrite(2, 0); //Blinks on board led on page request
server.send(200, "text/plain", "hello from esp8266!");
digitalWrite(2, 1);
} // the setup function runs once when you press reset or power the board
void setup() { Serial.begin(115200);
delay(10);
// We start by connecting to a WiFi network
Serial.println(); Serial.print("Connecting to ");
Serial.println(wifiName); WiFi.begin(wifiName, wifiPass); while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
} Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); //You can get IP address assigned to ESP if(WiFi.status() == WL_CONNECTED) //If WiFi connected to hot spot then start mDNS
{
if (MDNS.begin("esp8266")) { //Start mDNS with name esp8266
Serial.println("MDNS started");
}
} server.on("/", handleRoot); //Associate handler function to path server.begin(); //Start server
Serial.println("HTTP server started");
} // the loop function runs over and over again forever
void loop() {
server.handleClient();
}
上传此程序后打开串口监视器,看看一切正常。
然后打开Web浏览器并在地址栏中输入esp8266.local。确保您打开Web浏览器的esp和笔记本电脑(不是ANDROID PHONE)使用相同的WiFi网络。
DNS系统有www.xyzabc.com这样的名字。但是当你使用mDNS时,本地DNS系统没有任何DNS服
务器。你必须在那个点(。)local之后输入域名。恩。esp8266.local
重要说明: Android操作系统不支持mDNS。您必须在手机中使用IP地址。要解决此问题,请在网页中显示IP地址。这样你就可以在笔记本电脑上获得ESP8266的ip。
最新文章
- Log4j记录日志步骤
- 用vue.js学习es6(一):基本工具及配置
- ASP.NET MVC 5 - 查询Details和Delete方法
- HDU 4067 hdoj 4067 Random Maze 最小费用流
- Linux环境下SVN服务器端的安装与配置
- devexpress bandgridview使用总结(14.2)
- 设置UIButton或者UILabel显示文字的行数
- HDU 1846 Brave Game(巴什博弈)
- CAN基础知识
- python简单的爬虫,网页图片
- word2010表格中的内容怎么设置行距
- React Native中常见操作
- CF R303 div2 C. Woodcutters
- Eclipse生成Jar包方法
- 安迪的第一个字典(Andy&#39;s First Dictionary,UVa 10815)
- 如何为图片添加热点链接?(map + area)
- LeetCode算法题-Hamming Distance(Java实现)
- Microsoft .NET Core 1.0.0 VS 2015 Tooling Preview 2 Uninstall Failed
- c++实现循环队列
- python模块:re
热门文章
- 学linux,从Ubuntu开始
- HDU4609 3-idiots(生成函数)
- CF607B Zuma(区间dp)
- Android智能指针SP WP使用方法介绍
- springboot 学习之路 9 (项目启动后就执行特定方法)
- tab 切换实现方法
- [20190214]11g Query Result Cache RC Latches补充.txt
- windows下VMware-workstation中安装CentOS
- 大话C#之委托
- c/c++ const this指针