连线86Duino的方法 ESP8266 AP连线

Wifi 模组 ESP8266 AP 模式

86Duino 在无线 Wifi 连线方面采用 ESP8266 模组的 AP 模式,AP 模式是将 ESP8266 模组变更为无线基地台,可以自主发出 Wifi 讯号提供电脑 Wifi 连线,如此一来只要电脑具有 Wifi 功能(内建或是使用 USB 无线网路卡),86Scratch 就可以透过 Wifi 与 86Duino 连线,不需要考虑现场是否有免费 Wifi 可用。

下图是一颗 ESP8266 EP-01 的外观图,可顺便看到它的引脚功能 :

 

我们可以透过杜邦线与排针来连接 ESP8266 和 86Duino,这里以 86Duino ZERO 为例,首先确认 86Duino ZERO 的 USB电源与外部电源输入接口都是没有接线的状态 :

 

准备 5 条 2.54mm 杜邦线与 5 根 2.54mm 排针,并连接以下 10 个脚位 :

  • 86Duino ONE 的 3.3V 连接 ESP8266 的 VCC (下图中的红线)
  • 86Duino ONE 的 GND 连接 ESP8266 的 GND (下图中的黑线)
  • 86Duino ONE 的 RX1 连接 ESP8266 的 TXD (下图中的绿线)
  • 86Duino ONE 的 TX1 连接 ESP8266 的 RXD (下图中的黄线)
  • 86Duino ONE 的 3.3V 连接 ESP8266 的 CH_PD (下图中的红线)

CH_PD 是 Chip Power Down 的意思,ESP8266 的 CH_PD 脚位必须接到高电位 (3.3V),ESP8266 才会正常运作,接地 (GND) 则会进入省电模式 (Power Down) 并关闭 Wifi,所以这里我们将 CH_PD 直接连接到 3.3V 即可。

 

 

86Duino ZERO 接线示意图 :

 

若将 86Duino ZERO 换成 86Duino ONE 或是 86Duino EduCake ,只要依照上述步骤,一样可以连接HC-06,差别只在于脚位的位置不同而已。

86Duino ONE 接线示意图 :

 

86Duino EduCake 接线示意图 :

 

接线完成后,请接上 USB 电源确认 ESP8266 模组是否正常供电 (如下图亮起红色电源灯)。

ESP8266 AP 连线设置

开启 86Scratch 之后,请点击 "载入教案" 进入选择教案的画面 :

 

在选择教案的画面中可以看到有 4 个教案可供选择,滑鼠移动到不同教案上就会出现关于该教案的说明,在这边请选择 "S2A.86强化型态" 教案,并点击 "准备连线" 进入下一步 :

 

出现连线设置视窗之后,如果上一次连线 86Duino 不是使用 ESP8266 AP 连线或是第一次连线 86Duino,请勾选 "自动烧录韧体" 并选择 86Duino ZERO 的 ESP8266 AP 连线韧体,由于电脑尚未连线 ESP8266 的无线基地台,所以在这边只单纯烧录韧体,连线方式请先选择 "不开启Scratch" :

 

设定完成后点击 "开始!" 就会开始烧录韧体 :

 

烧录韧体完成后会回到载入教案的画面 :

 

这时 ESP8266 已被刚刚烧录的韧体设定成 WiFi AP 模式,点击 Windows 工作列中的网际网路存取,我们会看到名为 "86Duino_ESP8266" 发出的无线 Wifi 可供连线使用 :

Windows 7:

Windows 8/10:

 

输入韧体中预设的网路安全金钥 "1234567890",然后再点击 "确定" (Windows 7) 或 "下一步" (Windows 8/10) : Windows 7: Windows 8/10:

此时 Windows 电脑会开始连线到 ESP8266 的 AP。

 

在 Windows 连线 86Duino_ESP8266 成功之后,请再选择 "S2A.86强化型态" 教案,并点击 "准备连线" 进入连线设置视窗 :

 

进入连线设置视窗后,请选择 "ESP8266 AP" 连线 (不需要再烧录韧体) :

 

86Scratch 开始以 Wifi 连线到 86Duino ZERO :

 

过程中,86Scratch 会尝试和 86Duino 连线,您可以看到画面左边的 86Scratch 喵和右边的 86 菌正用一副对话筒对话,当看到下面这个对话画面时,代表连线快成功了 :

 

此时 86Scratch 会自动帮我们开启电脑上的 Scratch 2.0 (也会同时载入 S2A 强化形态的 86Duino 积木) :

 

点击 "更多积木",可以找到 "S2A‧86强化型态" 的积木,而在积木旁边有一个灯号,一般状态下是红灯,当 86Scratch 顺利把积木和 86Duino 连线后,灯号就会从红灯变成绿灯 :

 

当灯号变成绿灯,切回 86Scratch 的视窗会看到以下画面 :

 

现在已经连线成功,可以开始写程式了!!

智能盆栽浇水宝

栽宝 ZaiBo 是一个应用无线 Wifi 执行远端监控植物浇水情形的开源专案,在 GitHub 上有开源的原始码可供参考,在专案中是将 Lubuntu (linux OS) 安装在 Micro SD 卡中,做为 86Duino ZERO 的开机磁碟,透过栽宝 ZaiBo 的 APP 在 Lubuntu 中执行即时监控盆栽环境与自动浇水的功能 :

 

栽宝 APP 在 Lubuntu 中架设网站,让使用者可以透过 Wifi 连线远端监控盆栽环境。

 

只靠 86Scratch 是否也能实现简易的 IOT 自动浇水系统呢? 当然可以!! 以读取湿度判断是否控制马达抽水的功能为例,我们只需要具备简易版的栽宝硬体元件即可 :

 

栽宝内的 86Duino 一样是使用 86Duino ZERO,因此只需依照之前 ESP8266 AP 连线的步骤,就可以让 86Scratch 连线栽宝内的 86Duino ZERO :

 

连线成功之后,就让我们开始编程 86Duino IOT 自动浇水系统吧!!

 

1. 建立变数 "湿度" 储存读取到的湿度 :

 

2. 金属探测棒感测到的湿度可以透过读取类比脚位 0 来获得,所以必须启用类比脚位 0 为输入,并且在 Scratch 2.0 舞台上显示变数 "湿度" :

 

3. 不断重复读取类比脚位 0 来获得湿度资讯,读取类比脚位 0 的结果乘上 100 再除以 1024 就是湿度的百分比 :

 

4. 尝试启动抽水马达维持 1 秒 :

 

5. 加入湿度判断机制 :

 

6. 把启动抽水马达 1 秒钟的动作放进湿度判断机制,如果湿度低于目标 (70) 就执行浇水 :

 

7. 原本 86Duino IOT 自动浇水系统到这边应该就已经完成了,但是在执行完浇水动作后土壤的湿度不可能立刻变化,导致浇水动作会连续执行 2 次甚至 3~4 次以上 (受土壤差异影响),为了解决这个问题,先试着在浇完水后等待 10 秒钟 :

 

8. 在浇完水后等待 10 秒钟固然解决了连续浇水的问题,但是这样 Scratch喵 在浇完水后都会有 10 秒钟的停止时间,感觉不太动感? 为了让 Scratch喵 动感十足又不会连续过度浇水,我们将系统修改成有 2 个动作周期,监控土壤湿度 1 秒执行一次,判断是否浇水则是 10 秒执行一次 :

 

完成上述的积木程式之后,Scratch喵 就可以开始当个盆栽管理员了。


 

86Scratch Home

86Duino 参考资料的文本遵循知识共享署名-相同方式共享 3.0 授权证。参考资料中的程式码范例已发布到公共领域。