大半年前想搞个小副屏显示主机参数的,但是中间一直忙于学业就咕到现在。最近闲的无聊于是开搞。目前大部分我看到的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
本文来源:数码之家