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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式
本帖最后由 易记 于 2021-8-21 14:05 编辑
2 g  x5 Y9 Z6 A/ X
. S. T5 q3 i; q  g& O最近玩ESP8266,想做个天猫控制开关。
  o, K. S( R* y0 K/ B' y/ E$ n0 @但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。& S% `2 w0 ]7 v9 {" v8 `& W) J
还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。$ u' S( e" L' m
QQ截图20210821125037.jpg
2 n% A8 r  }. ]6 }
- ~3 }5 V% ^1 h) s( S7 O, V3 v
1 d5 n& w, M5 V0 r
问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。1 F. e: a8 C+ J/ J$ c: d
: M- r8 K8 ~5 O. o; A! U
QQ图片20210821124517.jpg
  {' o, V! A# O2 ]9 f3 W" Q

7 C6 i6 z; |) P# N6 l9 G* R5 X' F$ w+ b; V$ }# e8 a5 ]

0 p  x7 m+ x. M到手,当然是拆拆拆。' \) l) [- y) B& A( y
IMG_20210820_134104.jpg 6 `( @- s2 e- ?; U! n+ \8 x$ n
4 [. P  n1 M0 S
6 }4 |! `& X9 S$ F+ E
联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。# {1 S. E( u% ~% [; O4 V$ W, u& h1 O
IMG_20210820_160634.jpg   R9 S( a' |2 v4 A! f; L7 I
3 Z( h& Z& l) g* s# m4 r
2 d+ Y( m, m; r$ S" P) |, N
继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。' K0 v5 G: |# x& V3 D+ J( W( o
QQ截图20210821133707.jpg
. O# V0 M  @/ h

& o- @* q% E+ q IMG_20210820_134114.jpg
/ i5 G3 O1 a6 o6 N
1 q5 M6 ?8 [7 H4 y# b. h& J' p8 g% a
电源芯片
" L' U& K2 {: j4 X$ F2 @
- J$ M0 i) `; F3 G0 J2 u0 z6 f$ c, l" G3 a! q

# U( r: F: \; O有一个按钮,按钮有二个蓝色LED灯9 i5 q: T/ ?0 `+ f* d
IMG_20210820_134157.jpg
& Y6 u0 @8 S2 A; V- `
; t: F4 u. ]; x; D; A$ |% a

5 m2 n" P  P  e( A& ?# P$ S$ i, P7 O8266
( Y6 g+ L8 `( r4 t5 \4 } IMG_20210820_141913.jpg 5 A; r7 O2 K( {9 L
) j9 b" W3 C5 O# _7 ~" b

0 L# X; t" T. }. t9 _  F& B$ V& V: j$ `, i7 O# d
: {. V! _/ t% U' J0 P& N+ o& W
接下来就是刷机了,版子上面都预留测试点。
2 R9 i; m0 z0 K接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。: F8 b* w- W5 O: A6 a
未标题-1.jpg
* w6 o5 i& E  p9 m) i' h  m; r9 S
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。2 _  @: n7 Y8 W& z$ F! c/ Z- w# i
要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。
, J, V" l' C8 l+ h* G- f9 u
" K/ V5 `9 _. v# \) o

* {* N1 d$ s+ O* c
" X2 r9 @; M8 f
1 M# K* V0 m8 x- i" T

* V" ~6 @5 R5 _) U  E+ S    5号脚位是继电器输出
, ?8 k6 V9 @5 z3 }    12号脚位是灯输出
7 Z" L9 z6 u* Q5 F9 I6 Y    4号脚位是按键

: v1 b0 L0 ?* U& A( j+ t& r
% ?  u2 k; z$ V

& ~1 U2 J1 u4 T) Z' \' j0 c& s$ Y4 h8 m# @; o
2 y. N! ?$ @+ |& r
卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库9 `+ u- k4 _6 G8 a2 m+ w# O% g
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库
    , w& P% y# a+ |/ \+ |$ R3 w, n6 t
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库
    + G/ V8 J# C0 l9 [" h
  4. #define BLINKER_PRINT Serial            //串口协议库
    ' g1 ?# ?+ V+ p5 C& |* g
  5. #include <Blinker.h>                    //官方库
    2 ^, B/ `5 a$ C  a. n/ V
  6. #include <ESP8266WiFi.h>                //官方库2 z2 j2 n3 P1 j( `
  7. WiFiServer server(80);                  // 服务器端口号
    - q' ?. j. M0 D& z) U7 X+ y6 `
  8. 8 A' `3 Z9 [- ~3 p
  9. char auth[] = "c4942fb1d5e4";     //设备key
    ) l. j+ X/ t2 p& D
  10. char ssid[] = "wanboshi";     //路由器wifi ssid$ _' `) E: X. x" {
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码
    # w. z3 S; f$ ~" o1 c
  12. $ N+ Q4 |+ ^! @$ y
  13. bool oState = false;' g( g8 J+ N$ J! O7 k
  14. * {8 F6 h3 G. R$ q6 b
  15. int kg=5;//继电器输出
    0 ^( |3 J% P1 t" J# q
  16. int de=12;//灯输出
    3 O. i6 Z) i; r
  17. int key=4 ;//按键6 S% ^: i% [2 _1 G+ S
  18. //*******新建组件对象6 j6 M9 s6 G5 X, x4 Z, W
  19. 1 p$ N$ w& G/ \7 e
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名
    # O( s+ m$ a" h( j0 R
  21. //*******app上按下按键即会执行该函数app里按键/ q  ^4 c  m. _) O" M. `
  22. void button1_callback(const String & state)& }4 u1 E$ z! T+ H( |! F
  23. {! F, e& a9 v% A1 n
  24.    if (digitalRead(kg)==LOW)
    : Q3 s( N; {- ~! t4 E2 A
  25.    {
    . q$ @9 }  t: Z, q4 q6 M: j
  26.         BLINKER_LOG("get button state: ", state);- p* n% \6 ]* t" ^" r/ D5 ^4 S
  27.         digitalWrite(kg, HIGH);. V8 _, i( `5 v3 }' N. N
  28.         digitalWrite(de, LOW);9 i0 u, _! e; T, x3 e: `$ \; Q
  29.         Button1.print("on");( g; l, J; M: j
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    ! W/ J1 I4 y) B% y8 ^
  31.         Button1.text("开启中");2 G) A- C- T: J' a& x
  32.    }
      C, J+ Y+ i6 m: {" Q; T% n
  33.    else if (digitalRead(kg)==HIGH)0 \' E  [& o" V4 y
  34.    {
    6 g& r/ W" b- }3 `
  35.         BLINKER_LOG("get button state: ", state);. J2 r) N" U1 y
  36.         digitalWrite(kg, LOW);8 |! ~& o! v! K; O: N4 L
  37.         digitalWrite(de, HIGH);
    0 q4 V6 _% u) E3 F# z
  38.         Button1.print("off");
    - i% O9 f* ^* C- C" @/ w4 ^& \. y
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色5 V) a# J. e( I9 m- g
  40.         Button1.text("关闭中");
    3 `& X  {9 D2 t( m1 ?  K# `
  41.    }% ?) A; `7 K6 r' a1 g3 C9 x6 ~
  42. }5 C5 t8 U5 N5 w" f. Z1 d$ z
  43. * B" O4 \3 Q3 n& C% \6 R
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++9 T* v/ K* {( U- F0 h! c

  45. 8 G1 Y6 w, @! Q
  46. //*******如果小爱有对设备进行操作就执行下面# o" Y6 I1 d) a) e0 P0 r2 V
  47. void miotPowerState(const String & state)
    % [# l0 K4 n  a8 t' ^
  48. {
    ) }- G6 T$ F+ \7 Y* P- e, F
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印
    0 ?9 k  c$ T! ^2 L# d
  50.     if (state == BLINKER_CMD_ON){
    - y) \4 P# P( s5 S, w8 x
  51.         
    ( H" \9 t; x- Z
  52.         digitalWrite(kg, HIGH);, n0 |* i5 k( C! k1 s: r& ~; M
  53.         digitalWrite(de, LOW);/ D, r" E4 h, u, ]6 e% A/ \, @
  54.         Button1.print("on");. ], ^6 G! X; m) Z, H# d- X# ^
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色# B0 w3 M: A( [! j8 m
  56.         Button1.text("开启中");
    4 f* G+ v% M( R0 A% ~! i
  57.         BlinkerMIOT.powerState("on");
    - h$ ~4 G0 l& ]+ R/ M
  58.         BlinkerMIOT.print();
    * n8 z0 X1 N9 @8 r
  59.    }
    4 j- ]$ Z8 {0 p, A" [* T
  60.    else if (state == BLINKER_CMD_OFF), ?7 d/ l9 G% b9 X, ~
  61.    {
    4 B7 o) L. J, L  ~
  62.         % b% s. t0 |3 t7 `
  63.         digitalWrite(kg, LOW);$ W2 E8 U2 R" a" Y) x
  64.         digitalWrite(de, HIGH);
    - P; k) O- T6 _; L. |
  65.         Button1.print("off");
    ) F3 [+ D+ L9 r7 c8 b
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    , o. D7 K) d" s
  67.         Button1.text("关闭中");1 a, h6 X  F6 c
  68.         BlinkerMIOT.powerState("off");# J; C8 K/ a& \4 w
  69.         BlinkerMIOT.print();
    & y  K. n; i& T8 l. x4 K
  70.    }
    ( Q' o6 [6 ~- H
  71.        % a* l7 y/ e: ?' {+ L
  72. . t( B) s- S4 ?" `( T- u
  73. }  u- h. l6 K0 ^6 a( b# d: M/ B; f
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++* T. Q& S* q$ j) Z( X% e0 R" j
  75. //*******如果天猫精灵有对设备进行操作就执行下面' R# q2 M* Y; n7 x9 f
  76. void aligeniePowerState(const String & state)% ^" a* }( h, j# I! ]( c% V+ @
  77. {' Z9 A- R2 W- K. l0 q% g. s
  78.     BLINKER_LOG("need set power state: ", state);. x+ N9 d: g  P  r& n: a4 G( Q
  79.     if (state == BLINKER_CMD_ON)
    6 i) d7 J2 A& N# z
  80.     {
    & ?) B& I( T3 N" y# E
  81.         
      _/ d8 r  U2 X" u# ]
  82.         digitalWrite(kg, HIGH);  |# z: p( z% y) f$ O$ T
  83.         digitalWrite(de, LOW);9 |  u  W$ O% w% |  _( A8 \* w5 X
  84.         Button1.print("on");" T" O. v7 [% W7 ~; g) h
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    / [0 y; K. V( Y. f0 P
  86.         Button1.text("开启中");5 k0 s! N! L0 Z6 D$ s2 T* `
  87.         BlinkerAliGenie.powerState("on");
    + c1 K5 O* s: ~+ U5 [7 ~4 a
  88.         BlinkerAliGenie.print();0 y, |% ^. B' h2 l$ A% Z
  89.     }
    % D5 S# q- k# C6 D) e9 x
  90.     else if (state == BLINKER_CMD_OFF)5 `0 s! Z' i  r: W7 T0 W
  91.     {
    " @4 s- D# Q2 j. _7 d9 N7 F
  92.         * z- J' Y, _/ P+ X6 |1 [( |3 B) i( }
  93.         digitalWrite(kg, LOW);
      h3 b" s- {7 ]% {
  94.         digitalWrite(de, HIGH);. m4 }  _% ?4 \1 c1 {
  95.         Button1.print("off");8 }+ O* e0 r: M6 t8 b" u/ G: J. m
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    ( |$ _% l- J5 g+ s
  97.         Button1.text("关闭中");% K' \6 r4 F3 d% q9 L9 V6 u$ U
  98.         BlinkerAliGenie.powerState("off");+ T  [+ x' I0 i, w& r
  99.         BlinkerAliGenie.print();
    & a* t" }) z. b7 v8 A7 E0 G8 m
  100.     }9 r4 @  {7 ~' X6 \
  101.         ( s: U% Z2 k; ]; M% R

  102. % e! u+ X: _8 x" [8 }
  103. }
    , h0 }- o) G$ Y" F: `
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次6 @7 ?, ^# \1 [- `1 D" H9 y: k/ H1 S
  105. void heartbeat()
    9 _4 R# V; O  O, G
  106. {# E- Z* U! u8 L7 d8 @  R
  107.   BLINKER_LOG("状态同步!"); " V  v% j) j: R, c' I
  108.    if (digitalRead(kg)==HIGH)
    ' |& w, s0 C. `! A- h% f5 z* N2 j
  109.     { 2 \5 [! _+ D3 w9 D0 D# i3 C
  110.       Button1.print("on");8 w2 H$ C/ f/ a3 {3 c5 R
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色
    : X7 T$ ^! a! K" o+ x# u4 W
  112.       Button1.text("开启中");/ Q5 C& s, D7 _1 r7 o
  113.     }
    ! C6 M  z$ o+ i$ t% H
  114.     else & w6 s& s3 Y$ Y. h5 P
  115.     {
    1 q6 w' h+ W  G  U* U9 \  ?5 d6 l
  116.       Button1.print("off");9 K' E5 M: T4 `
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色- o$ H& T! x* M( ]5 H8 b& v/ E
  118.       Button1.text("关闭中");0 A( X/ p) I6 @; ~3 a/ `
  119.    
    ! h, o! v8 a& T6 K
  120.     }% ?( p; C. {, {; g( g+ D9 I( q. Y  m
  121. }
      P1 u. l/ q# p7 g6 H  i6 A
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++& g! N# V7 L0 ~
  123. void setup()
    # m% m. c8 `$ \; [  W# m5 Z
  124. {+ x2 ]6 N- O; ^5 V
  125.   // 初始化串口
    ! z9 U$ S3 r# k/ b8 R& `
  126.   Serial.begin(115200);
    . V% T, R, J6 P# K6 u
  127.   delay(10);9 i5 f$ e0 \9 `# U
  128.   BLINKER_DEBUG.stream(Serial);
    2 M* ?2 F8 C! n6 r
  129.   // 初始化有LED的IO: j+ o' D* V* [$ `
  130.   pinMode(kg, OUTPUT);                 9 K4 I+ ^0 g0 O# A0 ?, j4 Y' }" q2 Z8 B1 t
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态 # W, D/ e! \) H- W. j
  132.   pinMode(de, OUTPUT);& T+ X' M* V  O* n1 [3 |
  133.   digitalWrite(de, HIGH);
    * X. X+ J0 G$ t1 ?
  134.   pinMode(key, INPUT);            
    4 f& |. M. {! I$ \
  135.   Serial.println();6 M0 G4 K) H9 J7 `* Q
  136.   Serial.print("Connecting to ");9 q+ ?* a) k, G" j
  137.   Serial.println(ssid);
    + V+ k- O5 S, U8 [
  138.   WiFi.begin(ssid, pswd);8 P" M" V+ Y" x
  139.   while (WiFi.status() != WL_CONNECTED) {& P5 ^1 z0 F- n. `" c
  140.     delay(500);+ K* q. P+ ~! r: t$ V
  141.     Serial.print(".");
    ! g1 K# d/ Q" C- O8 H% q% {
  142.   }+ @% `# K: ?4 k2 l  t
  143.   Serial.println("");
    ) B/ V" @% @8 G! U+ p6 _! U
  144.   Serial.println("WiFi connected");9 k# a: _: Q6 G& h( z
  145.   server.begin();
    6 a6 N) D9 \  u
  146.   Serial.println("Server started @ ");
    . D  l0 d3 A. j8 u) S* z7 o
  147.   Serial.println(WiFi.localIP());
    # V% b0 I5 B% u
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip
    " P1 a9 \# m8 L
  149.   Serial.println("To control GPIO, open your web browser.");
    4 u: E$ y9 H' F; [) ~9 D  z% X' ^
  150.   Serial.println("To set GPIO 0 high, type:");
      T- ^% V! f1 w7 `2 w8 _  X, E
  151.   Serial.print(WiFi.localIP());
    5 n! Y. ~7 e' m
  152.   Serial.println("/gpio/1");6 j2 M# r7 N# W9 A/ O. C
  153.   Serial.println("To set GPIO 0 low, type:");
    % @0 p5 ]0 g. m; ~
  154.   Serial.print(WiFi.localIP());; i9 l7 m1 J, k. x' p" m
  155.   Serial.println("/gpio/0");
    , u% [7 T# A; n) r9 t5 W
  156.   Serial.println("To toggle GPIO 0, type:");% V; K) d! M6 J- i8 E8 o
  157.   Serial.print(WiFi.localIP());
    3 o0 Z) ~" b& Q9 b5 }
  158.   Serial.println("/gpio/4");( F! f/ k2 S2 {4 f# j9 s

  159. 1 K5 P: M& b3 a
  160.   // 初始化blinker. w( p- U+ {0 i1 J% B+ s/ O. ~) M
  161.   Blinker.begin(auth, ssid, pswd);- x. l& j! ~  L% q& p- E
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数! x6 y5 E3 o$ e  }7 ?/ n9 |
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数
    9 ~. z& N% ^5 v* Z  L: V( G8 t
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。$ B9 ?7 f) q- ]0 z1 R% W

  165. : Y) k" V: u/ Z3 B+ Z
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback; j9 E* x1 S. S5 F) ^( ^% \
  167. }
    - Q7 R0 E3 p5 M1 l
  168. void dataRead(const String & data)) w% h* m+ v7 B) J# |% _6 d
  169. {% `- T7 D! {& C- n
  170.     BLINKER_LOG("Blinker readString: ", data);
    ! C5 r; L6 |/ @) x! X
  171. " Q) N- D" c, R  g% m5 Y1 X
  172.     Blinker.vibrate();
    " A0 P3 ^# f$ L( n+ u4 j
  173.     / f" f" A) Z$ l4 `6 ^8 p
  174.     uint32_t BlinkerTime = millis();1 x) z3 Z' {/ f2 Q6 b5 f
  175.    
    + I4 L* T% \1 @* C
  176.     Blinker.print("millis", BlinkerTime);5 `( W( ^( Q8 e" S  g  @
  177. }
      y% M- u" e  q, u- b
  178. void loop()9 k# U/ n( d0 O2 J; O. X
  179. {
    ) U% a  u0 n& ?
  180.   Blinker.run();
    * J& A+ M2 p. P& |8 B8 _
  181.   if (digitalRead(key)==LOW)
    9 _8 @5 v0 J4 H3 m' h# |) n
  182.   {$ H: o8 y/ q# P& F. e: k
  183.     Blinker.delay(200);
    - E- ]' U* X/ C; I2 s: h
  184.     if (digitalRead(key)==LOW)
    / K* R! w, [  w' C
  185.     {
    8 R$ o( \4 d# P! T  j
  186.           if (digitalRead(kg)==LOW)  e- n$ s* t& Y5 p+ j% ~+ H
  187.        {& N5 E+ D0 Y0 u! k7 R. S- X- \9 o7 h
  188.             
    3 }. ?5 }3 K2 \  K+ r
  189.             digitalWrite(kg, HIGH);
    5 u9 j. p: n1 Q5 t
  190.             digitalWrite(de, LOW);
    9 `2 U" f9 z) h3 R# S+ r9 ]
  191.             Button1.print("on");
    * P5 v1 h; \: F) H; {
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色1 {3 E/ R6 g+ C
  193.             Button1.text("开启中");
    ( F1 a! N8 m" v5 r* c" M% s
  194.        }
    ) r) V" X: X/ @
  195.        else if (digitalRead(kg)==HIGH)
    ( S& Z  |; g3 I
  196.        {
    $ [; Z) h  k7 e# K% C
  197.             digitalWrite(kg, LOW);% |6 g/ z1 h4 c
  198.             digitalWrite(de, HIGH);
    & x4 I& @! W; X! U* Z
  199.             Button1.print("off");" v  D# W/ ?2 J# {
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色
    ' B7 r0 G% [7 @
  201.             Button1.text("关闭中");
    & b, _$ I5 I( B$ t2 Q0 I, F* w. P
  202.        }# J) w  n% ]% `5 {& |3 t' P1 v
  203.       }
    ) C0 j6 F# b0 I; `2 h
  204.     }
    , j: s5 D. y* o6 h" f( _; G
  205. }
复制代码

3 ]2 b  }) o+ y& s! z' k0 c$ Y1 ]# n, ~* M- A% j
我没有用卖家给的码,我自己写了一个,参考我前面的文章最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 https://bbs.nasdiyer.com/thread-18755-1-1.html6 b4 {' Y  x5 b" z  u7 e5 A! \5 M
  {( O! U# X7 K1 J  @* g0 B
把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。
; m: P6 M8 H3 C! ?
! O" ^( m' q- K- V. @2 L
6 C% ?* }. ?2 ?9 P- N

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
+ [8 p' X6 _  p2 k! I买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

2 Z1 R6 T2 e5 |  Z8 I' ~  A大力出奇迹呀

1

主题

8

回帖

256

积分

中级渣柚V1

积分
256
发表于 2021-8-29 08:14:58 | 显示全部楼层
a467913252 发表于 2021-8-24 15:53
3 ^* k7 C+ t6 I买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

' E/ s% T+ E- u  [' W/ \7 _昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

62

积分

初级渣柚V2

积分
62
QQ
发表于 2021-9-4 23:05:22 | 显示全部楼层
sevenup0719 发表于 2021-8-29 08:14, c3 z1 G5 q5 C9 `+ }
昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...
, ~  r' ~3 I% z3 n" w
你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-4-1 06:09 , Processed in 0.056289 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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