中美芯片之争 一场没有硝烟的战争
中美建交40年的经验告诉我们:合则两利,斗则两败俱伤。中国缺芯,美国通过芯片限令来掐脖子;中国搞定芯片,美国就通过芯片制造来阻止;中国搞定芯片制造,美国则将通过制造设备、材料以及软件来控制。因此, 中国走出芯片困境,需要勇气和理性并存。
根据上述国情,受害者也包括了daodanjishui这类软硬件科技开发者,不得不放弃美国芯片的软硬件方案,因为有可能某一天连运行代码的芯片都没有了,写的代码都不能运行了。在这个困难的时刻,国内STM32芯片的价格已经飙到天价,daodanjishui要做的事就是逐步淘汰使用美国芯片,把创作的重心放在国产芯片上,由于物联网时代的到来,万物互联,当然少不了wifi芯片,在嵌入式设备中基于成本等方面的考虑,ESP8266和ESP32芯片脱颖而出,该国产芯片雄起,并没有受到中美芯片之争导致价格上涨。发展国家科学技术从我做起。虽然我不能制造国产芯片硬件,但是我可以针对大部分国产芯片编写物联网软件生态,下面引出正题。
优酷视频演示效果如下:https://v.youku.com/v_show/id_XNTEzOTYyNTIzNg==.html
ESP8266真正流行起来的时间要追溯到2018年,当时各大开源STM32开发板教程(包括正点原子,野火)都采用了外接ESP8266模块无线上网的方式,不过技术还不够好,云服务器还没有搭建成功,教程也没有写好,反而板载用的是ENC28J60以太网模块接网线上网,或者是用好点的DM9000芯片接网线上网,这两个有线的网卡都需要跑一个UIP或者是LWIP的协议才能上网,当时这两个有线网卡的教程相当丰富!!!诱惑我当时我也入坑了这两个有线网卡的程序,速度慢就不说了,还涉及一堆寄存器,指针,结构体,要用单片机另外的资源去控制这两个网卡,现在都忘记怎么用了,总之走了弯路。而且当时开发板用无线上网的方案国内基本上是用高级单片机STM32的串口发送AT指令控制ESP8266的,其实这样也浪费了ESP8266的资源,背诵了一大堆AT指令,到现在也忘记了。当时我还把正点原子关于ESP8266的帖子都看完去,也是收获不大,顶多自主设计了一款空中鼠标申请了一个软件著作权之后就停滞不前了。
真正让我捣鼓ESP8266是这两年时间内,当时用安信可公司提供的eclipse 的SDK去开发ESP8266太过于繁琐,后面我才发现用arduino开发ESP8266就变得事半功倍了,不再需要AT指令了,取而代之的是Arduino随叫随到的开源库供我使用,到目前为止我都一直在用Arduino开发环境去开发ESP8266和ESP32,现在市面上一些智能家居都是用的ESP8266来做的,成本低很多。我现在针对电路城网站做出的物联网作品有:基于ESP32视频监控机械臂系统(上位机和下位机)、ESP8266彩灯矩阵系统(上位机和下位机)、ESP32国产物联网照相机系统(上位机和下位机)、ESP8266+Zigbee开源农业大棚监控系统(上位机和下位机)等等,打算都开源了,只不过写教程比较花时间,代码都已经写好的,例如现在智能灯系列的如下图所示。
以前用的都是RT5350做的网关或者是无线网卡,包括那个济南有人物联网用的就是RT5350的方案实现单片机串口转网络的方案,但是要明白RT5350是台湾联发科公司生产路由芯片,属于高端的芯片价格不便宜的,所以卖这些无线网卡的产品价格贵得离谱,不过它们的好处就是可以直接上网直接处理数据,还有上海的上海贝锐信息科技股份有限公司,主打产品就是内网映射花生棒,里面就用了RT5350!能让我们自己电脑开发的网站能让别人在公网上访问得到。
现在广大程序爱好者感到困惑的是ESP8266或者是ESP32能否作为路由器芯片,能直接上网吗?能直接做网关吗?能代替Linux系统吗?能跟单片机通信吗?能下载资料存硬盘吗?能使用MQTT协议吗?能图传吗?能显示网页吗?能照相吗?让我的开源教程来答疑解惑,ESP32出生到现在不超过5年,但是现在应用相当广泛了,性能跟STM32F4差不多了,完全可以自给自足了。数数手指头我也有十年玩转嵌入式的经历了,试问谁能坚持一个兴趣十年,然后十年经验出一个教程卖十几块,购买我的开源软件就相当于支持国产。
现在的ESP8266和ESP32属于能国产的芯片,上海乐鑫科技公司是这两个芯片原厂。在中美芯片之争的情况下,我希望自己能做几期开源项目采用国产芯片的方案来让广大开发者把注意力放在自家芯片上,发展和壮大本国的科学技术 ,暂时不考虑联发科或者树莓派之类的芯片软件方案,虽然这些跑Linux系统的芯片很好用很受欢迎,而且我是玩转ARM9比较早的一批玩家,对于RT5350这类跑Linux系统的芯片可以说学会爬行就直接可以学跑步了,不需要经过走路才能跑这个阶段。
下面才是正式搭建arduino ESP8266开发环境的步骤和运行用网页点亮普通RGB灯源码的步骤(硬件采用的是:mini D1 wifi ESP-12F N ESP8266开发板十块钱。普通RGB灯6毛钱)
(1)第一步下载Arduino IDE安装,双击下一步,下一步,直到完成,建议不要中文路径。
(2)下载ESP8266安装包插件,这是最方便的,如果在Arduino里面搜索安装,你会发现很慢,特别是在这个紧张的芯片之争的关键时期下,按照这个网址去下载:https://www.arduino.cn/thread-76029-1-1.html
(3)双击(2)下载的三个包中的一个,我双击安装的是第二个包,重启Arduino就可以安装好了。
安装好之后你会发现开发板选项多了ESP8266这类的开发板。实在不行就找其他教程再试试了,没有必要一步一步教这个开发环境搭建。
(4)打开我的工程:双击打开,
一看就知道ESP8266创建一个AP热点供笔记本或者手机链接上去,没有密码的。
(5)配置开发板和串口信息
注意选择的是什么型号的开发板型号还有你自己开发板连上电脑之后是占用的是哪个串口号
(6)按照源码的IO口连接RGB灯,再点击下载
#define LAMP_PIN1 14 //R--D5
#define LAMP_PIN2 12 //G--D6
#define LAMP_PIN3 13 //B--D7
注意了灯的GND与单片机的GND相连。代码中生成三路PWM波控制三个RGB管脚对应的灯丝发光。
下载完成即可运行程序了。
(7)用手机测试软件和硬件
ESP8266下载程序完成之后自动重启,开启了一个名字叫:DNSServer example的热点没有密码
用手机wifi连上之后,在浏览器输入192.168.4.1就会进入下面的主页:
开始测试,点击发送按钮:send 就会看到红色的字体,这是ESP8266给的反馈信息,根据这个知道机器是否响应了你的请求,这个反馈不知道有多少人都调不出来,如果我不收点钱啊,人人都能有了,同时看到灯变化了,红灯r亮度值是168,注意了,提交表单的时候页面不会跳转,市面上的软件方案有百分之八十的都会跳转,而我的没有,不信你可以试试页面上那个“提交表单指令测试”,体验一下跳转页面。所以我这个奇特的功能很容易改造为wifi遥控器,如果我不收点钱,大家都有了。想免费占便宜的看我代码截图,不过调试的遇到的麻烦还不如花几块钱买我的方案了,如下所示:
然后继续再点亮一个绿色的灯:
红绿双灯丝合成类似黄色的颜色效果:
其他设置买家自己摸索
最大的亮度是1024,最小亮度是0,相当于熄灭,最亮的仔如下(200行代码,不知道能值多少钱呢?这次收5块编辑费吧,算一行代码2.5分钱,到此差不多要结束了,写了半天了。):
后面还有更多精彩,免费和收费开源共存,欢迎广大DIY爱好者前来咨询。
如果是安装开发环境出了问题,那么请大家仔细上网搜寻解决问题的方案
如果是怀疑我代码写错了,那么是不可能的,代码我自己写,自己硬件测试。
如果有更多的需求请私下找我交流,我缺的不是技术,而是一个奇特的想法或者创意······