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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式
本帖最后由 易记 于 2021-8-21 14:05 编辑 6 F- y) I$ s# h: ~* w" d

4 y7 }  d* R! [! Q  Z最近玩ESP8266,想做个天猫控制开关。
7 {/ k. Q+ M/ Q0 o& Q9 f* m但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。: K& F9 c, h- K! W% |
还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。- f& z( p0 a- g3 u/ a) f
QQ截图20210821125037.jpg
) w% i) z% B/ j, @1 R
0 F6 {: S" |8 R1 i9 J! P

& E/ ]  v6 k1 a; G$ c问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。# C3 {$ q5 m! D5 u& ~
$ i8 P! x6 b% u
QQ图片20210821124517.jpg
) k: P' j$ Q: d& u0 w' ~: C

) `& ]. b) }9 N: ]6 C% ]+ @4 K$ R; @) z- N

. i- [9 ?$ n7 B) B- K  @( G! i- b- f到手,当然是拆拆拆。
6 G: f# y# k* _ IMG_20210820_134104.jpg 7 ?. J- k, a0 {5 r! }8 M1 R! v2 F9 Q
% N3 t* ?; z1 i. v' ?

  z( @: E' G% d联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。
3 t6 j4 q3 G) [  d IMG_20210820_160634.jpg 9 A% `7 N, ~. H# \4 Q1 h+ n* w
# {; b% `+ K# ]4 l
( j/ C9 G% a* B' e6 \" G
继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。
1 |$ y1 y: s) s QQ截图20210821133707.jpg : u& [& t  m) t5 |0 t( ^
/ S% J; z5 V9 E. [7 S5 F
IMG_20210820_134114.jpg / c/ X7 P- I6 q' I* `* m, k; \

  {" i- E; L3 U" `- X1 s, W电源芯片2 Z/ K3 V- n7 L/ N/ ?
! T" u; m& }. L) S# ?$ ?
5 f, f  I8 q0 h0 a

8 \( [0 o9 b9 l有一个按钮,按钮有二个蓝色LED灯/ B- X0 z& q) |4 F+ E6 C% I
IMG_20210820_134157.jpg
( f; B" [1 S1 @! k4 U
' t+ d1 P; q" a+ w  g1 M

9 d: d1 D! h! C/ M8266
7 [" C0 e) ?# H: H6 R. ] IMG_20210820_141913.jpg 7 A; L. _+ X2 J5 I0 H/ S
0 y4 L; R" Y# j$ a4 d% c9 o
  X2 a8 t( I2 V8 [; L# ]
. O, [0 C) P$ r0 {; D- K0 K

* e. W+ g( ^& d! F9 L* P接下来就是刷机了,版子上面都预留测试点。9 x3 d+ W' U0 Z# J0 v: U8 G
接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。% f8 e" D, g  Q# i; W+ f
未标题-1.jpg
. k# n) I  u- o. i3 Y9 j
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。
3 B0 M- t9 K5 R+ [" E% _要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。

# i* Q( T5 |5 b% Y, m/ g: l9 f# ^1 z. B+ s; g

5 {: i/ m, h3 b) p7 u1 o
! l4 l5 D, d5 I0 J
8 E$ y# _: l& }5 r  d' V/ Z

! u# n. F) H4 w9 o  p" u    5号脚位是继电器输出: z3 C( W# p6 h( K% h
    12号脚位是灯输出8 N; R/ O0 @5 C5 k; z
    4号脚位是按键
  K, T7 L4 ?% V2 O
7 A' ~0 v) c8 ?) y* s6 {1 O

" T& t5 [( G8 |# e2 I% t* n. D. U/ }2 @
; u+ a. s4 c$ @, F
卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库+ O+ N/ ^: p$ h
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库) q! S9 z" O3 J2 J4 n& o
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库2 @! q3 f! |3 x% c
  4. #define BLINKER_PRINT Serial            //串口协议库
    9 U" P8 y0 _5 U- Y7 `
  5. #include <Blinker.h>                    //官方库
    1 T. ]2 R* {7 O6 U+ }9 g
  6. #include <ESP8266WiFi.h>                //官方库
    & T: a. G1 E& V5 F7 N+ S
  7. WiFiServer server(80);                  // 服务器端口号. x/ ^7 c$ }, q/ H/ `

  8. - R; \: ^/ r, s$ U7 \
  9. char auth[] = "c4942fb1d5e4";     //设备key! x4 N& Y( r  U, R$ |
  10. char ssid[] = "wanboshi";     //路由器wifi ssid
    4 v, x: ]$ M7 h4 n/ E- ~: C/ R8 A
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码3 u& c2 O3 u* I" O7 R
  12. : Z2 o9 P$ T0 e. O5 q/ S
  13. bool oState = false;& e5 O1 `4 H$ ^8 ?" M$ g
  14.   P0 n3 l% `' T' D, \- ^( N
  15. int kg=5;//继电器输出, z: r4 ^. L$ J. W* t% b
  16. int de=12;//灯输出
    ! P6 K) f% U* ^. J# M
  17. int key=4 ;//按键8 J% O' U- q- e6 |: [" _3 p; N. n
  18. //*******新建组件对象( r$ P) y& {( D2 G4 I

  19. % w# l7 S! y5 Z2 }4 ]; x
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名
    $ i: e& _8 i  |6 `; b
  21. //*******app上按下按键即会执行该函数app里按键
    / n1 c2 X% ~1 |6 j4 q5 |, a2 U' o
  22. void button1_callback(const String & state)/ K# G  c6 D' V
  23. {1 J, v2 l0 b* ~5 O  M- {8 [6 Y
  24.    if (digitalRead(kg)==LOW)5 x* H( r! T  B
  25.    {: L1 u, }: A' `6 X% B6 U
  26.         BLINKER_LOG("get button state: ", state);
    * P# [2 x4 s* e/ P
  27.         digitalWrite(kg, HIGH);
    3 y9 K0 L8 |- g8 w
  28.         digitalWrite(de, LOW);# V) C# N# e3 e9 ~+ J
  29.         Button1.print("on");
    - b  n0 {) j* z+ \3 \3 q# c
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色6 W( G) i2 L& C# I8 Z& y9 {$ L
  31.         Button1.text("开启中");3 w) q3 w6 s4 f0 S$ v, O
  32.    }( y+ a# w& `/ `: b  @
  33.    else if (digitalRead(kg)==HIGH)
    ) }5 c/ s; [; }% m1 C
  34.    {6 o- S; {8 j" L' R) @
  35.         BLINKER_LOG("get button state: ", state);1 Y1 C8 Z' z0 @' K6 d  u- j
  36.         digitalWrite(kg, LOW);; u: T( u, c" X% G* f! ?+ h
  37.         digitalWrite(de, HIGH);1 G- C# `- d# f: X$ }" z
  38.         Button1.print("off");6 i" U  ~8 Y7 ^0 v( w# n
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    : T- H. Z; b  p: @( p3 _
  40.         Button1.text("关闭中");3 k& m/ y& n) H5 \' Z3 c
  41.    }" o. u+ A4 U/ X8 k
  42. }
    ( l6 a) i3 y) V3 o8 y

  43. ! ]9 D- D! M$ j" h+ @& _8 X9 d
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" G; N7 e2 G' [( u' [5 v0 K3 ?
  45. 6 K* @& {1 o  K  K( y/ \# W
  46. //*******如果小爱有对设备进行操作就执行下面
    - K: G3 }1 f5 n7 C
  47. void miotPowerState(const String & state)+ {  c# K& {$ S
  48. {9 f$ r( T+ C+ V# t, [4 T# |/ J
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印$ }2 |; N4 v" {- c" `
  50.     if (state == BLINKER_CMD_ON){
    3 z; M  A, ^+ q( I
  51.         + K+ c. S/ }. s4 {/ u/ |
  52.         digitalWrite(kg, HIGH);% [+ }, P+ U9 X* X2 q. p
  53.         digitalWrite(de, LOW);' {, ?' o! r; ?9 a2 ~
  54.         Button1.print("on");$ N  p7 D1 _! C
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    3 O% B6 X# }1 Q  t& D2 k( y
  56.         Button1.text("开启中");9 o+ N8 H" U0 @& G* j$ x3 w
  57.         BlinkerMIOT.powerState("on");
    $ {- L. ^, g" P9 B9 i% N. G
  58.         BlinkerMIOT.print();/ r5 Z  _1 ^4 L: o5 U4 h
  59.    }
    # ]7 _4 ~7 p! C' e7 j* p
  60.    else if (state == BLINKER_CMD_OFF)* e" q( J% q6 s, p3 C# ?$ d% s) [0 |3 \0 J
  61.    {6 \0 E7 C& v3 O, v2 h! X
  62.         4 ~- z5 O% D5 E, a5 H' E
  63.         digitalWrite(kg, LOW);+ m! o* G4 I. u
  64.         digitalWrite(de, HIGH);
    2 r! T+ I5 s, e/ L5 I; T
  65.         Button1.print("off");
    2 g- B& o3 }) R  o7 B3 W
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色' v" S6 g# P7 E$ y
  67.         Button1.text("关闭中");
    ; @3 Y0 Y! K1 K
  68.         BlinkerMIOT.powerState("off");1 s3 M" ]8 l/ E# ^  V) C! R( n: S
  69.         BlinkerMIOT.print();4 S! H# s: V5 R  C2 {4 c  _' W
  70.    }% i1 u7 d0 L, x+ r
  71.        7 ~4 S4 W/ T4 Y7 N8 T

  72. 2 B. U' _% A7 z# }/ W: E
  73. }
    $ O% h* s* b% Y! P
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    % a" Z3 D" h! y3 e% E
  75. //*******如果天猫精灵有对设备进行操作就执行下面) k7 P+ L3 ]% f5 i/ s2 t
  76. void aligeniePowerState(const String & state)- L4 u$ l2 f! s% \. G3 F
  77. {8 k5 M9 f6 o, s' X+ a0 j/ r% q
  78.     BLINKER_LOG("need set power state: ", state);6 L1 z. }8 |+ T
  79.     if (state == BLINKER_CMD_ON), a& l, h$ _; `" Y
  80.     {( g" g$ p. G, Y  S+ o: \
  81.         4 c: l6 C" R4 A
  82.         digitalWrite(kg, HIGH);
    ! U; ^# Z, D1 k' X, g9 n
  83.         digitalWrite(de, LOW);- w5 }/ v1 ]! j$ ]3 W
  84.         Button1.print("on");4 s4 i* H; V3 S  e" M: Q
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    ! C8 d# g& U; J) U1 Z
  86.         Button1.text("开启中");
    7 q, M$ G+ w1 Q+ \9 J* n5 [
  87.         BlinkerAliGenie.powerState("on");' i) g1 |( ~5 O1 z1 L( y( m
  88.         BlinkerAliGenie.print();0 |  B' J( W5 {1 n9 J
  89.     }
    " e- j! _; P2 z& m0 l
  90.     else if (state == BLINKER_CMD_OFF)
    ( D/ `, v+ y; M$ |  o- E1 x
  91.     {  l2 K+ z6 R+ |
  92.         
    ! j' e( n1 F* I4 N, P
  93.         digitalWrite(kg, LOW);
    7 z, F7 _+ x4 J4 t0 o9 ]
  94.         digitalWrite(de, HIGH);
      A) Q8 U9 ?7 k# e. G
  95.         Button1.print("off");
    # w4 Y2 b# i$ Z+ Q
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    - p1 \0 X/ ^0 x& g  S' O6 X
  97.         Button1.text("关闭中");
    4 Z7 i: F% O$ H% g- R2 ]
  98.         BlinkerAliGenie.powerState("off");
    0 b" }# R( ~8 K! O; ?; V
  99.         BlinkerAliGenie.print();
    / `& T2 U. ^* d5 f' n2 u& |
  100.     }
    % K+ Z+ C( ]- ~" w( h
  101.         
    & J5 k. N& v5 \# V. I/ P8 Q! W

  102. % H; E( R  h) O" J0 b
  103. }
    & y8 z0 x$ d# u6 ^  [4 m, b; X
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次
    7 I9 n: C8 b6 c: ^
  105. void heartbeat(), S5 _  z/ J; s% c5 y. i6 z
  106. {
    5 H* k3 n) E7 C/ W  |" h& y2 \( G
  107.   BLINKER_LOG("状态同步!");
    $ [0 X8 ?% ?0 ]$ x0 N. s
  108.    if (digitalRead(kg)==HIGH)
    # S; g6 R2 w- Z. M1 f. h% Y) M$ s
  109.     {
    " R4 P! I1 n* I# j$ Q  b1 q
  110.       Button1.print("on");, \% k' m9 s) C7 V1 a. q& J" i2 Q
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色# Q0 ~3 O4 A% Q; ]" A
  112.       Button1.text("开启中");7 S' y5 E3 i5 K0 o% }- N
  113.     }: X: p1 N+ [4 V# |% @
  114.     else
    / X! ]( _  U' m2 K* k6 A) R6 h
  115.     {' O- ?0 K" T6 I4 j! b( R
  116.       Button1.print("off");
    1 P7 f3 Y4 P! V3 L& |9 x
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色# N# f5 |% Z  q  {. s* F; b. g
  118.       Button1.text("关闭中");/ W+ h; ~+ D7 d. V
  119.     ' X3 V, j" K/ i& W0 \
  120.     }  ~( |1 y" Q/ X$ E  i  W
  121. }
    : |' ?, f; C8 h8 e
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++9 ?9 l, i7 r2 A5 H# G$ a
  123. void setup()3 f  T( V/ `  j) |) h7 n2 X
  124. {
    / I0 i7 C, `" P
  125.   // 初始化串口* d2 |! J, E# m2 |
  126.   Serial.begin(115200);
    , d' U6 S+ U* Y
  127.   delay(10);
    ) d% m# X! n" L. {3 Z  Y
  128.   BLINKER_DEBUG.stream(Serial);
    & s" m6 U+ b# S
  129.   // 初始化有LED的IO
    + I3 X  L$ q# |! `/ [
  130.   pinMode(kg, OUTPUT);                 ! |3 w9 s  Y& h
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态
    % P8 }  h# v, c
  132.   pinMode(de, OUTPUT);
    ; m/ m% |; c2 d+ c8 z2 n4 i
  133.   digitalWrite(de, HIGH);# P# f) l; C( C/ f
  134.   pinMode(key, INPUT);            - J5 Z, N0 G, i( L! l4 m
  135.   Serial.println();
    1 d1 `4 s1 Y/ S2 P- Y0 c
  136.   Serial.print("Connecting to ");
    2 N/ [1 u% R; m/ g) K
  137.   Serial.println(ssid);0 _5 s8 j6 \* x+ m7 [9 A/ R# W# {$ s
  138.   WiFi.begin(ssid, pswd);4 m% T) G  M+ \+ `4 h8 J; C
  139.   while (WiFi.status() != WL_CONNECTED) {% ]" a* H* A) Y9 J
  140.     delay(500);  m  W) z5 a2 x, O0 K  ]' G* [
  141.     Serial.print(".");$ c- Y( |# {3 b
  142.   }+ R- ?& k) c$ S7 p" `
  143.   Serial.println("");  X( a/ T$ Q2 I
  144.   Serial.println("WiFi connected");, Q5 u( v1 m3 H4 \9 a- I4 f  G
  145.   server.begin();" x9 Y7 z4 D5 t+ V5 Q; Q6 v: I
  146.   Serial.println("Server started @ ");- `& c( j. |- j1 L4 w
  147.   Serial.println(WiFi.localIP());! D2 Y4 c: m8 `! f. a8 |! N
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip
    % A7 ?" G# f0 o4 u3 y8 m4 h
  149.   Serial.println("To control GPIO, open your web browser.");
      o3 N0 M. M9 {# t# _
  150.   Serial.println("To set GPIO 0 high, type:");
    ; C1 y4 w$ E8 E# `9 C+ @, S9 ^: H$ w
  151.   Serial.print(WiFi.localIP());# Q( u$ @' S$ M9 C" Q" W2 \' R% D& _* q
  152.   Serial.println("/gpio/1");  u7 s! S& _; G: m" n/ ^
  153.   Serial.println("To set GPIO 0 low, type:");" B# `" Y) a5 M# [, U
  154.   Serial.print(WiFi.localIP());
    & G4 R: m" y! G6 ^6 I0 h5 f+ j& Q
  155.   Serial.println("/gpio/0");
    ) d& K" d* O- K6 Q% y( n
  156.   Serial.println("To toggle GPIO 0, type:");5 B' N$ `, m4 l' x* Z
  157.   Serial.print(WiFi.localIP());
      M' L( c  _  Z; P( g
  158.   Serial.println("/gpio/4");
    3 C1 Q, I+ w/ O

  159. 0 l( z+ R6 N) W0 R( D9 C) I
  160.   // 初始化blinker
    ) Z0 {  g2 A( V
  161.   Blinker.begin(auth, ssid, pswd);
    # v. s/ P! j! L* ^3 c  K
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数
    1 A$ @& _4 L4 u" L) M
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数7 u' K. }) Z& |2 q
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
    ( r1 B6 N9 d$ j9 i( x4 r0 D
  165. + k7 e0 m7 w, u( x
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback6 u; L3 t: k+ ~' Y, R0 n( O
  167. }; T4 D. e$ W2 @
  168. void dataRead(const String & data)$ J: T7 ?% ~1 h
  169. {
    $ n" U( G! H& S1 P. J
  170.     BLINKER_LOG("Blinker readString: ", data);
    % k% ]: _1 Z# J6 O4 l2 R/ o
  171. % I, u/ C4 d2 Y0 s1 m
  172.     Blinker.vibrate();
    : d) J1 V5 i1 Y. x
  173.     , a* @0 [% I+ L; H" `( A) k
  174.     uint32_t BlinkerTime = millis();5 V# ]& V: C, d2 f" v
  175.    
    ( @6 P+ z) R/ U- O
  176.     Blinker.print("millis", BlinkerTime);
    7 @5 Q2 r1 N0 y
  177. }
    7 p0 x1 t- ^/ e+ ~  S+ Y  q
  178. void loop()! C& W( }. J5 V4 Z' i3 M4 U
  179. {( y! v) u' ?1 e# m: p- _
  180.   Blinker.run();2 K0 O; r6 V  g2 z0 y
  181.   if (digitalRead(key)==LOW)
    1 h5 R) G/ V1 J1 ^% K2 b7 {
  182.   {
    : Z2 p- w+ [0 W- T; j' n
  183.     Blinker.delay(200);4 j7 R5 D% {4 K( L: c* d, {
  184.     if (digitalRead(key)==LOW)( }/ X4 i8 q4 N) O: G5 o+ O
  185.     {2 I6 b! j3 M* r' b4 ?; N
  186.           if (digitalRead(kg)==LOW)
    0 l) A: a( i) j/ ?# F8 ~% i- I
  187.        {- f+ y( H  n5 ]# }$ P5 R9 C, r
  188.             
    * L2 X2 v/ K& O: _' ]0 c
  189.             digitalWrite(kg, HIGH);* k3 }" n  V3 @: `% v' f
  190.             digitalWrite(de, LOW);
    # ?  x& Q- q6 V2 @) Q
  191.             Button1.print("on");- e' ~4 G- y0 t7 k, y8 D, x. j
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色1 \0 e  {* j$ s0 ~# @5 x8 q
  193.             Button1.text("开启中");( Q7 \4 Z; Y) r' l: A5 A
  194.        }% @/ e* J  b, R  T; V0 s
  195.        else if (digitalRead(kg)==HIGH)
    4 y/ ^+ P0 g7 J1 T5 q
  196.        {0 {# e9 p, E* L0 i4 U& @
  197.             digitalWrite(kg, LOW);
    : Y( `& r4 y+ o% y
  198.             digitalWrite(de, HIGH);  ]) o6 ?" d6 U; |
  199.             Button1.print("off");6 `7 Z/ E& b  ~
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色& `) e* T3 m& }" |3 G) S
  201.             Button1.text("关闭中");
    : n, r& r" N( k' G9 V' ^4 s" d- p" D
  202.        }
    , R4 a7 T4 Z! J. k& ^  k( z
  203.       }
    0 Z' ?1 c% Y4 }& e! m8 |  d
  204.     }
      n$ g, v) R/ e0 F6 c
  205. }
复制代码

$ m3 k' o  O( ^! @1 Z9 c9 w. }
* C% W2 x1 d0 @3 T' Q! u我没有用卖家给的码,我自己写了一个,参考我前面的文章最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 https://bbs.nasdiyer.com/thread-18755-1-1.html
) ?# K9 X) t: ^
6 t" Y- l1 o$ J8 v; Y2 B+ \把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。- g6 b. {0 u' ?0 L, c5 {

) A, {5 d. \3 y& M( b; F
6 W, B9 |% Z# V# s2 l% m

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+ R, R2 e' y- O6 x; F4 E5 J
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...
, `& E; P8 q6 |: N, w
大力出奇迹呀

1

主题

8

回帖

256

积分

中级渣柚V1

积分
256
发表于 2021-8-29 08:14:58 | 显示全部楼层
a467913252 发表于 2021-8-24 15:533 e3 h9 R2 Y; S; O! W+ G; ^4 N
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

# m( B+ b7 N7 X2 Z  c昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

62

积分

初级渣柚V2

积分
62
QQ
发表于 2021-9-4 23:05:22 | 显示全部楼层
sevenup0719 发表于 2021-8-29 08:14' D5 z" C! R* A$ M8 e0 z% U( f
昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...
& o7 X5 U& U# {, g3 y7 p, J
你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-22 16:46 , Processed in 0.056477 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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