MicroBlocks 中文主页


前言

市面上的许多智能设备都搭载了 ESP32 系列微控制器,由于 microblocks 支撑 ESP32(esp32 devkit-v1) 和 ESP8266(NodeMCU), 想用 microblocks 来接收实在国际的设备。

特别提示: 千万不要在插座这类「强电设备」通着电的时分对其操作,否则可能对你形成损伤,也可能销毁电脑

思路

寻思着从接收哪个设备开始。

由于我对硬件拆解和分析电路板都不行了解,不想随意选择一个设备轻率开始,那样时间投入和成果产出都不可预期,计划在社区已有的作业上行进,这样即便遇到问题,社区里很可能已经有处理方案了。不想在硬件拆解上投入太多时间,那不是我感兴趣的。后来证明这个决议计划十分明智。

笔记系统里找到 接收 sonoff s20 智能插座的教程。淘宝下单买了一个 sonoff s20 插座(几十块钱),准备依照教程里的方法,为这插座刷入新固件,然后在 microblocks 里对其编程。

为 sonoff s20 刷入固件

拆开到货的 sonoff s20 智能插座,发现与教程里的电路布局并不相同。

这是教程里国外的版别:

MicroBlocks 编程案例: sonoff 智能插座

这是我从淘宝买到的国内版别:

MicroBlocks 编程案例: sonoff 智能插座

一番 Google,了解到不同国家卖的 sonoff 智能插座, 电路板布局有所不同。依照教程里的引脚布局,无法刷入固件。 又一番 Google,找到了我这款插座的引脚阐明:

MicroBlocks 编程案例: sonoff 智能插座

@weibin 帮我焊了一个与上图类似的 90 度折角的针脚。

按上图的引脚布局,运用 USB-UART 桥接器(有必要兼容 3.3V。否则你会销毁你的 S20!)将插座连到电脑。

MicroBlocks 编程案例: sonoff 智能插座

往 usb 口插入了 USB-UART 桥接器, 电脑里就能够看到 port 了(这不意味着接线的正确性)。

我计划先 erase_flash 它:

esptool.py --chip esp32s2 --port /dev/tty.usbserial-14320 erase_flash

一直处于连接中,一开始以为是接线的问题,交换了 tx/rx,仍然没处理问题。想起之前刷 esp32 板子时,也遇到类似的问题,需求按 boot 键,但我在 sonoff 智能插座电路板上没找到 boot 按键,唯一的一个功能键按了无效。

一时毫无头绪,@junnan 说如果能看到微控制器的引脚,运用万用表测验下应该能搞清楚问题,但电路板的微控制器在看不到的一面,已经被固定死了。

翻了几个文档,都没提 esptool.py 怎么连接上板子。 我猜想经过观看视频应该能找到文档里缺失的操作细节,究竟操作者的行为里, 有必要包括所有信息,不然不会成功。于是持续去开源社区里答案。公然,这个问题的确被处理了,有个用户在运用开源项目 Tasmota 接收 sonoff 智能插座时,录了一个视频,经过看视频里的操作,我弄懂了操作方法:Flashing the Sonoff S20 WiFi Smart Plug with open source Tasmota firmware(8 分 10 秒),运用 esptool.py 刷东西之前,需求先拔下 vcc 线(其余 3 根线连着),然后按住电路板上的按钮,插入 vcc 线之后,再松开按钮。

一试之下公然见效(@junnan 猜想这等效于 boot 按键):

esptool.py --chip esp8266 --port /dev/tty.usbserial-14320 erase_flash

依照相同的操作,往智能插座里刷入vm_nodemcu.bin 固件

esptool.py --chip esp8266 --port /dev/tty.usbserial-14320 write_flash -fs 1MB -fm dout 0x00000 ~/Downloads/vm_nodemcu.bin

esptool.py 提示 sonoff s20 运用的微控制器是 esp8266EX。

运用 microblocks 编程

我没有运用 microblocks 网页刷入固件,由于也会遇到相同的连接问题(需求 boot)。为了排除问题, 选择运用 esptool.py,由于开源社区有好几个项目已经用它完成了固件刷入。

固件刷入后,microblocks 顺畅连接插座!

怎么弄懂不同功能对应的引脚呢?

读文档当然是很好的方法,但很多东西是没有文档的,就像这个物理国际没有运用文档相同。信仰建构主义的个人核算社区会告述你: 动手尝试它!

“要了解这个国际,你有必要建造它。”——Pavese

这是 John Maloney(曾是 smalltalk 团队成员) 喜欢的编程风格: 寻觅哪个引脚对应 user LED

MicroBlocks 编程案例: sonoff 智能插座

视频地址: adapter.codelab.club/video/16419…

现场靠近的话,能够听到继电器的滴答声。咱们已经接收了智能插座的核心元件: 继电器。

后记

尽管在线编程没有问题(webthings 之类的库都能正常作业)。 但离线时,程序并未运行,猜想是耐久化部分出的问题, 比如板子上有写保护机制,又或许自动重置之类的东西。

由于整个硬件并未开放,这上头投入过多的时间并不值得,我不计划处理这个问题。

本文的兴趣更多是探索 microblocks 的可能性。

参阅

  • esphome sonoff_s20
  • tasmota Sonoff-S20 serial-connection
  • TASMOTA FIRMWARE FOR SONOFF S20 WIFI SWITCHES
  • Flashing the Sonoff S20 WiFi Smart Plug with open source Tasmota firmware