本帖最后由 xzhang 于 2017-7-10 11:22 编辑
Refer to http://tinkerman.cat/ailight-hackable-rgbw-light-bulb/
灯罩没有胶合,只适合。只需拉一点力量就会弹出(注:我买的灯泡是金色的,而且灯罩粘的很结实)。 去除后,您可以完全访问PCB。
实际上有2块PCB。 外部有8个高功率白色LED,6个红色LED,4个蓝色和4个绿色LED。 内部PCB使用ESP8266EX微控制器和Winbond 25Q80BVSIG 1MByte闪存芯片来保存逻辑电路。 这些是平常的嫌疑犯。 还有一个标有ADJG的SOT23-6封装和标有MY9291QD的20引脚IC。(目前我还没有打开灯罩)
有5个焊点,标记为3V3,GND,RX,TX和IO0。 难以置信。 他们可能是工厂模式使用带有弹簧针的夹具烧录固件。 无论如何,看起来很容易焊接一些细线,并上传自定义固件。
唯一的疑问是如何控制LED。 搜索MY9291芯片搭配完美的搭配:My-Semi MY9291 LED驱动。 答对了。 但数据表没有任何有关如何使用它的信息...
Noduino OpenLight
另一方面,沿着MY9291参考文献的路径,您可以快速地在JacksLab上找到Noduino OpenLight wiki页面,由Jack Tan,Noduino项目背后的人物别名comcat。 在该页面中,您有很多关于灯泡的信息,包括示例代码和Jack的(部分)电路原理图。
您对LED PCB的准确描述和Taiwan Mingyang(MY-Semi)的MY9291 LED驱动器的参考。 它还证实,AC / DC变压器在1A最大输出12V。 并描述了两种不同的降压IC。 MP1470 和MP2359,均由MPS。 MP1470具有ADJ标记。
但最有趣的是,该页面包含一节,介绍如何基于Noduino SDK为OpenLight编译自己的固件。
我检查了Noduino SDK,那里是:MY9291的C驱动程序。 这就是我需要的一切。 顺便说一句,我标注到HLW8012 library包括我的HLW8012库(但不是最新版本)。
该驱动程序是授权GPLv3和版权的Maike实验室,Maike实验室是icamgo和icamgo是Noduino。 您可以使用驱动程序,但我花了一些时间将其封装在一个库中,并使用一些帮助方法来管理LED的颜色和状态。 我已经在AiLight中使用ESP8285进行了测试,但应该适用于ATmega328或其他AVR芯片。
用于Arduino ESP8266的MY9291库作为免费开放软件发行,可以在我的my9291 repository上检出。
让我向大家介绍如何在100%占空比下设置红色LED的简单示例(MY9291_COMMAND_DEFAULT定义8位颜色深度,因此255表示100%):
#include <my9291.h>
#define MY9291_DI_PIN 13
#define MY9291_DCKI_PIN 15
my9291 _my9291 = my9291(
MY9291_DI_PIN,
MY9291_DCKI_PIN,
MY9291_COMMAND_DEFAULT
);
void setup() {
_my9291.setColor((my9291_color_t) { 255, 0, 0, 0 });
_my9291.setState(true);
}
void loop() {}
Flashing it
开始时可能看起来很难焊接这些小垫,但其实很简单。 取一根5线电缆,从导线上取下1-2mm的绝缘层,再放一点。 在焊盘上涂一条热丝,并留下一小滴锡。 然后只需用垫接触每根线,并将其加热一段时间。
将电线连接到FTDI(或类似的)板上。 TX到RX,RX到TX。 将GND和IO0连接到地,最后连接3V3。 将程序员插入计算机后,电路板将启动到闪存模式。 当您正在闪烁时,您可以删除IO0连接。 重新启动后,它将进入正常模式,您应该在屏幕中看到调试消息。
ESPurn'd
当然这是ESPurn'd。 ESPurna固件版本1.6.7支持Ai-Thinker AiLight / Noduino OpenLight。 您可以打开/关闭灯泡并从Web界面中选择颜色,或者您可以通过Node-RED通过MQTT来做这两件事情。
|