Beaglebone Black– 智能家居控制系统 LAS - 刷 WiFi 模块 ESP8266 Firmware 和 ESP8266 直接收发 GPIO 信号
用 Windows 来刷 ESP8266 固件有很多中文教程,来试试直接用 BBB 刷吧。目标是 NodeMCU,ESP-01 可用,就是我买的那个。
接线方式在上一篇。当 echo ‘BB-UART2’ > /sys/devices/bone ….. 之后,ttyO2 可用,测试能连接后可以动手(比如用我上一篇博文那愚蠢的做法,或者下载个 minicom。注:minicom 是按 AT 然后回车再按 ctrl-J,它回答 OK 就是正常连接了)。其实这只是确保我,或者你,没插错引脚。
固件工具
首先需要刷固件的软件,esptool,git clone 它下来。
git clone https://github.com/themadinventor/esptool.git

进去 esptool 文件夹,伟大的作者已经做好了安装脚本,setup.py,这样用:
python setup.py install
它会自动完成必须的动作。
固件档
搞定了工具,还要下载固件。NodeMCU 的固件发布在 github,可以在这里查看:https://github.com/nodemcu/nodemcu-firmware/releases/
下载可以用你电脑下,然后 scp (windows 的话 pscp,putty 带有的 copy 命令),又或者,直接在 BBB 下载。我选后者,这样操作:
wget https://github.com/nodemcu/nodemcu-firmware/releases/download/0.9.6-dev_20150704/nodemcu_float_0.9.6-dev_20150704.bin

接线与刷新操作
万事俱备,只欠GPIO0 接 GND。Flash ROM 需要把 GPIO 0 拉低,接 GND。接上后重启(BBB 和 ESP8266,关掉再打开,BBB中需要再次 echo ‘BB-UART2’ > /sys/devices/bone…..)。
然后 ./esptool.py -p /dev/ttyO2 -b 115200 write_flash 0x00 ~/nodemcu_float_0.9.6-dev_20150704.bin

一分钟搞定。然后再次关机,两者都关掉。GPIO 0 刚才拉低的,取消,GPIO 0 线拔掉。再度开机。再度 echo ‘BB-UART2’ > ……
测试效果
这次 NodeMCU 了,该用合适的终端了。我用 minicom 。记得,NodeMCU 固件默认 baud 是 9600,minicom –s 调好再进去。
没显示该有的输入 prompt,唉,那好吧,我主动点跟它打声招呼,hi,然后 >> 输入 prompt 就出现了…. 请无视我随后输入的 wif,我原意是打 wtf …。(注:这一段只是开个玩笑而已…)

上图我拿些只有 NodeMCU 才有的函数来试试,反应正常了。上图屏蔽了的是 SSID 和密码。print 所显示的是我无线路由 DHCP 分配的 IP、掩码、和当前网关地址。
刷 ROM 到此为止,成功。
从 WiFi 模块的 GPIO 直接输出
不够,用 ESP8266 不止为了接个 WiFi。按照测试惯例,上 LED 灯,用 ESP8266 本身的 GPIO 2 引脚(下图橙色线接着的),接 450Ω电阻,和 LED 灯。

BBB 只是负责给我 TTY 进去 ESP8266,不参与控制不参与电路。
代码:
gpio.mode(4,gpio.OUTPUT)
gpio.write(4,gpio.HIGH)
gpio.write(4,gpio.LOW)

说好的 GPIO 2 呢?明明是接着 GPIO 2 引脚为何现在代码是 4 呢?是 PIN 4 代表 GPIO 2 么?不知道,我可是从 0 一个个测试才发现是 4 的… 很无语,但是还好,能用了。
满足了。实验到此为止。后面,就是写代码,让它接受到特定数据包,再直接控制 gpio 信号。
重要参考
| esptool | https://github.com/themadinventor/esptool |
| NodeMCU 官网 | http://www.nodemcu.com/index_cn.html |
| NodeMCU 论坛 | http://bbs.nodemcu.com/ |
| wget | https://en.wikipedia.org/wiki/Wget |
| minicom | http://linux.die.net/man/1/minicom |
| ESP8266 刷固件教程 | https://ukhas.net/wiki/esp8266_firmware_update |
| NodeMCU 固件 git | https://github.com/nodemcu/nodemcu-firmware/releases/ |
| NodeMCU API 说明 | https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_cn |
我在这群里,欢迎加入交流:
开发板玩家群 578649319
硬件创客 (10105555)
Beaglebone Black– 智能家居控制系统 LAS - 刷 WiFi 模块 ESP8266 Firmware 和 ESP8266 直接收发 GPIO 信号的更多相关文章
- Beaglebone Black – 智能家居控制系统 LAS - 插座组装
上一篇完成了服务端,这次是拼图的最后一块,插座. 插座一个,准备废掉它其中一个插头 预想电路草图 物料清单: 两路插座一个 继电器一个,3.3V 能驱动即可: 交流转直流 3.3V,我买了现成的模块: ...
- Beaglebone Black–智能家居控制系统 LAS - 用 UART 连接 ESP8266 (ESP-01 版)
这是一块便宜 (¥12.5)的 WiFi 模块,3.3V ,芯片是乐鑫科技(Espressif)出品.它本身是很多玩法,比如这个 NodeMCU (淘宝有套件焊接好一整套的带 USB 接口的,搜 es ...
- BeagleBone Black– 智能家居控制系统 LAS - ESP8266 UDP 服务
NodeMCU 的文档里面终于发现,ESP8266 的GPIO 2 确实是 PIN 4,GPIO 0 是 PIN 3. https://github.com/nodemcu/nodemcu-firmw ...
- Beaglebone Black– 智能家居控制系统 LAS - 网页服务器 Node.js 、Web Service、页面 和 TCP 请求转 UDP 发送
上一篇,纯粹玩 ESP8266,写入了 init.lua 能收发 UDP.这次拿 BBB 开刀,用 BBB host 一个 web server ,用于与用户交互,数据来自 ESP8266 的 UDP ...
- 基于ZigBee和STM32的智能家居控制系统的设计与实现(三)
基于ZigBee和STM32的智能家居控制系统的设计与实现(三) 自从前两篇博客介绍了智能家居系统的基本实现机理后,收到了好多朋友的来信,和我讨论了好多的这方面的知识,在此很高兴,虽然自己做的这个所谓 ...
- 第一次 刷 WiFi 模块esp8266 感谢创客阿正
在正哥指导下 第一次 刷 WiFi 模块 少走了 不少弯路 套件里的 两块 机智云 ==== 我的电脑 需要单独供电 先 对应 接好 ic0要记得接gnd 等待上电时要断电重启 等 用助手 返回 ...
- 5-(基础入门篇)学会刷Wi-Fi模块固件(刷LUA版本固件)
http://www.cnblogs.com/yangfengwu/p/9065559.html 基础教程源码链接请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 https://it ...
- 4-(基础入门篇)学会刷Wi-Fi模块固件(刷AT指令固件)
http://www.cnblogs.com/yangfengwu/p/8965054.html 基础教程源码链接如果失效,请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 https ...
- 基于ZigBee的家居控制系统的设计与应用
基于ZigBee的家居控制系统的设计与应用 PPT简介:http://pan.baidu.com/s/1i38PC6D 摘 要 智能家居是未来家居的发展方向,其利用先进的网络技术.计算机技术和无线通 ...
随机推荐
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.2.MVC的主要工具-Ninject
这三个工具,应该是每个MVC程序员的兵工厂中的一部分.DI容器,单元测试框架,mocking 工具.Ninject是我们偏爱的DI容器,它简单,高雅,并且容易使用.这里有很多复杂的替代品,但是我们喜欢 ...
- AjaxPro 的基本用法
通过 Ajax可以直接访问后台的代码 实现的步骤: 一 ,添加 引用 AjaxPro.2.dll 文件 二 配置配置文件 <httpHandlers> <add verb=" ...
- char 型变量中能不能存贮一个中文汉字,为什么?
char类型可以存储一个中文汉字,因为Java中使用的编码是Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法),一个char类型占2个字节(16比特),所以放一个 ...
- android 数据库操作详解
请看郭大神的八篇专栏,包含sql语句 android封装的databasehelper 和郭大神自己的LitePal 三种使用详解 http://blog.csdn.net/column/deta ...
- 在lua的string库和正则表达式
一.前提要了解一下lua 的string几个方法 1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,... 2. string库中所有的function都不会直接操作 ...
- Integer Inquiry -TJU1112
作为最简单的高精度加法,要注意的是如下几点, 第一,因为是数位达到上百位的大数,所以只能用字符串数组来存贮. 第二,为了方便之后的相加操作,应该把字符串数组逆序转化为一个整型数组. 第三,在控制进位的 ...
- 64位系统安装ODBC驱动的方法
为了更充分的利用硬件资源,我想很多人都开使用64位操作系统了,同时你可以也发现了在64位操作系统上ODBC的驱动找不到了,所以ODBC的东西都没法用了. 因为2007以前版本的Office只有32位版 ...
- 分页sql
/// <summary> /// 根据页数分页 /// </summary> /// <param name="page"></para ...
- 测试-Animator的“当前剪辑CurrentAnimatorStateInfo”
左边是Transport到Idle,右边是完全到Idle 当进入过渡时,事实上Transport状态并未结束,通过下面打印出来的hash可以看出还是Transport的状态 过渡结束才正式变为Idle ...
- Rigidbody SweepTest测试
和Physics的投射差不多,SweepTest可以直接投射当前碰撞 但是比较遗憾的是它对MeshCollider的支持不是很好,需要勾选Convex 投射和Physics一样,只要加了碰撞器,不管勾 ...