实关于esp8266网上有许多教程,好多前辈玩这个已经好多年了,但为了给像我这样的小白系统的解决制作过程中的一些问题,我还是写出来。
我自己也是刚开始玩,如有不对的地方还请大神们多多指教。在此感谢iangzy,老王,歪哥为我解决了一些制作过程中的问题。
1.esp8266模块
首先当然你要有一块esp8266模块,像这样的,最好是有底板的,带Micro口的,这些淘宝上都可以搜到的,我的就是淘宝上买的,大概30-40RMB左右,当然,如果你的动手能力比较强的话可以自己做底板。
2.如何将固件下载到esp8266中
在这里你需要下载两个东西,就是Flash下载工具和固件
将自己的esp8266插到电脑上,确定连接没问题的话打开设备管理器看下自己的串口是多少,我这边是COM6
将下载的Flash下载工具解压,打开ESPFlashDownloadTool_v3.4.9.2.exe,打开是这样的,选择esp8266 DownloadTool
在这里需要注意的几点是:
(1)固件选择之前下载的固件DNS.ino.ino.nodemcu.bin。
(2)地址输入0×00000(可能地址这一栏会出现红色的状况,导致无法烧入固件,此时把下载器关了重启下,然后把地址那栏清空再自己手动输入就好了)。
(3)这边需要将DoNotChgBin勾选起来,否则烧入固件后可能没有wifi,当然不同的板子可能不太一样,这个请大家自行测试。
(4)这边串口按照自己之前查的选择就行了,波特率115200就可以了。
其他设置按照红框里面的选择就行
设置完这些后就点击START开始烧flash,烧完后如果模块正常的话电脑会多出来一个叫HH的wifi,这个wifi就是esp8266发出来的。
如果没有显示HH,就按下esp8266的RST键复位,等个几秒钟就会显示出来。此时你就可以连接HH了。wifi的密码为:m1234567
在这里我就不详述了,擦完大概是这个样子,然后重新按照上面的步骤烧flash就可以了。 )
3.用arduino上传web到esp8266
我的是Windows系统,arduino版本是1.8.4,安装完后打开工具——开发板——开发板管理器,此时会自动更新,过个数分钟更新完毕后(当然,如果用外网的话可能几秒钟就能解决),搜索eps8266,选择第二个,版本选2.2.0,然后安装。
将上面解压后的web源码上传工具的tools放到Arduino根目录里合并,然后返回以下界面,点击文件——新建,新建一个项目,将里面的代码清空,然后点击文件——保存,将项目保存到一个你能找到的位置,点击工具——esp8266 sketch data upload,会出现以下的提示,选择No,会发现新建的项目中多出来一个data文件夹,里面是空的,然后将上面下载的web源码\data里面的三个文件复制到这个文件夹里面。
然后再返回arduino,点击工具,开发板按照自己买的选择,端口选择自己的端口,其他设置如下图红框里面的。
设置完后点击esp8266 sketch data upload,这时不会出现提醒,开始上传web页面,等个1分钟左右esp8266上的蓝灯不闪烁了就表示上传完了。
然后电脑连接HH的wifi,浏览器输入192.168.1.1/backdoor.html就能进入web页面了,如下图,路由器型号选择通用型,然后输入你测试的wifi编号,点确定,电脑提示SSID伪造成功,手机就会发现出现了个和你测试的wifi一样的没有加密的wifi,原来的HH会不见了,8266的蓝灯常亮,手机连接那个wifi后过几秒会自动弹出路由器升级的页面,然后输入管理员密码,点击开始升级,此时你的esp8266会将管理员密码保存,升级完后,8266的灯就会灭掉。
电脑重新连接HH,进入web页面后管理员密码会在下面的红框这一块显示,这时,就表示获取密码成功了。
到此,整个esp8266制作钓鱼wifi的教程到此结束,祝大家玩的开心!!!
半年前想搞个小副屏显示主机参数的,但是中间一直忙于学业就咕到现在。最近闲的无聊于是开搞。目前大部分我看到的DIY产品都是通过串口连接电脑,感觉有点局限还要走机箱拖根线。于是决定用8266wifi模块来做个局域网无线参数显示版。应用范围更广,比如你可以在房间摆一个看看服务器的状态什么的,下面开始动工。
开发环境Arduino,开发板ESP8266,屏幕0.96 iic OLED屏幕,上位机AIDA64。一套下来20元左右比自带OLED的主板便宜多了。
首先在AIDA64中可以创建个LCD的项目,选RemoteSensor这一栏。之后导入我配置好的文件,在右上角可以找到导入按钮。我基本上把常用的已经全部给列出来了。
然后在浏览器中可以输入你本机IP加端口号看看显示正常不。
这时候我们就需要用ESP8266wifi模块来获取这个网页中的数据。
但是有个问题,你直接HTTP.request()请求到的源码是不变的。因为这个数据会被JS代码中AJAX请求给局部刷新。我直接人傻了,8266咋跑js啊,然后不甘心的我决定自己搞个上位机。用python写了个上位机利用AIDA64的共享注册表的机制来获取所需要的参数,之后把获得的数据打包成JSON格式用TCP协议给8266发过去。
大概是这样
然后又出现了一个问题,那就是貌似这样一操作的话副屏刷新跟不上主机的状态变化啊,要滞后个1-2S,这能忍?我打着游戏呢显卡都开始咆哮了,这里风扇转速还是几百转,很烦。于是又开始研究起来HTML,在论坛里发帖求助求助被 spirndai 老哥找到了解决方法,那就是直接看这个网页在刷新的时候请求了哪些URL,然后直接访问这个URL就可以获得变动的数据了,这就很妙了。
简简单单的发现就是这个URL里有我们所需要的数据,这也算是一种巧妙的解决思路吧。
最后在ESP8266中用GET来请求HTML数据,得到后并解析字符串获取我们所要的数据
然后就可以在OLED上显示出来了!简单的取了几个图片的模来使得我们的这个小玩意更有质感,效果图:
目前只写了GPU和CPU两种面板的绘制。但是内存的图片已经取好了模,之后可以添加。频率和转速不是我不想加单位而是加不下了!
点击文章底部“了解更多”原文内有github链接及制作步骤
谢谢观看!
文章内容为作者原创,不代表本论坛观点
关注数码之家网浏览更多精彩资讯、拆机图文DIY
技术交流请联系原作者
作者:2235880905
本文来源:数码之家
面的章节,我们介绍了ESP8266WiFi库 Tcp client的用法,并模拟了Http请求。但是,可以看出通过WiFiClient模拟Http请求,我们需要自己拼装Http请求协议,稍微不小心就很容易拼接错误。
那么有没有针对Http请求操作的库呢?答案肯定是有的,这就是博主本篇需要跟大家讲述的知识——ESP8266HTTPClient库。
请注意,ESP8266HTTPClient库不属于ESP8266WiFi库的一部分,所以需要引入
#include <ESP8266HTTPClient.h>
但是在正式开始之前,我觉得有必要介绍一下HTTP协议。很多朋友想往python爬虫方面发展,这些基础知识不能不知道
HTTP协议作为TCP/IP模型中应用层的协议,承载于TCP协议之上,有时也承载于TLS或者SSL协议层之上,这个时候就是我们时常说的HTTPS。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP默认的端口号是80,HTTPS的端口号是443。
浏览网页是HTTP主要应用,但不代表只用于网页浏览。HTTP只是一种协议,只要通信双方遵守这个协议,HTTP就能用。
请求方法有很多
1 Get请求
请求例子,使用Charles抓取的request:下面的代码是使用谷歌浏览器抓取的请求头信息
GET /562f25980001b1b106000338.jpg HTTP/1.1 Host img.mukewang.com User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 Accept image/webp,image/*,*/*;q=0.8 Referer http://www.imooc.com/ Accept-Encoding gzip, deflate, sdch Accept-Language zh-CN,zh;q=0.8
第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.
第二部分:请求头部:用来说明服务器要使用的附加信息:HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是告诉服务器本地用的浏览器类别.
第三部分:空行,请求头部后面的空行是必须的:即使第四部分的请求数据为空,也必须有空行。
第四部分:请求数据也叫主体,可以添加任意的其他数据。这个例子的请求数据为空。
2 POST请求
POST / HTTP1.1 Host:www.wrox.com User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) Content-Type:application/x-www-form-urlencoded Content-Length:40 Connection: Keep-Alive name=Professional%20Ajax&publisher=Wiley
有请求了服务器就有相应。
一般情况下,服务端接收并处理客户端发过来的请求会返回一个HTTP的响应信息。HTTP响应也由四个部分组成,分别是:
第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)
第二部分:消息报头,用来说明客户端要使用的一些附加信息:
第二行和第三行为消息报头
Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8
第三部分:空行,消息报头后面的空行是必须的 4. 第四部分:响应正文,服务器返回给客户端的文本信息。
空行后面的html部分为响应正文。
同时服务器还会返回一个状态码,用来说明本次请求目前所处状态
常见状态码:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
*请认真填写需求信息,我们会在24小时内与您取得联系。