ESP8266(ESP-12F)+DS18B20+贝壳物联

ESP8266(ESP-12F)+DS18B20+贝壳物联

  • 新手上路,大家多包涵
  • 写这篇博文的背景
  • 初次刷固件;
  • 初次遭遇lua
  • 初识贝壳物联
  • 贝壳校时钟
  • ESP8266+STC15F104另辟蹊径
  • 多路开关的问题
  • 尝试NodeMCU
  • 上网一查,果然可以实现
  • 最后总结

新手上路,大家多包涵

	大家好! 这是我第一次写博文,因为这两天为了能用ESP-12F读DS18B20的温度数据,很废了一番周折,于是想把这个过程分享给大家,也许能对谁有所帮助。

写这篇博文的背景

	事情还得从去年这个时候说起,家里的宽带要到期了,去营业厅续约,问营业员有没有优惠政策,营业员说还有一个名额,买个小音箱宽带免费,当时第一个想法是,宽带费包含在音箱的价钱里了,出乎意料的是音箱不到90元,大家可能猜到了那是个天猫精灵。因为以前看到过小艾以及蔚来车上的那个语音对话的东西,所以大概知道,天猫精灵是可以语音控制,播放音乐的小音箱。
	回家之后立刻联网试用,出乎意料,连方言都能听懂,查个天气,问个时间,设个提醒还是非常方便的,毕竟个头就那么小,音质就不纠结了。上网一查,更是不简单,天猫精灵是阿里巴巴智能化的大布局,有兴趣可以自己了解。自诩为老牌的电子爱好者居然不了解天猫精灵,确实有些惭愧。赶紧恶补了一下,居然还能语音控制家电。通过ESP8266控制家电的网文一下吸引了我,现在的智能推送非常到位,手机推送了ESP-12F试用广告,限购一片,不到6元还包邮。

初次刷固件;

	果断出手,3天到货,虽然用过ESP8266-01,但是只是通过串口AT指令控制,没有刷过固件。找到一篇天猫精灵通过贝壳物联语音控制灯的网文,如法炮制,虽然,对lua编程一点都不会,但是照着做非常顺利就实现了,当然后来发现,高兴得太早,但当时的心情还是非常愉悦的,最大的收获就是,wifi模块是可以编程的。

初次遭遇lua

   为什么说高兴的太早呢?因为,晚上弄成功之后,第二天一早发现不好用了,原因是wifi断网之后,ESP-12F需要重启才能再次联网,这当然是lua程序要解决的问题,但是,对lua一点不懂,只能上网去找,后来找到一篇网文,直接把lua程序拷贝下来,问题解决了。所以,也没有再去补lua编程的课。

初识贝壳物联

 	说到贝壳物联不能不提一下onenet,免费的物联网平台,通过C51单片机+wifi设备服务器居然实现鱼缸的温度上传,过滤泵,灯的控制。
 	但是,要和天猫精灵对接好像有点难。贝壳物联成了最佳选择,在使用过程中了解了贝壳物联,除了微信小程序,绑定天猫精灵,还有定时器,并且,还能获得日期时间。

贝壳校时钟

   因为发现从贝壳物联可以获得日期和时间,于是,想用ESP8266-01+C51重新做个可以自动校时的时钟。原理是:通过C51单片机,串口通讯控制ESP8266-01连接家里的wifi,并连接贝壳物联,20~30s请求一次时间,相当于心跳,同时通过C51实现简单的LED时钟,通过获取的时间校准。解决时钟走时误差,显示室温的同时也传到贝壳物联上,随时随地可以掌握家里的温度。

ESP8266+STC15F104另辟蹊径

	因为手头有几个ESP8266-01,知道这个片子内存小,刷不了大固件,所以一直是通过单片机串口通讯来控制,这样也就避免再遭遇lua编程的问题。同事想控制办公室的鱼缸灯和气泵,就是定时开关,正好利用贝壳物联的定时功能,在电脑上就能方便修改定时的时间,而不用编程,我认为这是贝壳物联非常好的功能。因为是用单片机,所以实现起来没有什么太大的难度。
	可以通过手机微信小程序直接打开、关闭鱼缸的灯和泵,也可以通过贝壳物联定时开关鱼缸的灯和泵。打开定时,鱼缸的灯按照贝壳物联的定时设定自动开、关。关闭定时,鱼缸的灯和泵不接受平台的定时控制。

ESP8266(ESP-12F)+DS18B20+贝壳物联_第1张图片

多路开关的问题

	因为总在客厅活动,首先控制的是客厅的灯,而客厅有两组灯,所以希望天猫精灵能控制两组灯。贝壳物联的解决方案是子设备,将主设备设置为万能遥控器,子设备按照天猫精灵的分类设置,但是,那样就要对天猫精灵说,打开:插座、开关等,和实际的电气名称对不上,很别扭。天猫精灵的组合指令是最佳解决方案,但是,后来此功能不能用了,所以一直没有实践过,前段时间我发现这个功能又回归了,所以,我的双灯控制也顺利实现了。只是没有用子设备的方式,而是用灯的方向控制实现的。组合指令功能太好了,这样不止可以控制两路。 

尝试NodeMCU

ESP8266-01送同事了,天猫精灵的组合指令也能用了,就想在ESP-12F上实现双灯控制,lua程序修改相对简单,只是增加一组输出控制,测试成功。不禁对NodeMCU兴趣大增,单片机都省了。于是就想在鱼缸控制器上增加水温采集功能。

上网一查,果然可以实现

	找到一篇文章,复制lua程序,刷的时候总是提示错误,各种查资料,给DS18B20加电阻,甚至被迫查了一些lua的资料,领略了lua的解释语音的优点,但还是不行,后来上贝壳物联的群里一问,一位大神告诉我固件里缺少ow模块,给我一个nodemcu-build.com,告诉我固件可以在网上根据自己的需要选择模块自己生成,这让我吃了一大惊,如此神秘的固件居然也能DIY,立马动手,build了包含ow模块的固件,刷进ESP12-12F。
	![含ow的固件](https://img-blog.csdnimg.cn/20200319112450220.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hoX3dvbGY=,size_16,color_FFFFFF,t_70)
	正在感叹开源的伟大,如此神秘的固件都能DIY,接下来彻底被击败了。lua刷不进去。
	![刷lua](https://img-blog.csdnimg.cn/20200319113001683.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hoX3dvbGY=,size_16,color_FFFFFF,t_70)
	lua无论如何就是刷不进去,换原来的固件就没问题,难道固件做的不对,但是,涮完固件的提示没问题。后来感觉应该是波特率的问题,可是也找不到固件波特率设置的方法,后来发现很多文章都介绍用ESPlorer下载lua,那就下载试试,结果发现明显改观,虽然也无法下载完成,但是已经不是乱码,而是错误提示。主要是新固件中timer语法和以前不一样,查看lua的资料,修改完错误,init.lua顺利下载成功。经过,几天的折腾,终于被补不上了lua的课,再次领略了解释语音的优点,边编程,边调试,错误查找速度大幅提高。

ESP8266(ESP-12F)+DS18B20+贝壳物联_第2张图片
ESP8266(ESP-12F)+DS18B20+贝壳物联_第3张图片

最后总结

写这个博文的目的是分享一下在NodeMCU上读取DS18B20的历程,现在言归正传总结如下:

  1. 感谢网友Π提供的固件DIY网址:https://nodemcu-build.com/
  2. 注意选择模块的候考虑需求,选的太多flash的空间可能不够
  3. 刷固件用flash_download_tools_v3.6.6,刷固件的方法,网上有很多,我就不重复了。
  4. 我用NodeMCU Studio 2015(NodeMCU开发工具)V1.1无法刷lua后来改用ESPlorer v0.2.0-rc6 才刷进lua。
  5. 初次写这样的文章,没有经验,请大家指正。
    [1]:
    [2]:
    [3]:
    [4]:

你可能感兴趣的:(编程语言)