|
本帖最后由 易记 于 2021-9-1 21:55 编辑
最近玩ESP8266,想做个天猫精灵语音控制开关。
但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。
还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。
问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。
Lenovo SE-341A Plug
联想的这款产品在国外网站标价25美刀还在售,相当于人民币160元左右,不知为什么在国内会以这样低的价格处理。
ebay在售价格29美刀
到手,这是包装图片
接下来,当然是拆拆拆。虽然是卡口设计,但是因为模具开的好又加上材料比较厚实,实际想要无损拆机还是有点麻烦,我拆了两个,上壳都被我撬的有点破相了,建议加热后慢慢拆。
联想的做工,还是感觉不错的,淘宝查了一下光这个继电器也要个7-8块钱,很多智能插座用的是非常小的继电器。
继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。
这个变压器是不是小了点,虽然是小了点,但是有的低价智能插座只用电阻降压整流供电,和这个就不能比了。
联想的用料,应该还是让人放心的,何况这还是出口转内销的产品呢
94V-0防火认证
电源芯片,百度查不到
有一个按钮,按钮有二个蓝色LED灯
ESP8266+2M闪存,我上传时显示2M
还有很多空脚位,可以实现更多功能的,比如温湿度传感器,显示屏,RGB灯控制,红外,RF等等,甚至你还可以用来做一个简单的静态网站,图片CSS文件可以放在2M闪存中。
接下来就是刷机了,版子上面都预留测试点。
接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。
要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。 |
5号脚位是继电器输出
12号脚位是灯输出
4号脚位是按键
卖家有发一个源码,如下
- #define BLINKER_WIFI //官方wifi协议库
- #define BLINKER_MIOT_LIGHT // 设置小爱灯类库
- #define BLINKER_ALIGENIE_LIGHT // 设置天猫灯类库
- #define BLINKER_PRINT Serial //串口协议库
- #include <Blinker.h> //官方库
- #include <ESP8266WiFi.h> //官方库
- WiFiServer server(80); // 服务器端口号
- char auth[] = "你的"; //设备key
- char ssid[] = "你的"; //路由器wifi ssid
- char pswd[] = "你的"; //路由器wifi 密码
- bool oState = false;
- int kg=5;//继电器输出
- int de=12;//灯输出
- int key=4 ;//按键
- //*******新建组件对象
- BlinkerButton Button1("btn-abc"); //设置app按键的键名
- //*******app上按下按键即会执行该函数app里按键
- void button1_callback(const String & state)
- {
- if (digitalRead(kg)==LOW)
- {
- BLINKER_LOG("get button state: ", state);
- digitalWrite(kg, HIGH);
- digitalWrite(de, LOW);
- Button1.print("on");
- Button1.color("#0000FF"); //设置app按键是浅蓝色
- Button1.text("开启中");
- }
- else if (digitalRead(kg)==HIGH)
- {
- BLINKER_LOG("get button state: ", state);
- digitalWrite(kg, LOW);
- digitalWrite(de, HIGH);
- Button1.print("off");
- Button1.color("#00FFFF"); //设置app按键是深蓝色
- Button1.text("关闭中");
- }
- }
- //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- //*******如果小爱有对设备进行操作就执行下面
- void miotPowerState(const String & state)
- {
- BLINKER_LOG("小爱语音操作!"); //串口打印
- if (state == BLINKER_CMD_ON){
-
- digitalWrite(kg, HIGH);
- digitalWrite(de, LOW);
- Button1.print("on");
- Button1.color("#0000FF"); //设置app按键是浅蓝色
- Button1.text("开启中");
- BlinkerMIOT.powerState("on");
- BlinkerMIOT.print();
- }
- else if (state == BLINKER_CMD_OFF)
- {
-
- digitalWrite(kg, LOW);
- digitalWrite(de, HIGH);
- Button1.print("off");
- Button1.color("#00FFFF"); //设置app按键是深蓝色
- Button1.text("关闭中");
- BlinkerMIOT.powerState("off");
- BlinkerMIOT.print();
- }
-
-
- }
- //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- //*******如果天猫精灵有对设备进行操作就执行下面
- void aligeniePowerState(const String & state)
- {
- BLINKER_LOG("need set power state: ", state);
- if (state == BLINKER_CMD_ON)
- {
-
- digitalWrite(kg, HIGH);
- digitalWrite(de, LOW);
- Button1.print("on");
- Button1.color("#0000FF"); //设置app按键是浅蓝色
- Button1.text("开启中");
- BlinkerAliGenie.powerState("on");
- BlinkerAliGenie.print();
- }
- else if (state == BLINKER_CMD_OFF)
- {
-
- digitalWrite(kg, LOW);
- digitalWrite(de, HIGH);
- Button1.print("off");
- Button1.color("#00FFFF"); //设置app按键是深蓝色
- Button1.text("关闭中");
- BlinkerAliGenie.powerState("off");
- BlinkerAliGenie.print();
- }
-
- }
- //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次
- void heartbeat()
- {
- BLINKER_LOG("状态同步!");
- if (digitalRead(kg)==HIGH)
- {
- Button1.print("on");
- Button1.color("#0000FF"); //设置app按键是浅蓝色
- Button1.text("开启中");
- }
- else
- {
- Button1.print("off");
- Button1.color("#00FFFF"); //设置app按键是深蓝色
- Button1.text("关闭中");
-
- }
- }
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- void setup()
- {
- // 初始化串口
- Serial.begin(115200);
- delay(10);
- BLINKER_DEBUG.stream(Serial);
- // 初始化有LED的IO
- pinMode(kg, OUTPUT);
- digitalWrite(kg, LOW);//初始化继电器上电状态
- pinMode(de, OUTPUT);
- digitalWrite(de, HIGH);
- pinMode(key, INPUT);
- Serial.println();
- Serial.print("Connecting to ");
- Serial.println(ssid);
- WiFi.begin(ssid, pswd);
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- Serial.println("");
- Serial.println("WiFi connected");
- server.begin();
- Serial.println("Server started [url=home.php?mod=space&uid=3057940]@[/url] ");
- Serial.println(WiFi.localIP());
- //打印出IP地址,后期可以制作显示器来外部硬件显示ip
- Serial.println("To control GPIO, open your web browser.");
- Serial.println("To set GPIO 0 high, type:");
- Serial.print(WiFi.localIP());
- Serial.println("/gpio/1");
- Serial.println("To set GPIO 0 low, type:");
- Serial.print(WiFi.localIP());
- Serial.println("/gpio/0");
- Serial.println("To toggle GPIO 0, type:");
- Serial.print(WiFi.localIP());
- Serial.println("/gpio/4");
- // 初始化blinker
- Blinker.begin(auth, ssid, pswd);
- BlinkerMIOT.attachPowerState(miotPowerState); //小爱语音操作注册函数
- BlinkerAliGenie.attachPowerState(aligeniePowerState); //天猫语音操作注册函数
- Blinker.attachHeartbeat(heartbeat); //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
- Button1.attach(button1_callback); //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback
- }
- void dataRead(const String & data)
- {
- BLINKER_LOG("Blinker readString: ", data);
- Blinker.vibrate();
-
- uint32_t BlinkerTime = millis();
-
- Blinker.print("millis", BlinkerTime);
- }
- void loop()
- {
- Blinker.run();
- if (digitalRead(key)==LOW)
- {
- Blinker.delay(200);
- if (digitalRead(key)==LOW)
- {
- if (digitalRead(kg)==LOW)
- {
-
- digitalWrite(kg, HIGH);
- digitalWrite(de, LOW);
- Button1.print("on");
- Button1.color("#0000FF"); //设置app按键是浅蓝色
- Button1.text("开启中");
- }
- else if (digitalRead(kg)==HIGH)
- {
- digitalWrite(kg, LOW);
- digitalWrite(de, HIGH);
- Button1.print("off");
- Button1.color("#00FFFF"); //设置app按键是深蓝色
- Button1.text("关闭中");
- }
- }
- }
- }
复制代码 上面的代码用arduino或是美思齐直接考到代码中上传,arduino需要所有的库都装好
我没有用卖家给的码,我自己写了一个,参考我前面的文章 《最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 》
https://www.mydigit.cn/thread-270993-1-1.html
有几个朋友说不会加按键,看这里
《 用Mixly给联想低价智能插座刷代码,天猫精灵语音开关插座按键灯都可以》
https://www.mydigit.cn/thread-273871-1-1.html
把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。
9楼“小陆的实验室”说用“Lenovo link”可以升级并安装涂鸦app控制,我手上正好有一台LG的欧版手机,手机上装有APKPure和Play Store,但是在上面都是无法找到“Lenovo link”的。我是直接在google上找了,试着下了好几个lenovo link都没有办法使用。下载了lenovo link pro也不行。
感谢73楼“yichen00”提供Lenovo link的下载链接,试了一下,成功了。不过有时行有时不行,感觉服务器稳定性不够。
https://d-11.winudf.com/b/APK/Y2 ... 4133fae1ab06125c6f1
下载安装,打开必须和我下面的图片一样,有时我打开老是转转转,而且只有一个图标,那就是不行,就是上面的这个图片那样子,我试过把手机系统语言改成英文,繁体中文,如果你实在不行,也可以试试看,我开了代理也不行,这次是关了代理操作的。
按到灯红蓝闪烁为止
这个比较坑,有时按出来UPDATE是灰色,那就退回重新进入,多试几次
好了,升级好后就是4.0了,用Lenovo link pro和涂鸦试试看吧,基本上和第二步图片中差不多,是中文的应该比较容易了,不行就多按开关,好像是在扫描时按开关闪蓝色灯,扫描几下再按一下。反正就是多试试,天知道我是怎么成功的。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
本帖被以下淘专辑推荐:
- · 优秀精华库|主题: 134, 订阅: 112
- · 综合类维修库|主题: 98, 订阅: 92
- · 电子|主题: 26, 订阅: 26
|