找回密码
 立即注册
查看: 4685|回复: 5

[原创] 8.5元联想ESP8266智能wifi插座拆解、刷机天猫语音控制

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式
本帖最后由 易记 于 2021-8-21 14:05 编辑 4 ?' s7 u7 b8 N; C+ C: [8 F- y

5 i( v+ T) d+ q( d8 `& M% G最近玩ESP8266,想做个天猫控制开关。& `. w$ w! u& V. \
但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。- d. ]+ P% X9 Y0 y! k' i( C# ?
还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。' a+ ?3 Q" @+ n
QQ截图20210821125037.jpg # I* V$ j4 J+ D9 Q2 R9 {

5 i* C' D. E5 `4 C9 O  |

, d2 z5 l: O$ n4 Y2 ~问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。
1 [( Q* a- B( }' i7 a1 ]. v6 H* h, o; B( {+ p6 |2 [
QQ图片20210821124517.jpg 8 S# k- V: t% h
  B/ I* Z. k% Z( `5 G

' z" T/ u% n! T
6 E3 _# C4 F6 j, L1 X9 |
到手,当然是拆拆拆。7 \, ]5 z! }  q' [) }* ]
IMG_20210820_134104.jpg
( E$ t" {/ ^1 C; {' G% w8 I6 s. d$ i4 \  _' ~$ K/ E7 H+ f, B
4 d3 x7 j9 a7 U. c4 ?/ D7 V
联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。
* r/ ]" T4 N& d, Z& f IMG_20210820_160634.jpg ) E, F+ l6 p, _' H/ ^& b( }+ [
" ^: k9 a4 i4 c/ g
# T1 P( E* S/ F! X" j; L. e7 o2 h
继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。
8 n5 |) T) q1 {+ c QQ截图20210821133707.jpg
+ ]! A* [9 n) H1 e! v- e( g

+ q- h8 M% @8 K: O# Y' M IMG_20210820_134114.jpg ) v' a3 D0 x- n  L

& d  t; _" [: u( M电源芯片
; D6 \$ ~2 l! C
0 {( ^+ o! p3 R! `5 {; V) j7 g
) ~! V% [! C- L1 X- H: g

6 ]# T$ |6 W8 S5 E7 ]有一个按钮,按钮有二个蓝色LED灯
3 O* P1 k6 [( T) }# H IMG_20210820_134157.jpg 4 a* A2 S4 d- l- B+ W

" p, S' ^1 G- M- d; ~. e
( r# _) Z, A( a
8266
  _5 {7 S4 R5 H) Q9 X$ K IMG_20210820_141913.jpg ' F5 x- \0 X( v# C
) H* j" v4 u: m8 Y; o0 J

$ E, D- ^5 x! k& e& o8 e
9 _# w; @1 X" n/ o4 \

7 j# w8 m7 t. g" {/ M( [9 E6 U接下来就是刷机了,版子上面都预留测试点。
, q' o0 ~' z0 W4 Q* b6 E# Z接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。% n; h1 ~2 V% d# @) C
未标题-1.jpg # |; E& c5 H" E9 Y1 F) e) k
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。
7 I7 a; s- e( T# }$ Q要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。

- w+ B$ H: e/ i0 \7 ]! P4 o- p: B4 L; z7 h

. O' x5 |' o0 [  e5 m5 y
: u( ~4 \, m7 L3 Y$ L
# H7 f$ v# {1 ^4 u" o' y; p5 O& d
. T4 n9 B. M1 L0 j+ X0 I0 @4 H
    5号脚位是继电器输出
2 J* w+ N6 E/ Z' O% U1 ^* i5 J    12号脚位是灯输出* R7 ?7 L% J5 P- s) h- R
    4号脚位是按键
2 ~- A! n8 K6 m

3 a7 a6 {" ^  E- }& x  ]6 D

" ], M. |0 h% K1 y
: j; Y. c0 T! d* V2 j

0 z  j- d# a0 A% h' C( W- ^- V卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库
    4 q; F' q) K, A7 c+ V- g$ F
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库6 z' {7 Q" }( i" \' H1 K, z: r: W
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库* w% f. l7 C) o* o, g
  4. #define BLINKER_PRINT Serial            //串口协议库
    # i/ b/ P2 s' S) G  i2 a) c
  5. #include <Blinker.h>                    //官方库9 i+ S3 f. p' R" Z8 V  g% s
  6. #include <ESP8266WiFi.h>                //官方库" q) s# V8 K; c# |
  7. WiFiServer server(80);                  // 服务器端口号
      J) a, Q, N% I& M& C; |" i

  8. + l  M( Y3 J. L/ X# i* g4 e0 j
  9. char auth[] = "c4942fb1d5e4";     //设备key. P2 ^/ k% H8 B* ?* ~  B9 a& r
  10. char ssid[] = "wanboshi";     //路由器wifi ssid0 D6 o5 x4 K+ Z! \+ a# Z5 F
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码
    4 K# m4 z3 o" v0 B

  12. ; l% k' G" p  K+ k
  13. bool oState = false;/ ?% Q! f4 E( O: d0 N" ~

  14. ) q' ]+ ]- r. G; Q8 V# U6 ]4 B
  15. int kg=5;//继电器输出# }& Q, X7 N0 V1 S) k- \
  16. int de=12;//灯输出' W9 r9 U* o, y7 Q0 \
  17. int key=4 ;//按键9 n) A+ v+ G- x; o$ @
  18. //*******新建组件对象
    6 L/ @9 m2 [% N9 \& w+ v

  19. 9 q7 r; {  }  H) r
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名5 X1 v5 H+ ]! G+ {
  21. //*******app上按下按键即会执行该函数app里按键7 F9 A4 t. {% q; `3 l3 `
  22. void button1_callback(const String & state)
    4 ?% _) S: Z6 t9 E
  23. {, [. S! I2 n' J0 ]
  24.    if (digitalRead(kg)==LOW), W" A. }7 P% k8 I
  25.    {9 @8 J% U; ?) ?0 d
  26.         BLINKER_LOG("get button state: ", state);# J+ N' e  R' ~- \2 V; ^
  27.         digitalWrite(kg, HIGH);
    7 W: p1 @; k9 ]( a/ y, h3 O2 K- |) R
  28.         digitalWrite(de, LOW);
    4 r  j  S% n' T3 Y: f+ m- y8 z
  29.         Button1.print("on");
    & N6 h* [, S: _) A6 Q) G9 W: t
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色8 H* A6 F: [) s& d, D, A& F3 V
  31.         Button1.text("开启中");
    8 n) |1 E3 m+ t9 I( S
  32.    }
    6 r% _( V3 e+ o
  33.    else if (digitalRead(kg)==HIGH)
    2 M" F& t* M* R; Y
  34.    {
      c( M6 g* u  x+ I2 |* t7 y
  35.         BLINKER_LOG("get button state: ", state);. H& A2 u& S! e. ]+ U( J
  36.         digitalWrite(kg, LOW);
    / N6 P- N" E& D2 [6 |
  37.         digitalWrite(de, HIGH);
    ; V+ y5 }% C/ J
  38.         Button1.print("off");
    3 d" @) y9 S: S1 K1 v5 C; i' h, l
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    * N! ^2 R$ ^/ M% {" W2 a/ L
  40.         Button1.text("关闭中");! Y0 x! B% y# v$ q7 l3 g8 r! u1 i
  41.    }9 P( c7 `" ?2 ^
  42. }
    9 F. ]: F2 x1 @: e% w

  43. 8 s* a+ J% a5 I) S* G* T
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    # ?; ]: H9 H& y1 A8 U

  45. 9 W+ F* S  {1 F" Z2 P) a
  46. //*******如果小爱有对设备进行操作就执行下面
    6 S2 R: C1 Q9 s* r2 f- b% A  F7 _
  47. void miotPowerState(const String & state)2 s' p: t7 C2 p! M9 w
  48. {9 j1 q! s) K, C- U. |' L
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印8 `9 J- v+ P/ O! {1 }
  50.     if (state == BLINKER_CMD_ON){
    " k0 b, b+ w3 z' \$ F
  51.         
    5 e5 O2 ^1 q$ m
  52.         digitalWrite(kg, HIGH);
    % i' m( Z9 T6 k  H
  53.         digitalWrite(de, LOW);
    + D# i' \$ G& O& B1 a7 |
  54.         Button1.print("on");
    5 T+ U' G) t" o# d# L
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    3 f3 \- w' q  r+ F' P
  56.         Button1.text("开启中");8 `- M+ |! |* y$ i+ S0 K3 x
  57.         BlinkerMIOT.powerState("on");2 `" M( X% H. C' P) z8 V6 q
  58.         BlinkerMIOT.print();
    / n0 Y  c  t, ]6 g9 A
  59.    }0 W8 Q  _9 B" i
  60.    else if (state == BLINKER_CMD_OFF)1 \) V8 Q6 J/ F5 t3 H( P3 ^+ C
  61.    {
    ' \3 _1 m- T" P* r- p, l8 Z
  62.         
    ) K4 Y3 C' q% k+ T. [5 t( h
  63.         digitalWrite(kg, LOW);( Q6 ?3 e; i* w1 Z
  64.         digitalWrite(de, HIGH);; l7 L, z+ r+ w0 E# i: r
  65.         Button1.print("off");
    # Q% M2 S3 \9 s; Q* g4 I
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    3 h. P* Z/ e! g% {) Y, @6 e, [- B
  67.         Button1.text("关闭中");
    - C' G$ N6 @! f7 g
  68.         BlinkerMIOT.powerState("off");
    2 Y7 e7 \# l* ?0 u5 E
  69.         BlinkerMIOT.print();; M9 y# N4 t; Z! U, u1 v
  70.    }
    3 o7 R& s% l* Y+ E0 i
  71.       
    & b" B2 B' j9 U9 V

  72. 8 }7 j9 b% V  E! M
  73. }
    ' L$ U9 Y3 G) g; l5 g$ ?$ E
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++! e; j, B* {8 L' k6 p- w
  75. //*******如果天猫精灵有对设备进行操作就执行下面3 h& P2 K! s* j; F
  76. void aligeniePowerState(const String & state)1 s9 L/ j% C3 y5 Y/ T1 m- k
  77. {: v' C" D  ?& q, c- V
  78.     BLINKER_LOG("need set power state: ", state);
    0 k4 f7 _' e) n7 j7 r- [! K; |
  79.     if (state == BLINKER_CMD_ON)
    $ t6 X+ h- p" q3 C3 B
  80.     {
    ( c" F# Q# h2 B  A7 a
  81.         / O" ~  w. y# w# ^/ l" Z4 P
  82.         digitalWrite(kg, HIGH);
    : w6 v& b6 o0 N' q! ~- y
  83.         digitalWrite(de, LOW);- u) \! R5 n# Q
  84.         Button1.print("on");
    6 r/ \- d, x' I6 O3 P% K, c) z6 p
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色2 @5 [: |( T: F) G' O
  86.         Button1.text("开启中");
    / J) Q* o$ [/ O  \  [
  87.         BlinkerAliGenie.powerState("on");
    3 I; x. m4 [3 D/ D7 V+ J
  88.         BlinkerAliGenie.print();
    # P/ f; q) j, W" d7 p" q6 J. `4 \' j
  89.     }1 ]: R0 _6 J* d/ f
  90.     else if (state == BLINKER_CMD_OFF)1 a) @; m( a0 U  F
  91.     {
    5 ~% s  g" S" S6 K9 A
  92.           h2 a; R/ n2 ]) f- b3 t( V% ?6 ]
  93.         digitalWrite(kg, LOW);! w9 D% \$ T# E0 N# D' j. o
  94.         digitalWrite(de, HIGH);
    9 L! C) E6 r$ z+ S
  95.         Button1.print("off");0 t/ @5 b7 s+ `% x- n7 N. T* Q
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色  F0 i* T& o- N0 Q4 h8 j$ x- u2 M. K
  97.         Button1.text("关闭中");
    4 o$ g* j" W/ M6 b0 V- O+ R4 B  S
  98.         BlinkerAliGenie.powerState("off");8 o4 i. w  k5 M) e1 d$ a* b
  99.         BlinkerAliGenie.print();
    0 S/ T8 U: c5 e$ {; |4 B3 ?
  100.     }5 O" t4 F1 F8 E
  101.         ) D) O+ a# z+ s% v% k! w" A
  102. # o' V) p! ]8 O. X
  103. }! z  Y: r8 n* o8 D6 a! |4 L5 v4 }
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次4 I0 g: n' }; r% b/ m# ~
  105. void heartbeat()
    $ K) ^0 M4 P0 Y' ]) R0 k' Z
  106. {
    ; H) R& y4 q! P' B
  107.   BLINKER_LOG("状态同步!"); & x7 w) G# `5 ~/ x; J2 `5 z
  108.    if (digitalRead(kg)==HIGH)
    3 n7 d% `! ]( Z9 c2 {' l5 U
  109.     { / k5 l- a" ?; H# G" F
  110.       Button1.print("on");# M0 N3 G  [( g1 [, b; H
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色
    0 m( o+ P  f7 E2 E% {# X1 w
  112.       Button1.text("开启中");
    ; g5 b! T+ g. e* W
  113.     }
    % H; e3 G9 h& T: g0 w  g( T
  114.     else 4 _# P' r$ n* g; X3 f8 i  c8 t  _
  115.     {
    . l, C4 w/ V3 c% E
  116.       Button1.print("off");' V& ~" y; h/ A! k% }
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色
    9 D1 y7 C6 r, y2 c/ s6 U( z. X
  118.       Button1.text("关闭中");+ Y5 e# \/ y6 X  o4 H
  119.       _- {1 W1 I5 [7 J5 S
  120.     }% X& \8 e. _+ K9 S, l
  121. }( J5 ]6 D  w/ i, }" M
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++& y8 ~1 M6 Z. |/ _( t3 d
  123. void setup()% {5 Z3 n: V2 v$ _% [% Q
  124. {
    8 ]* f% E5 l' {/ r/ i0 E
  125.   // 初始化串口" q/ L- ]! A8 q9 E! ~5 S, Z  B& l0 @
  126.   Serial.begin(115200);
    7 _( h5 Z5 {! v1 @/ }0 e" [/ q
  127.   delay(10);* B) Q1 l) \# t9 u1 ^+ w
  128.   BLINKER_DEBUG.stream(Serial);
    ) @/ |& M; h* J0 R( R& @
  129.   // 初始化有LED的IO  ?  m. K: A* Y
  130.   pinMode(kg, OUTPUT);                 - P- p7 u: W! ~! p6 p
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态
    " @7 F, L  G: y5 J
  132.   pinMode(de, OUTPUT);
    6 J6 P0 ~* w. K+ \8 c% V
  133.   digitalWrite(de, HIGH);
    5 y( u- P! V/ s. w5 h( l
  134.   pinMode(key, INPUT);            0 ^" ^8 M& ?+ S2 ?) G% k# z
  135.   Serial.println();: w$ G$ h7 l; N* b
  136.   Serial.print("Connecting to ");$ t; ?- a/ U! T# s) u4 X
  137.   Serial.println(ssid);' R- v0 D1 q0 _! Q* G! |
  138.   WiFi.begin(ssid, pswd);
    * Q  a3 z% o. O
  139.   while (WiFi.status() != WL_CONNECTED) {% I. k! a4 s+ ]3 a
  140.     delay(500);) Q7 Q2 ^$ @2 v% e1 Y3 ]
  141.     Serial.print(".");' W; S4 v# s" e- O
  142.   }7 J: |+ R$ E- I- i* J
  143.   Serial.println("");
    ( g9 G# e5 R, b9 R
  144.   Serial.println("WiFi connected");
      `! G1 K; N2 N1 G+ Z
  145.   server.begin();
    8 ^0 J* d! W. k! J
  146.   Serial.println("Server started @ ");
    & L5 k+ f5 {" [: O4 w4 F
  147.   Serial.println(WiFi.localIP());  m' o- _* o6 u2 @* `5 ]. I
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip
    * t( q. F" D. M2 m1 X; s
  149.   Serial.println("To control GPIO, open your web browser.");. d' O7 ^% G/ y# O6 x9 K
  150.   Serial.println("To set GPIO 0 high, type:");2 g+ B* P! y2 E4 P
  151.   Serial.print(WiFi.localIP());7 H5 J7 `' ]+ M8 D
  152.   Serial.println("/gpio/1");0 H/ B; Z" w, N# I7 r' a9 w
  153.   Serial.println("To set GPIO 0 low, type:");
    % b9 G& F1 B/ I2 K7 |+ Y% `4 ?! }
  154.   Serial.print(WiFi.localIP());
    7 ~- v$ d3 c6 b9 S
  155.   Serial.println("/gpio/0");' v; Z9 n  f' P
  156.   Serial.println("To toggle GPIO 0, type:");
    " p( _/ j/ ~9 T/ D% S. k
  157.   Serial.print(WiFi.localIP());
    7 E. P9 a" E/ K/ q- F
  158.   Serial.println("/gpio/4");
    5 Z% }8 L; s% l$ v% R( C8 v% t+ g1 ]& D
  159. 3 w4 g" F  Y; j4 F$ }0 X
  160.   // 初始化blinker1 M: Y; _. @4 d3 T
  161.   Blinker.begin(auth, ssid, pswd);
    5 w& H1 r: J6 _' I' C% O2 \
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数' q2 i6 U2 |4 K, J
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数
    % z9 R4 S+ n; ?% F& @
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
    - A' B" g/ g2 R# x" ^) ^, b
  165. 4 H, B: v4 d; [8 X8 o4 b
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback# a7 x3 l: Q+ C, Y8 V* L( U  c
  167. }
    , v3 e  O, h6 p( E" K
  168. void dataRead(const String & data): F, c- b: b1 a4 w5 I
  169. {$ U3 M( }' w* a: a' p
  170.     BLINKER_LOG("Blinker readString: ", data);
    7 X5 l" U  U. R9 u+ |9 v

  171. 2 d8 R5 H  \) ~( c8 E
  172.     Blinker.vibrate();
    ! `' T/ b  K" m' C+ T
  173.     # O4 s8 v% F9 P
  174.     uint32_t BlinkerTime = millis();" N3 n5 [# k, [! ]2 L
  175.    
    : a2 X& X/ R" W) {
  176.     Blinker.print("millis", BlinkerTime);# p; F- |3 V( v# u7 V, m
  177. }
    " @% M8 C5 v4 T: g& H4 b: Z, m
  178. void loop()
    6 F: E4 e. c, O( V0 b* y) H
  179. {
    - ?, w" G' Z6 p  h- P# S
  180.   Blinker.run();
    ) {! L5 \8 O6 f& |; t
  181.   if (digitalRead(key)==LOW)
    1 w$ g9 t( w+ N$ X1 D4 [
  182.   {3 Z8 W6 ^3 ?5 A& n0 s
  183.     Blinker.delay(200);
    5 w: \% ~6 ^' A- t, Z
  184.     if (digitalRead(key)==LOW)3 O4 g4 r3 S( F
  185.     {
    + b2 D# e% t& }. E3 P9 S" J: `3 x
  186.           if (digitalRead(kg)==LOW), }; ]+ A/ O7 \0 E
  187.        {
    ) s; u& ]: ?. G7 o: D
  188.             0 D' T5 R4 ?" [# h
  189.             digitalWrite(kg, HIGH);
    ! d* n; n' F/ O, I  J
  190.             digitalWrite(de, LOW);& U& O# t$ m0 Y: @& |! n
  191.             Button1.print("on");
    ' Q( p# H# m6 K
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色
    ; M% U" S, p* L) K  L4 G4 g2 c) f, c
  193.             Button1.text("开启中");8 O' n% y1 X/ @& ~+ H
  194.        }% w/ a. d! \0 c! p/ j
  195.        else if (digitalRead(kg)==HIGH)- l4 t  a7 v8 l6 m% x' C( a
  196.        {8 b4 ?$ E: j; O! b5 N2 Q% `$ G% `
  197.             digitalWrite(kg, LOW);
    ' r( r* N) y* M5 A8 K7 V2 L' m
  198.             digitalWrite(de, HIGH);
    1 N, T3 R% a, ?& a2 Y  ]/ N* V
  199.             Button1.print("off");+ @" \  u0 ]. E- }
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色
    6 \+ G+ P) a0 p' l) m; t) U
  201.             Button1.text("关闭中");* K3 ]/ w& z: S6 J& W
  202.        }
    - R! H: S+ o9 u( R1 }
  203.       }
    ( w/ ]% `* ]1 l/ T+ Y
  204.     }
    ) Z# ?: c8 W7 o* C3 b
  205. }
复制代码
) A  O# O2 j+ _* r. N% H
+ q" A5 s7 j7 o" V
我没有用卖家给的码,我自己写了一个,参考我前面的文章最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 https://bbs.nasdiyer.com/thread-18755-1-1.html9 M8 f5 {8 x( C# R" ~
- ]8 Z- c8 v7 }# T
把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。
. u" Y' p- o9 J5 e- F3 G, f/ _( |% O5 @$ n# X
2 E& U( z- h0 n2 b0 L

0

主题

18

回帖

85

积分

初级渣柚V2

积分
85
QQ
发表于 2021-8-23 13:06:07 | 显示全部楼层
高手,没玩过!达人

2

主题

11

回帖

62

积分

初级渣柚V2

积分
62
QQ
发表于 2021-8-24 15:53:16 | 显示全部楼层
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 发表于 2021-8-24 17:20:24 | 显示全部楼层
a467913252 发表于 2021-8-24 15:53
/ L- O9 y) `3 R4 P% z1 Z3 M买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...
0 l6 K- p# @5 C# i8 ]
大力出奇迹呀

1

主题

8

回帖

256

积分

中级渣柚V1

积分
256
发表于 2021-8-29 08:14:58 | 显示全部楼层
a467913252 发表于 2021-8-24 15:53) c6 v  ~' t5 V' V3 b+ e  q
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

) ?* D- \- H9 |) L, \0 S: b昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

62

积分

初级渣柚V2

积分
62
QQ
发表于 2021-9-4 23:05:22 | 显示全部楼层
sevenup0719 发表于 2021-8-29 08:14
; c' J( R1 F4 k7 i* [( z昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...
/ W- |# y  ~6 J* X
你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|矿渣社区 ( 黔ICP备2024020525号-1 )

GMT+8, 2025-5-31 14:53 , Processed in 0.225241 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表