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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 易记 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式 IP:–浙江–嘉兴 电信
本帖最后由 易记 于 2021-8-21 14:05 编辑
2 N  C# f9 b- n6 ~7 ?% H7 c  R
1 R, d6 j- z$ N最近玩ESP8266,想做个天猫控制开关。
0 }9 R; o6 v* g% V' k7 C- W  V" L- \但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。  z# r8 s3 K1 j, C* {% ^0 |$ N3 z9 {
还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。
0 b" L* _' L1 j. U! i- K QQ截图20210821125037.jpg 2 j3 @( E0 `8 D& H
: v8 d, A5 _" g' ~$ u

% J6 l* q& s  u3 ~5 @问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。% [# I9 A* @5 M" b. Z7 c+ J2 C. k# i
- W7 G, W& L0 F( f) I+ t
QQ图片20210821124517.jpg ( F+ c  d9 A) K  S' x% g+ o3 r$ _! m9 P
/ z0 O  u2 t# j! x6 m! Y
6 ?9 B" D- h; \4 c
; t" |0 W: v" i5 k8 o8 _; ]
到手,当然是拆拆拆。
3 t& B: O3 h, O9 U. l IMG_20210820_134104.jpg ! t3 A4 y5 G* Y5 s* P

' p- N# z+ B2 Q+ n; d3 F+ a% p

" i7 E, f& a" ]9 ]( f联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。& v6 E  e! [" G/ W7 k& G
IMG_20210820_160634.jpg
1 C3 n9 u, |3 X, a" @9 @( e2 u1 J- g" W7 ?0 C1 J8 g' o
; |9 F2 o5 `% d/ |
继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。' ?6 m8 q/ M6 W$ f% z/ O) J; Z
QQ截图20210821133707.jpg
7 f; y$ w# z- Y( m8 h$ h

3 Q5 O$ K+ ?3 b IMG_20210820_134114.jpg
$ I  C9 |" k- L# G) K% s1 ?. {
7 u/ a5 k* z$ O- k4 N
电源芯片
2 a# x. L( `6 U' s
5 N7 N" z$ {/ O
/ j  I- A3 `; N/ i' |, r* x
4 U4 ?) a+ A# O+ i. _
有一个按钮,按钮有二个蓝色LED灯
. t2 C7 l1 t1 R: l; W1 z0 {- e IMG_20210820_134157.jpg
! W- |! c* v1 K$ E! G' U- j/ v3 b! W8 C8 I

0 c, o! J  E6 y! O: P6 j! h8266
. d, v$ e: A' i8 Z4 Z+ Z IMG_20210820_141913.jpg
& h: u2 v8 o( ~6 o% R5 l$ q8 i2 x7 h. Z- U

( _' @9 ^/ d' Q8 `7 k4 g0 |: z# w! \+ H$ m! k

9 T9 h. q0 B. }% g: p/ R接下来就是刷机了,版子上面都预留测试点。
# m/ v$ c4 T# G7 S' q接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。
2 I; M: A( L6 k0 p# u# G 未标题-1.jpg
  B; D( Y; H; ^: t9 b  \. A
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。
/ J# I" a. m* |7 j要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。
  t0 N+ s" l$ C6 r

4 x3 p' N, ]% \2 t( b
: X9 s, C( B/ [0 L7 M3 e: K
$ E) v& e7 W$ t+ y: y
/ ], E% \1 Q& [+ ]: a

7 _1 D- {" k( q- h$ p, y    5号脚位是继电器输出; V, `3 a  O' N# g) P6 ~
    12号脚位是灯输出: m- t3 ^- Z) G
    4号脚位是按键
0 j9 K, J. a; |' [# t
1 K* w: B5 [; B" x" Z
- f4 `5 Q) b5 X" d0 ?
# `6 H; q( l% @( {/ T9 ^

3 J& o  q' B7 U6 f' E卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库) H* I+ }7 P0 {" ^1 y/ N
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库
    " Q( r/ T( Q1 u" J1 ~; m5 }+ p
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库. i' w- F# C8 G* `, E0 c0 H
  4. #define BLINKER_PRINT Serial            //串口协议库
    0 I% w' h. t$ v$ T. w, t& {" j% {
  5. #include <Blinker.h>                    //官方库
    0 ?! Y$ _8 z& B% j8 W/ ^6 U
  6. #include <ESP8266WiFi.h>                //官方库
    6 N' p/ l4 E' d
  7. WiFiServer server(80);                  // 服务器端口号8 ?9 q" q* ^. o0 ?8 s  G
  8. + X6 E/ g: Z! W
  9. char auth[] = "c4942fb1d5e4";     //设备key
    5 _+ _  T& a3 I
  10. char ssid[] = "wanboshi";     //路由器wifi ssid1 X4 H% s9 `9 k7 S% }
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码1 ?0 _* _+ z% |* C! |7 ]2 }
  12. ' ~: m/ {, e6 l7 ^
  13. bool oState = false;6 W* g9 d2 Y0 b. w

  14. * E. f7 N  r5 O) O
  15. int kg=5;//继电器输出% [( V# `; s6 Y
  16. int de=12;//灯输出
    * Q) P5 C1 i$ L/ H! Z
  17. int key=4 ;//按键2 ^; P6 N  n- F6 s
  18. //*******新建组件对象
    4 H3 c' ?' d" @7 l. k& R* l
  19. 4 x- Y0 y# e- }! O, _
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名$ l* Q3 y5 v- i7 u- S" x. F9 c8 j
  21. //*******app上按下按键即会执行该函数app里按键  x# d; S  p% e7 |
  22. void button1_callback(const String & state)
    ( w  l+ W$ e) {# [4 {8 d- s. c
  23. {* l* D5 |( g6 ?
  24.    if (digitalRead(kg)==LOW)! E' H% l/ b' w  [( q$ A- _. ^
  25.    {! ?- X7 v% K0 X% v6 t" _
  26.         BLINKER_LOG("get button state: ", state);
    1 H7 B: N" f9 x) N
  27.         digitalWrite(kg, HIGH);/ [) A. r5 {  U) e- `8 d# }
  28.         digitalWrite(de, LOW);
    2 n5 p( y. r: i" O
  29.         Button1.print("on");. r: `2 V: |* b9 N! A
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色& C5 k+ p  p: c/ ~
  31.         Button1.text("开启中");
    4 O7 s( _* Q, F3 x( [( R
  32.    }
    % [8 T- _) e# U0 J% u' T
  33.    else if (digitalRead(kg)==HIGH); S9 e9 \, D2 T
  34.    {. K6 w7 Y' @! l4 R. ^" P
  35.         BLINKER_LOG("get button state: ", state);% f4 m3 M/ q1 j3 Y8 M! [
  36.         digitalWrite(kg, LOW);! c) w' [0 z. Q  X/ \" m
  37.         digitalWrite(de, HIGH);5 A' x( b: T# k8 L. B4 e: K
  38.         Button1.print("off");8 U1 J; M* h" U1 R4 R3 @
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色
      k6 _& _" q$ [6 y' X6 x5 d
  40.         Button1.text("关闭中");* ~& l4 W$ C  ^% @5 t
  41.    }* A' H+ D: w: f- D" m$ x# o
  42. }5 j& s6 v0 d. ?& o; V4 [! V0 }% g

  43. - G- w% Q8 z, t& w6 i8 a
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. g8 o7 Y/ h3 p

  45. + H% W7 H8 r7 V" J) Z
  46. //*******如果小爱有对设备进行操作就执行下面# x/ s  K0 z( ~$ a0 x/ y
  47. void miotPowerState(const String & state)
    0 Y& ~9 H% l- d/ l- `" E) u
  48. {
    7 y3 u% q! P4 c+ z
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印4 |  p' v2 Y2 k
  50.     if (state == BLINKER_CMD_ON){# p, u: Y7 R% `  }' w
  51.         6 e. o/ I6 o5 W9 U; M  k
  52.         digitalWrite(kg, HIGH);( t4 V4 o* F% \9 u
  53.         digitalWrite(de, LOW);
    5 A, C) _4 u4 }- t5 h" D
  54.         Button1.print("on");) l4 c2 r3 `) x1 x7 R
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    3 J: v( G* Q( ?8 p  h$ n
  56.         Button1.text("开启中");
    8 Y; K% o! h& |- {
  57.         BlinkerMIOT.powerState("on");
    6 L% ?* \, C  X- F9 T% E
  58.         BlinkerMIOT.print();
      V1 ]6 F% ]9 y# o) x' |  F6 C
  59.    }
    ; p9 }5 A) `* \
  60.    else if (state == BLINKER_CMD_OFF)) t( u- C1 _# z# V1 @7 k- Z
  61.    {
    - G2 o) S4 O3 D. v8 L+ c$ g
  62.         0 }+ p8 u; Q' D1 F& X4 n6 r! e
  63.         digitalWrite(kg, LOW);
    4 E  H# k* V5 I% f
  64.         digitalWrite(de, HIGH);
    ( J/ L/ a& A! _$ I/ f( @
  65.         Button1.print("off");. K- S5 _5 m% N
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    ) {4 D+ r0 D5 R. Z
  67.         Button1.text("关闭中");
    0 t$ A$ z$ ]2 c) b6 ]5 z4 L! V* m
  68.         BlinkerMIOT.powerState("off");" w# y1 {" |* ?! }" m
  69.         BlinkerMIOT.print();- X8 ^3 Z. y( R* W  {5 M
  70.    }
    ; J" n+ _7 L/ y+ v- n5 m" |
  71.        8 y3 y% w+ M. f! P4 M. u# E3 v

  72. ! |: P+ r) ?# s$ P4 m1 s+ C5 f
  73. }
    3 b0 j9 a- G6 o4 ^' T
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++* o& x1 t% }) t6 ^
  75. //*******如果天猫精灵有对设备进行操作就执行下面! _+ g) A; v) W. y# B6 T. Y2 t! I
  76. void aligeniePowerState(const String & state)
    , `) v" H1 K% Z- U6 o9 J
  77. {5 ^; h9 u9 b# M( }5 x, Q1 e
  78.     BLINKER_LOG("need set power state: ", state);( A7 Z/ B! M9 r! s% r& _& `
  79.     if (state == BLINKER_CMD_ON)4 i) K! {, x3 B* i, D' Z0 q" x. m) o
  80.     {( {8 T3 M4 H4 r* P
  81.         
    1 A! j" q) ^$ m2 o: ?: L( |: }. f7 l
  82.         digitalWrite(kg, HIGH);
    & @5 U$ N# U, T# J) t! I
  83.         digitalWrite(de, LOW);
    6 ^! k* {! W) _, y" i
  84.         Button1.print("on");
    5 L+ W( f$ q& E' a6 z0 ?- T9 E
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色  K  a, v; ?' _
  86.         Button1.text("开启中");7 T1 B) k/ l) ?# x- Q
  87.         BlinkerAliGenie.powerState("on");0 F+ P4 U9 V, P( u' P) Y3 P' B
  88.         BlinkerAliGenie.print();, j' e& V: M  r0 x* d
  89.     }7 j5 O" a1 _. w$ R/ S5 [# `
  90.     else if (state == BLINKER_CMD_OFF)
    : n2 y: C9 n% ], I5 m
  91.     {  S+ ]$ j, ~/ S9 o, i9 F7 {
  92.         3 i* S9 I  }: ~9 ~( |* W- d
  93.         digitalWrite(kg, LOW);
    / L4 F2 m2 `6 g7 u; i) H
  94.         digitalWrite(de, HIGH);9 `' v2 c( U! ^, Z$ V# }' f& L5 d
  95.         Button1.print("off");4 L' s/ q) A+ X' C! y9 ]7 i$ l, b/ ]  f
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色7 z$ x; M9 Y% l/ d$ k
  97.         Button1.text("关闭中");# P4 ]. W. R! T; c) u! @1 J( s) e2 T
  98.         BlinkerAliGenie.powerState("off");
    : v- G; h( l) Z8 ~% r* p
  99.         BlinkerAliGenie.print();
    ( u1 h6 i' M1 w5 f0 Q, y& Y  m
  100.     }6 W1 F( \9 @' j1 B3 f! ]0 o
  101.         1 z: \2 M1 H- n" j1 ^

  102. 2 J, M" h6 W1 i# m8 C2 m! N7 N, ^
  103. }
    0 L1 y# d$ n8 V6 I- q
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次
    $ ^$ \! R- o. M% x' S
  105. void heartbeat()$ b8 d2 ]6 x4 o$ o% a/ E
  106. {9 z. \( v3 q8 @+ h
  107.   BLINKER_LOG("状态同步!");
    , A' f$ v& O& B  A1 s. V3 o; p$ k
  108.    if (digitalRead(kg)==HIGH) 9 t5 m4 y* ]5 @. M( W
  109.     { $ @% M& L6 h( {; b
  110.       Button1.print("on");
    % Z  R1 l4 a: g+ i) ~4 K
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色: a7 B8 z; {5 e8 D5 k7 Z& @
  112.       Button1.text("开启中");
    9 Y0 J- l6 q  p" L8 D
  113.     }
    # Q0 G3 C; d, Q4 c5 u3 m! U
  114.     else - d( T9 a/ t! {, }
  115.     {" p+ o5 K- A8 p+ N* w- Z. B  F
  116.       Button1.print("off");  |1 d( v4 P8 b7 `  g, r2 W
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色' D. J# {7 s: \# f: d% X
  118.       Button1.text("关闭中");; j' O1 P* C: b
  119.     . Z% f) Y( M- y/ t  S6 l
  120.     }3 t  \% C( f5 O% H! x6 b
  121. }: m3 e1 S6 ^  t7 [* \! t8 i8 _
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++& T( T9 S$ X: T2 z1 ~2 e- A1 ^
  123. void setup()
    , J) P6 j2 W) G, j# Z6 }
  124. {
    4 w% d6 h9 {+ X# ?9 S1 e2 [+ N* d
  125.   // 初始化串口* i2 L, T& h/ k
  126.   Serial.begin(115200);
    + T' @3 ?/ N+ O9 d! x% W- q# f
  127.   delay(10);/ e1 z& {8 }5 E  L7 p
  128.   BLINKER_DEBUG.stream(Serial);
    # Z$ r- K$ N1 h* a2 s5 q
  129.   // 初始化有LED的IO
    9 V8 O  z% E" e% O
  130.   pinMode(kg, OUTPUT);                 
    * u  b' u' ~" j- {3 `( A
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态
    # o5 t$ M& R" C# G7 N" k8 N0 a  U; ?; N
  132.   pinMode(de, OUTPUT);( i: u% B" i) J- K7 c. T
  133.   digitalWrite(de, HIGH);
    : H# S( T. |; E' |' m$ I" y
  134.   pinMode(key, INPUT);            
    * f6 O' `. \" k/ D. p  w
  135.   Serial.println();" k' ], F; I1 p; H) M) f8 _7 f
  136.   Serial.print("Connecting to ");
    6 j8 J. y8 X5 k$ \& k
  137.   Serial.println(ssid);$ }6 k% k5 X9 i* y
  138.   WiFi.begin(ssid, pswd);9 O) R$ @( N9 ~
  139.   while (WiFi.status() != WL_CONNECTED) {
    , `8 c* o7 i1 g7 N2 b+ b! i
  140.     delay(500);
    6 j9 \6 I4 Y  a8 J: x
  141.     Serial.print(".");" @( M9 }$ o5 [7 @4 A: ?
  142.   }' f/ w9 `5 u; m; I+ N* \5 t" c
  143.   Serial.println("");' [  T, e0 s" m: z
  144.   Serial.println("WiFi connected");
    $ D! e$ s$ D5 d: s3 p
  145.   server.begin();
    * i- {8 q. D7 a4 M' }8 t
  146.   Serial.println("Server started @ ");3 Y) h8 r( g" r" O2 }, F
  147.   Serial.println(WiFi.localIP());( O; K( D8 c5 u$ v
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip
    ( ?0 F. S& Y9 D
  149.   Serial.println("To control GPIO, open your web browser.");, |1 |9 i6 E4 q0 i* b) r5 I; {
  150.   Serial.println("To set GPIO 0 high, type:");
    & x1 t5 z2 v# s6 H0 N6 K
  151.   Serial.print(WiFi.localIP());! {" A, l2 h5 B, G; l% e
  152.   Serial.println("/gpio/1");) i" t% J# o5 r4 m/ m1 b5 I
  153.   Serial.println("To set GPIO 0 low, type:");4 n; n! ~# m% B7 n# w
  154.   Serial.print(WiFi.localIP());0 `* J+ F3 l+ m# Z
  155.   Serial.println("/gpio/0");+ K+ I: T9 F( G
  156.   Serial.println("To toggle GPIO 0, type:");
    8 C3 A5 K' l6 w. @$ b# |/ x6 j
  157.   Serial.print(WiFi.localIP());
      T( ~; E* h4 x- _+ M  ^1 d
  158.   Serial.println("/gpio/4");
    7 T( w& T, e; h' I# x

  159. $ V: t9 o: s2 ~/ O
  160.   // 初始化blinker
    4 C: x4 \+ [5 o& p
  161.   Blinker.begin(auth, ssid, pswd);: e# U- a" U6 K" W% I. P
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数
    ! g- ~& d# a1 f6 j
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数# T5 P3 U% t9 N8 O6 S4 S
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
    $ U* H7 d. c' @& N( a' R9 S

  165. ' \- [3 K9 I: E- D
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback  T" t, Q" d! d$ l, q
  167. }
    # t% m5 a& g% j
  168. void dataRead(const String & data)
    ; R3 e1 x' c$ q
  169. {7 n+ K  p- I  _, U2 A+ \
  170.     BLINKER_LOG("Blinker readString: ", data);0 @1 m( R$ U1 E8 r# Y
  171. 6 ~4 \% D3 i6 Z- z, w
  172.     Blinker.vibrate();
    # A4 F$ q: a8 G8 v
  173.     3 Z5 j+ K  d) \8 Z0 v) @# m. k3 R
  174.     uint32_t BlinkerTime = millis();
    9 u9 m/ K; K5 X
  175.     ) \& N9 a5 L. Q% [( x/ `
  176.     Blinker.print("millis", BlinkerTime);* b; N0 S; k' x" \8 t% v
  177. }( E$ {: _3 P% t( [* D' M' i
  178. void loop()
    " N: J! @- q. O* A7 i
  179. {) O# q" M& B& s* W! ]1 H# I8 e
  180.   Blinker.run();
    ; w% s9 u, ^$ I" ?
  181.   if (digitalRead(key)==LOW)" o' H5 b, y% ?+ P0 I+ `, W
  182.   {
    4 e2 E( y6 E9 w- y' M
  183.     Blinker.delay(200);- a6 }6 N  F+ u! N8 L( V+ _
  184.     if (digitalRead(key)==LOW)
    6 H4 X6 K5 U7 Q$ K: |% x% F
  185.     {
    ) O1 t; ?1 X  e4 M5 U$ \: F
  186.           if (digitalRead(kg)==LOW)8 J' {5 ^7 A6 _0 P# P0 L" {* P
  187.        {. S) p) A2 i; v* L2 w
  188.             
    ' ?8 ?% Y9 _& X2 D! i1 }; P# `
  189.             digitalWrite(kg, HIGH);. R) ~6 R( \$ I' b
  190.             digitalWrite(de, LOW);/ O$ p/ y" _) T4 {
  191.             Button1.print("on");
    4 N3 e! V; i6 Q' S4 ]+ U2 }
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色
    ! s3 ^# d1 ~/ ]& Y
  193.             Button1.text("开启中");* t7 [& B( v1 p/ z6 F& x+ b9 v
  194.        }; ~- X0 M. {& T: I( _  x3 C
  195.        else if (digitalRead(kg)==HIGH), U4 B+ y) m4 W# p. X8 m- E2 \' ^6 t, I' R
  196.        {
    7 y5 a6 w- `! U$ z% @$ y* b
  197.             digitalWrite(kg, LOW);9 D9 d% \# K* Z8 n1 Y2 Z$ L. e; F5 }
  198.             digitalWrite(de, HIGH);
    9 n( S; J5 o8 j2 H  s0 T
  199.             Button1.print("off");
    / H0 q* K( |) z
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色/ F/ C0 `* V. e9 v7 p; i1 e
  201.             Button1.text("关闭中");  \- Z  |4 @! Z, q! b
  202.        }2 L1 c% b: i! U  q/ ?) |8 o
  203.       }
    5 t: g: n/ E8 E3 `
  204.     }" _- O+ G' E" @9 b: O) k
  205. }
复制代码

" ]  }$ V- ^0 v$ z
$ @" z9 @: E" I我没有用卖家给的码,我自己写了一个,参考我前面的文章最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 https://bbs.nasdiyer.com/thread-18755-1-1.html+ t- V. {4 r; O0 E, D- c2 W
0 i7 K+ I. @1 s' a  N
把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。
& Z  }7 k7 ?# m0 H3 P5 _
  O1 |0 l5 y+ Q9 V1 o! _# A0 _+ ]* d$ C9 o

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& `+ X  D$ F' f& Q7 ^. e4 g' ~2 m
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

9 @+ q' P: J# L! k大力出奇迹呀

1

主题

8

回帖

257

积分

中级渣柚V1

积分
257
sevenup0719 发表于 2021-8-29 08:14:58 | 显示全部楼层 IP:–江苏–连云港 联通
a467913252 发表于 2021-8-24 15:53
8 r3 a! s" c4 }0 H; I2 X4 d买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...
9 d1 @' q4 g% o3 [' c
昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

62

积分

初级渣柚V2

积分
62
QQ
a467913252 发表于 2021-9-4 23:05:22 | 显示全部楼层 IP:–湖北–武汉–江夏区 电信
sevenup0719 发表于 2021-8-29 08:14( p$ O4 _0 _' D1 E; P+ n# R
昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...

6 E# G1 g* Y) ~  f8 T6 _6 ?, G你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-19 10:25 , Processed in 0.081231 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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