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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 易记 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式 IP:–浙江–嘉兴 电信
本帖最后由 易记 于 2021-8-21 14:05 编辑
# ~! ]# w" B8 g' s6 e" ]- r) p5 e# M" ?3 j
最近玩ESP8266,想做个天猫控制开关。
2 B0 b& {$ S, w: T; }* l. q但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。
) H  }* G" i+ x, m% o$ ]还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。
& I/ I' B# H$ l& g0 |1 ~ QQ截图20210821125037.jpg + h4 y( e* V# G2 C" g8 w
! s1 ^% @8 y3 A% D4 L0 t
) K1 m+ _. P7 j& d
问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。
  Z) v3 V* x2 I: v( n: J" c
+ o& `' f: a, X+ F0 \  [+ j) ? QQ图片20210821124517.jpg * U+ }2 f9 T1 J# p
, x, {3 ]$ z" c5 O9 A
" B: B7 J/ n3 y6 w, x
) @  Z/ l% H3 S( u
到手,当然是拆拆拆。
: v# I/ o. d5 ], ^! h IMG_20210820_134104.jpg
( C/ M+ \1 j* l0 a6 D% C; {. |7 @0 x8 l) H
  }! Y  W4 ~; s3 M
联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。& V1 j* L% w# E% f( e7 G
IMG_20210820_160634.jpg
* M* E. b8 C( J" @5 c& @$ }+ }' m
: V0 S% h6 L7 }! L* L& J: |0 p

" G' n& I# k% W8 a0 q继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。/ x* p- Y( J6 A, }7 _& O! G
QQ截图20210821133707.jpg
- r+ G+ O6 D( x8 H8 m' e

+ `1 c+ b. a) k# m, J IMG_20210820_134114.jpg 8 B- P: x1 O7 P- n
8 L. `2 P/ e9 E1 T  {* y0 z. I
电源芯片/ F2 |" o5 `! P# |0 I6 `
3 k7 R! H$ K/ h' U) Z
8 k7 O. Z7 S! D
/ u7 q) x  J% n: ~* f  @* N% S
有一个按钮,按钮有二个蓝色LED灯: q  J4 i) A2 A. R2 D
IMG_20210820_134157.jpg ! [; B6 i& w2 g. s& H  p& k

" \7 W0 L/ }; D% P! c# w# ~: ~' @

6 }  P5 l: k" \1 z5 I82662 w9 [, I$ M; s9 p" e
IMG_20210820_141913.jpg 2 w+ P( g; G2 B  H' O- J6 p) ]! X4 `
# E% y& A$ E# I+ U+ k9 H

+ L9 j0 Z& u5 o2 ^- V$ K. f, p2 T6 ~0 u- B6 i; W

9 K! ^8 f0 ^5 U接下来就是刷机了,版子上面都预留测试点。
! O! h  v5 j5 F: i8 q' M2 u, n接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。
, q0 ]! d6 E( i) X 未标题-1.jpg 9 d" E7 E) \# r7 Q) ^0 T* q
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。. q7 p9 y  B1 B) f4 i  A
要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。

/ n, E  W5 w  p! T( [; X5 H. f# m+ h8 {& F
6 h0 w3 D8 m' ^

: L2 g( |: e/ h
) y. v/ R) G8 w) X

( Q1 [/ t6 n; k* p    5号脚位是继电器输出
7 ^+ I$ i! q1 J3 \) C    12号脚位是灯输出
0 e8 u+ K2 H# i. f7 v4 c5 _" c' B# i    4号脚位是按键
# f2 M" [. G& l( p& s6 ^+ P
. x; X" \8 q1 I, d& b3 l

4 s. g0 z% V- x1 m! }8 }3 e) }
  ~: v2 {# e8 J" X, s; k! B

. [% D- g- K- A' w1 u/ B卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库6 E4 f3 x( G% z
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库2 a1 f* Y0 [6 H: i
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库7 [5 F2 M9 ]4 s  h. @: h
  4. #define BLINKER_PRINT Serial            //串口协议库
    , w% C) h5 c! ~; N0 h) a
  5. #include <Blinker.h>                    //官方库
    % t5 i; g) Y) o
  6. #include <ESP8266WiFi.h>                //官方库4 r5 a# H% W) b" K* Y0 j: e6 F
  7. WiFiServer server(80);                  // 服务器端口号- z1 c& e( Z4 _
  8. 5 K, r7 j7 l' V2 x: T$ h, U2 \2 e0 z
  9. char auth[] = "c4942fb1d5e4";     //设备key
    . ^7 w2 Z( D5 P; k! k- p: t
  10. char ssid[] = "wanboshi";     //路由器wifi ssid
    2 H9 [. y" i) v
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码
    3 I" S6 q# h) \8 ]* O! F6 f

  12. 6 J5 j* d( L- [% f( \7 R
  13. bool oState = false;& ]! j4 ~$ ^' o7 e. V- B
  14. , ?" |: C1 S% N4 D0 S/ }1 @
  15. int kg=5;//继电器输出% v0 I+ T  W0 }& A2 M( K
  16. int de=12;//灯输出* P- D' M) W. k( \: }, S; Y
  17. int key=4 ;//按键
      W/ F8 H; I; P
  18. //*******新建组件对象1 e$ r6 Q( S0 i" R; k+ C  {

  19. 7 D9 \  |$ w1 V
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名5 I, I2 `% @. ]8 V$ [  c
  21. //*******app上按下按键即会执行该函数app里按键
    : e: D; U' F7 g% B4 u7 s
  22. void button1_callback(const String & state)- s' o7 W5 G9 D4 s
  23. {
    1 R3 j$ Y. |. d% y, d. W
  24.    if (digitalRead(kg)==LOW)! J$ I# p* \) D) W- a& K
  25.    {2 [9 d9 x) m/ M% e% }1 H  m
  26.         BLINKER_LOG("get button state: ", state);
    / H* c# n" ~7 U% r: R7 m
  27.         digitalWrite(kg, HIGH);- \1 Z% F3 z1 Z8 `3 J! x0 Q0 {
  28.         digitalWrite(de, LOW);1 M# k' B! ?. o$ o
  29.         Button1.print("on");
    # T, z9 v9 B: J- M1 t
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色9 B/ C! c1 j9 k3 M; @  L
  31.         Button1.text("开启中");
    / t/ p2 @. l2 x7 u
  32.    }0 T8 X9 d) f( A: i" M
  33.    else if (digitalRead(kg)==HIGH)
    8 z; R3 E' j" `0 h: _
  34.    {0 a5 d! ^7 N/ @6 T8 [3 f
  35.         BLINKER_LOG("get button state: ", state);+ h* G( D- \' c" Z2 T& A, U7 D; q
  36.         digitalWrite(kg, LOW);# i1 M* P( H! v6 Z) }
  37.         digitalWrite(de, HIGH);
    & H# F0 P+ d$ N8 o& x7 y( n, |
  38.         Button1.print("off");' ^( s% m$ y5 V% h$ X  i) _
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色. s  f! z+ g1 x* x. e9 v
  40.         Button1.text("关闭中");
    * S- B1 X) Y# W( f
  41.    }9 Z0 j3 D6 N& h! \/ n5 U( A
  42. }
    & ~; q+ V0 q) E: k

  43.   _1 a" H* M) D3 h1 C0 V
  44. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ u# ^; y& }. ?  ~
  45. 8 F- U$ m0 l% }
  46. //*******如果小爱有对设备进行操作就执行下面& C0 H. {6 k- [
  47. void miotPowerState(const String & state)
    ) Q) ?; d3 ]4 E1 }) P' v9 e" R
  48. {* n1 u& f# B* D: L
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印
    ' H' j7 A& B6 S2 m0 @
  50.     if (state == BLINKER_CMD_ON){5 [: E: _% k0 @5 a5 W% q; k
  51.         ; p) C9 M" e6 t; e
  52.         digitalWrite(kg, HIGH);
    , l% W) o5 t& B6 P7 {- R
  53.         digitalWrite(de, LOW);
    ! P7 `3 g" e' A
  54.         Button1.print("on");
      m% e' _4 {: v! _5 V
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色: ^% u* w1 y9 `# k3 F
  56.         Button1.text("开启中");( k% ^. [. P6 h7 \
  57.         BlinkerMIOT.powerState("on");
    . R9 Y( W! m' e: M4 w+ C
  58.         BlinkerMIOT.print();
    7 v& D* O, f( A1 l% K1 K* L
  59.    }, S4 Q/ I2 T# |
  60.    else if (state == BLINKER_CMD_OFF)
      u7 Q+ H" G( Z) a) Y% V0 A; I
  61.    {0 D7 f7 Y- r; `$ V: f- [- V# j
  62.         / D; u' [$ i9 d, N( o2 F& D7 e
  63.         digitalWrite(kg, LOW);" G4 o1 q+ b0 f. w2 ^4 r5 W
  64.         digitalWrite(de, HIGH);5 X3 @4 z& w6 R+ v
  65.         Button1.print("off");$ Q' h' J  Y' C" x$ s
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    / }/ D( f7 |& W7 ^8 j" X( E; h; P
  67.         Button1.text("关闭中");
    % A; B, Y' C% y) G+ W
  68.         BlinkerMIOT.powerState("off");
    : `' O% `# e$ D) `* X8 B- v
  69.         BlinkerMIOT.print();
    2 Q. k* A5 J0 z; o- [0 u& J. l
  70.    }
    1 @" A9 G+ n4 Y# `3 i
  71.       
    7 P% l3 G' B% k  k# j7 Y6 ?" R

  72. ( N7 K- p) M4 O+ ]
  73. }
    ) A( r$ @" B" F1 R7 j, p/ b2 G
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    8 Q9 ?) s4 B) s8 Q  b
  75. //*******如果天猫精灵有对设备进行操作就执行下面7 S( a2 Z# }/ U3 M% S
  76. void aligeniePowerState(const String & state)# m; @$ u5 A" c( K
  77. {
    6 u# @( h, ^, P+ P7 F, ?
  78.     BLINKER_LOG("need set power state: ", state);: b) m* l7 q3 {9 ?) C( k
  79.     if (state == BLINKER_CMD_ON)) B( k6 K: [  P
  80.     {2 m0 v, ^/ H9 d: H
  81.         % O/ q. c' O% ~' x( S/ g8 n  a
  82.         digitalWrite(kg, HIGH);
    + I" Z4 N3 r% B( F7 G: i) H/ K
  83.         digitalWrite(de, LOW);
    + ]3 }% q& @1 U( T8 ~
  84.         Button1.print("on");% D, H% C' o: S, [% ?4 G. U* i
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    9 C- F. b# o/ y
  86.         Button1.text("开启中");% L: A$ C; g% r7 \0 i0 l! V- V
  87.         BlinkerAliGenie.powerState("on");  }) y' Q1 y% ?" D3 F0 S6 N7 W0 `" C
  88.         BlinkerAliGenie.print();1 A/ k  \- y% }& k, S
  89.     }! S7 @- H4 y2 N+ Q$ h$ a# e
  90.     else if (state == BLINKER_CMD_OFF)% z9 r0 R2 O" ?; z
  91.     {. p+ q" B- a  D& E+ |' O
  92.         " Z& U# G6 r: w
  93.         digitalWrite(kg, LOW);( s  B0 v5 X$ |' y7 l0 J
  94.         digitalWrite(de, HIGH);' `3 i8 [( ?  d: N
  95.         Button1.print("off");
    3 W' _/ F+ `! m' n7 A  }
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色
      m4 F! O2 k) P3 T
  97.         Button1.text("关闭中");3 N9 p5 E0 h& m9 `9 S
  98.         BlinkerAliGenie.powerState("off");& A9 ]; F# S: y
  99.         BlinkerAliGenie.print();
    & m) ~5 Y2 R! D  J6 K
  100.     }* I# N  s5 ?$ Z5 Q
  101.         7 s& }! o9 m* X# \) v
  102. ) B6 {' K% s4 f$ H
  103. }
    : i/ h- m7 S6 i) S% c7 o* ^  }8 V
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次* g( o# I6 ?4 M& w5 m  f8 S5 x
  105. void heartbeat()- @" \& q1 I  L+ i
  106. {' R' r1 q, G( u
  107.   BLINKER_LOG("状态同步!");
    ) U8 s  K% ~) q$ I% ?: G$ M* w  X
  108.    if (digitalRead(kg)==HIGH) - m, i% Q, F2 X, X1 ^
  109.     { : \4 q# X* ^! t, C
  110.       Button1.print("on");4 b5 M  A6 m+ B* X# K9 O2 H
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色$ n0 L2 l2 `; l: D8 |
  112.       Button1.text("开启中");
    % J: F) o- I6 C9 ^. _
  113.     }( k' A9 L6 a, V. N9 i+ j- L1 {( P
  114.     else
    * t2 w1 v* k! ^' d+ f6 \) M
  115.     {
    ! f' r" u- m$ f0 Z8 q; X7 m. S
  116.       Button1.print("off");' B' a9 W+ c2 `3 i; `. o
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色
    0 L7 H  Z" {( o/ C) Y
  118.       Button1.text("关闭中");
    / t5 j0 b; Q4 i) u5 E2 }8 \
  119.    
    9 x' l9 j, \$ _* o' i
  120.     }. D" p8 \3 Z3 P! B& L9 K" u
  121. }
    , p5 a4 p" H( R8 x2 G0 q& Y
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ! d! m( I# k0 r2 Y! v9 L6 o' w5 n
  123. void setup()
    & C# @2 r- X; [  K
  124. {
    , t) s6 r  c: g
  125.   // 初始化串口
    1 t: }! G1 c8 w6 S
  126.   Serial.begin(115200);6 S& o. @) c1 t8 U1 v( }3 E
  127.   delay(10);" t6 X* O; ]& ?& H
  128.   BLINKER_DEBUG.stream(Serial);
    1 ]& \$ Y. c+ i9 e
  129.   // 初始化有LED的IO
    ! K3 G1 w7 }" h$ Y$ b# v
  130.   pinMode(kg, OUTPUT);                 
    * m. u* e4 b- g6 N8 a
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态
    ( l  _2 [+ }2 n
  132.   pinMode(de, OUTPUT);
    5 x: ?3 J# @. I5 Y4 K% b8 H
  133.   digitalWrite(de, HIGH);
    & O( Z2 y+ w% B# S& E1 y( N
  134.   pinMode(key, INPUT);            
    , O% f, V9 x: `3 x
  135.   Serial.println();% o1 Z0 R9 V9 M8 g4 T( z+ ^0 _
  136.   Serial.print("Connecting to ");- [. ]! D, }* k! ~8 |" F! L
  137.   Serial.println(ssid);
    ( D; q# h8 K9 y
  138.   WiFi.begin(ssid, pswd);
    . v# U' \8 ~5 I* j3 S" A" n: G
  139.   while (WiFi.status() != WL_CONNECTED) {' w% k) j) _' W+ K% O2 C7 `
  140.     delay(500);
    ! a# d9 P. s1 y; \6 `; c$ C
  141.     Serial.print(".");( v3 w) F* w7 f* q0 N' Z
  142.   }" a# }# ?: _9 t" H1 Z0 I# l
  143.   Serial.println("");
    & x' Z# T8 L( |0 L0 ^4 m
  144.   Serial.println("WiFi connected");3 }1 `; f. G5 ?  y" k; E- `
  145.   server.begin();& M8 O' T7 n/ T* ^1 e& B
  146.   Serial.println("Server started @ ");
    * F, j2 o' _4 w; ~) r
  147.   Serial.println(WiFi.localIP());
    % W& u4 `/ U  s- r0 ~: T- Q% p! \
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip5 r9 }5 m! `: F' Z$ I" n2 }
  149.   Serial.println("To control GPIO, open your web browser.");
    8 m6 Z: U. B- e$ l" E2 R' J$ i0 _
  150.   Serial.println("To set GPIO 0 high, type:");* @# B2 |: D1 _
  151.   Serial.print(WiFi.localIP());
    8 z% f: }( |) d+ p* V
  152.   Serial.println("/gpio/1");  W& Y) s( _6 T* L" p% S/ x
  153.   Serial.println("To set GPIO 0 low, type:");
    , z) P( J  M7 N; `2 j/ ]4 ]
  154.   Serial.print(WiFi.localIP());
    1 g+ [0 {  e7 A4 B0 C; @, E1 d. B
  155.   Serial.println("/gpio/0");
    6 I1 ?+ ~! G0 I  y$ [! P" J' }
  156.   Serial.println("To toggle GPIO 0, type:");
    , Q2 L5 y4 C1 H; o
  157.   Serial.print(WiFi.localIP());4 a4 O7 \# q5 i, O3 h9 G
  158.   Serial.println("/gpio/4");
    ) _4 q% O* h; w" d2 J7 a. s
  159. ; v4 W  J) n# x
  160.   // 初始化blinker
    3 J2 C7 C, |) a2 J; u3 q3 ~
  161.   Blinker.begin(auth, ssid, pswd);
    + T0 [" k; X* O2 H) s7 |9 ^5 _
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数
    % g4 \8 H, D* s
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数
    1 E1 ?* j7 \7 n9 j
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。" Y& z6 q" b+ V0 L, R9 C, E
  165. % [4 H1 K3 E2 N1 N& @" ^5 p2 K& @
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback! I6 Q5 g- A. Y; o
  167. }$ C2 `% B$ H9 J, @
  168. void dataRead(const String & data)
    ! E0 j8 S8 k  I2 h
  169. {: B* L' s% o# A
  170.     BLINKER_LOG("Blinker readString: ", data);
    ! x/ n# x) G; F: A
  171.   {- k( ~  r8 m2 k' d: @
  172.     Blinker.vibrate();
    ; a( h( U$ M  l* E7 W4 B/ U
  173.     0 b% f8 V, k: `2 K
  174.     uint32_t BlinkerTime = millis();
    . Y; O! `2 {5 ?1 M2 f& I
  175.     $ f& q# f$ n/ A' d1 N7 B4 V' I, ]
  176.     Blinker.print("millis", BlinkerTime);
    ( t6 \; k" {7 B  p- f% M
  177. }
    7 o/ V( O; |$ m$ t. Y0 F8 P
  178. void loop(), c6 @+ h. g! A5 K' g
  179. {0 D: o( W* Q5 M  m$ F* v7 k
  180.   Blinker.run();/ f5 d/ r! Y# X
  181.   if (digitalRead(key)==LOW)& o; I4 N8 B  ^' w) \: `' [* o
  182.   {
    # v6 m1 ^1 j/ l" k! J0 a; o
  183.     Blinker.delay(200);
    ' {' \  ^* Z2 q3 }$ W
  184.     if (digitalRead(key)==LOW)
    4 O* b& x5 l% b1 l; X+ M
  185.     {
    6 s4 c% {; n2 P( W8 t% i0 A# z
  186.           if (digitalRead(kg)==LOW)2 t# ?8 L( K& j* s
  187.        {2 D: ^% a9 u( O7 O) j3 k0 {" ]6 J% U
  188.             
    , J, ^/ K% y' a* y+ A
  189.             digitalWrite(kg, HIGH);: D  n5 Z( ]" F
  190.             digitalWrite(de, LOW);% M% \6 Z" p7 |, n3 F
  191.             Button1.print("on");
    ( o1 Q' \5 W& j* y! j
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色
    ! C$ l3 \) b- o8 f# M+ a! @
  193.             Button1.text("开启中");) v/ M2 W# g5 D" R& H
  194.        }3 a( {/ O* u5 W: Z7 U& r6 \! a
  195.        else if (digitalRead(kg)==HIGH)
      Z! a: u7 E. ~' p
  196.        {
    : j; H4 W$ g" t, F  x( W7 ^. D9 L
  197.             digitalWrite(kg, LOW);
    1 U0 x: L5 X" \) V0 H
  198.             digitalWrite(de, HIGH);6 c: B  f4 b2 F2 F! r. S' U
  199.             Button1.print("off");
    4 z, H3 K1 q, b* l! T
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色
    / q* n9 r8 Z  G* [6 ]6 _0 X
  201.             Button1.text("关闭中");
    - t0 G5 v, m$ i, U; p( j
  202.        }3 i, l- w' i( A6 j' d0 u: ^
  203.       }
    - l/ j4 S7 C9 ^; F4 z9 H' A5 `
  204.     }2 v! [5 B/ u. {+ u
  205. }
复制代码

7 O. ~4 _' E2 v7 f  g# c9 `) K  W0 {  k4 [) p7 O. \. z2 [4 H
我没有用卖家给的码,我自己写了一个,参考我前面的文章最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 https://bbs.nasdiyer.com/thread-18755-1-1.html
  X% k$ e& Y8 [' W, V$ K/ j4 N$ w, m$ U, f1 I& v( n1 V
把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。6 K( ]( v/ [9 u
2 d% |' z* |8 K( P! j" u/ [( O

' a+ b7 @% k. s+ B# N  _

0

主题

18

回帖

85

积分

初级渣柚V2

积分
85
QQ
lucky999777 发表于 2021-8-23 13:06:07 | 显示全部楼层 IP:–浙江–台州 电信
高手,没玩过!达人

2

主题

11

回帖

62

积分

初级渣柚V2

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

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 易记 发表于 2021-8-24 17:20:24 | 显示全部楼层 IP:–浙江–嘉兴–桐乡市 电信
a467913252 发表于 2021-8-24 15:53
% y0 {  Z9 t" a9 w买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

: k5 f" p8 p# o$ U' R大力出奇迹呀

1

主题

8

回帖

257

积分

中级渣柚V1

积分
257
sevenup0719 发表于 2021-8-29 08:14:58 | 显示全部楼层 IP:–江苏–连云港 联通
a467913252 发表于 2021-8-24 15:53; j! }# a1 S" R/ ]% ]  ~+ ^
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

: ?2 B- r7 c6 _/ ^5 o4 E昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

62

积分

初级渣柚V2

积分
62
QQ
a467913252 发表于 2021-9-4 23:05:22 | 显示全部楼层 IP:–湖北–武汉–江夏区 电信
sevenup0719 发表于 2021-8-29 08:14
/ k6 U' p8 f9 T: c昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...

! T6 k$ i) X! S. o4 G# N你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-5-10 10:12 , Processed in 0.071736 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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