材料
gobot官网是Arduino的demo,官网上看了下支持esp8266,整好之前整wifi攻击器的时候有就玩了下。我是在windows编译的,没有8266的话自己去淘宝上一块儿node-mcu+数据线(本质上就是个带串口和排针的esp8266-12,买驱动是CH340G的,就是usb口旁边有个长条形ic,方的是cp2102不稳定会导致windows蓝屏)
环境搭建
用goland写代码,不推荐vscode写golang,自行安装golang(记得设置好环境变量)和goland,现在golang最新版本是12.9
整个demo分为两部分,客户端gobot去设置和控制esp8266,8266是烧录好firmata的固件。firmata有写好的支持的硬件开发板的各种协议驱动:i2c,蓝牙,tcp,串口。gobot通过参数向硬件端发送行为和获取数据,硬件端来初始化gpio去驱动硬件模块儿
8266固件
需要Arduino IDE来编辑和编译以及下载
Arduino IDE准备
官网下载,目前最新的是1.8.9,我下载的是免安装的,打开后
文件
–首选项
–附加开发板管理器网址
–粘贴http://arduino.esp8266.com/stable/package_esp8266com_index.json
,工具
–开发板
–开发板管理器
–此时会下载上面的json(需要梯子),在搜索框里输入esp8266安装工具
–管理库
–开发板管理器
–在搜索框里输入firmata
安装打开网页 http://firmatabuilder.com/ ,因为8266是个wifi模块儿,这里链接类型和使能的驱动为下图这些,如果想把ip固定住在局域网内使用可以写上ip
网页上移动到最下面输入文件名点击下载,解压后得到一个
ino
的Arduino IDE项目文件,用Arduino IDE打开它,然后在工具
–开发板
里选择Node MCU 1.0
安装
CH340
驱动,https://sparks.gogo.co.nz/ch340.html 点击Download the Windows CH340 Driver
下载解压了以管理员身份运行,记得关闭windows的自带的那个def啥安全再安装硬件插上usb口后等待windows弹出的驱动文件正在安装完成消失后,在ide里
工具
–端口
里选择正确的COM口代码修改:
1
2
3
4
5#define SERIAL_DEBUG //取消注释
char wpa_passphrase[] = "xxxxx"; 自己附近的wifi密码和ssid名字
// 下面两行加在`void printWiFiStatus()`函数的` DEBUG_PRINTLN(ip);`下面
DEBUG_PRINT("Local Port: ");
DEBUG_PRINTLN(NETWORK_PORT);点击
项目
–上传
,下面出现Hard press RST
啥的就可以打开串口下载软件然后按下8266板子上的rst重启,在串口软件里就可以看到输出信息了
golang代码
goland新加项目选中go module,proxy写个代理地址,例如: https://mirrors.aliyun.com/goproxy/、https://goproxy.io、
1 | package main |
自行编译,arg1为板子的ip:port
运行的输出
1 | C:\Users\guanzhang\go\src\test>test.exe 192.168.123.74:3030 |
我们可以看到灯在一秒一闪