再谈nodemcu

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pickers/article/details/79344376
嗯,再来谈下nodemcu的使用体验,首先我得说,它很牛逼,当时特么的直接都被我玩的冒烟了,吓得我干净拔掉电源,然后冷却十分钟后插上电还能用,自我恢复能力贼强。
最近在b站上看了下路由杀手这个黑科技,就是用nodemcu做的,直接有群友提供固件和操作方法,直接就可破坏你想要的路由器使其瘫痪,其实就是路由欺骗,本来准备直接操作一番,但是一想发现这不是我的风格,我特么是这么浮躁的性格么?于是我就压制住了尝试的心去看源码,emmm,一看发现源码是基于arduino IDE环境写的,(虽然说我之前搞机械仿生手臂那个手臂上面也用的是arduino ide写的,但我当时只是简单的看了下,没时间具体去看是什么内容。)我瞬间就不感兴趣了,我特么不能为了你这个代码再学下arduino平台吧,好吧,其实是可以学的,but need time,然后我就放弃了这个马路杀手代码,转而去读nodemcu官方源码了。
还有一点,一般的话高深的路由技术可能需要修改链路层的相关东西,这些我还研究的不到位,之后会对计算机网络这块加深研究。
这边呢,由于我之前弄过一些esp8266的相关东西,这边也就提下,之前我弄esp8266的时候,其实一般从其中的app文件里面的usemain开始读代码,里面涉及到一些osi的相关操作,那些都是乐鑫官方提供的,一般的话公司都只是对一些flash进行操作保存下自己的相关信息。其实学wifi模块,无非就是tcp/udp的通信,配网,串口透传速率,http,还有些关于json的解析,其他的就没啥了,说实话串口透传速率你很难改的掉,这个受限于硬件,但这个必须得搞清楚。配网的话官方都提供了很好的demo了,还有http/json都是很好弄的,直接调用相关api解析即可。就我之前来看,串口一般是通过中断接收的,因为我一般用的是不带操作系统的,(其实带操作系统和不带操作系统的区别在于带操作系统提供了不同的任务栈机制,可以同时工作很多事情,很方便,而不带操作系统,其实就是个死循环,然后用定时器和中断来执行相关突发和规律事件)接受到的数据放到一个队列中,然后主程序定时读取这个数据进行相关解析处理。之后就是tcp/udp的数据处理了,这个其实就在回调中,还是比较好找的,然后记住这几个点,基本上就能应付大部分的开发了。。。
回到nodemcu,我凭借着敏锐的第六感,按照之前的思路去从usermian开始读源码,我擦,读了半个小时一脸蒙蔽,啥都不知道,于是我又看了半个小时之后默默的打开了百度,还是得靠度娘带我入门。ok,还是准备工作没有做足,其实nodemcu是有两大块组成,一个就不用说了lua脚本,还有一个是乐鑫官方的驱动。这尼玛就是在官方代码上进行改造,然后将elua移植进去(elua是个开源的lua解释器,可直接在github上下载),是的,直接将解释器移植过去了,所以说我们直接就可以通过lua语言来编程,作者也是牛逼,这个想必是要改下其中的一些东西,不然怎么将lua语言和esp8266驱动关联到一起的,我之前还脑残的以为是串口中断啥的,唉,太年轻。
说实话,基于lua的编程还是很简单的,主要是文档给的很齐全啊,这个不得不佩服,直接读文档说明,怎么开一个服务器,怎么监听一个端口,真的方便啊。比如如下图所示开个服务器,并且进行交互的流程:

像上图中的wifi.setmode() net.createServer()都是文档中有详细介绍的,都有demo,,,
结果图如下:
所以说我接下来没有学习lua的想法,要我学习lua,还不如去弄lisp的方言Schme,我对Schme还是很有想法的。之后的话有时间会研究下这个lua的解释器是怎么和乐鑫官方驱动关联起来的,接下来几天的话得弄下外骨骼机器人,不然下周一去上班不好交差啊,,,

其实说实话,这些博客没啥技术,就是随便聊聊,之所以一直坚持在写,不是为了名气,只是为了执念,和当初写博客的初心,毕竟,作为一个技术宅,对我本人来说能拿得出手的只有技术了,,,,毕竟不能总靠脸吃饭,不然要饿死,,,,

猜你喜欢

转载自blog.csdn.net/pickers/article/details/79344376