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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 易记 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式 IP:–浙江–嘉兴 电信
本帖最后由 易记 于 2021-8-21 14:05 编辑 ' ^$ ~4 A  [: X% \; m

  f5 |8 @2 N2 R$ Q' d1 U0 [$ I最近玩ESP8266,想做个天猫控制开关。
: x* m! J! g9 }/ S但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。
9 z8 g- H' c! d6 n4 N还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。
9 U" }0 r) U# H0 t. y& P% r4 d8 t QQ截图20210821125037.jpg
4 p+ h! h/ j- l) O
% x) B1 c- d7 ~, w. ]
* z1 J; _; T  |0 H; n& I6 j8 c
问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。
8 ]3 ]# C4 M; |0 U2 E$ c9 G" B7 `/ O5 ]) j, K, V
QQ图片20210821124517.jpg . s8 O4 Z) _- ^! Z3 ^: F: }
! b+ t$ e0 |& I5 y4 Z4 ~* e4 A( M* S

7 b* A1 Q' P  j3 T
$ H( h9 w* a/ C; \8 z# A6 \
到手,当然是拆拆拆。  _7 u6 w+ p0 C. E7 F5 E1 `  X
IMG_20210820_134104.jpg
! @7 {$ r3 J9 Q* }
3 J$ F  r, G. ~

7 K& l. ^# R# q) }, w( k联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。* N6 j* u, Z. b- z
IMG_20210820_160634.jpg
$ g- E, N) G* O" R0 t" w5 [* e
3 x, P. ]& x  L' [
" q- M8 L. T9 X, p2 Z
继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。
/ |2 L* m& v6 q  o QQ截图20210821133707.jpg 7 \% l) L' j6 p% Z
) T4 a8 y& K6 m3 w, \' W
IMG_20210820_134114.jpg
; C0 m2 e# m2 `9 f+ L2 `/ }1 k
: F- y# c4 B. ?; I/ E
电源芯片# ~- ~; N4 N# y# q8 Z" J1 N

6 B. V/ h2 _. m
% W9 ?( y0 D$ G' k7 n
+ f7 P( X5 g$ B  A
有一个按钮,按钮有二个蓝色LED灯' V! r$ Z' ^! r  Z* X, W. @
IMG_20210820_134157.jpg   B0 S" `/ y! L" N
4 ~) ?6 M( P7 b: G/ N

1 z* ~5 i4 W5 X5 N7 B  S' r8266
7 j0 E0 ^9 `; b9 ` IMG_20210820_141913.jpg ; ]( j! u+ N$ r

9 q  _' J2 x/ r4 s' B9 e# M

$ `+ w" U' {( ^: i, l1 Y
( o3 ^9 b* C/ Z$ ^/ E6 C) n

0 t6 z" E: _& d9 G接下来就是刷机了,版子上面都预留测试点。
. k- S) |" k- D. H) m: Z2 J接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。
  Y) Z6 N- G" k7 g 未标题-1.jpg # o/ P* I" }# y" ]' h% k+ @
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。
3 j; Q# O, ^9 E9 [( ]) P1 l要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。

- w8 I7 R3 z5 v* m- O+ O3 J( O, Z: X3 X; Q" T
* p  a$ t$ g  d0 d5 P  h) m
- u% W2 m" i2 m7 {
; Q# o* m( |) j2 c$ i
7 R6 F9 s; k9 b! f
    5号脚位是继电器输出- G5 i( s2 p5 }
    12号脚位是灯输出2 g9 A) x4 a  N* Y0 J# V
    4号脚位是按键
% b, T, l4 C$ @# \( g( r3 q

! _6 T# i8 ~5 ^
' R7 {* `# K/ h, k- X- |
+ D4 x& N1 H5 l
, X9 \' p# c, U# }  S/ p( t/ _
卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库& e6 r$ Q1 m& V! {$ f# U4 w0 L
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库
    0 E, v8 _. x% d
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库
    " _" N  ~' i1 W# F4 F+ M3 k
  4. #define BLINKER_PRINT Serial            //串口协议库6 x+ J6 J* c% ~2 e
  5. #include <Blinker.h>                    //官方库, X* _. Q* O0 E( j6 _5 x; i9 k9 P
  6. #include <ESP8266WiFi.h>                //官方库
    8 A% z) r# z6 ]
  7. WiFiServer server(80);                  // 服务器端口号. L. d1 s0 J9 N/ d
  8. . j+ W2 M, ~5 Q2 I5 Q
  9. char auth[] = "c4942fb1d5e4";     //设备key& h, L* Z9 \3 ?, w8 \
  10. char ssid[] = "wanboshi";     //路由器wifi ssid7 r$ ]5 n( P  ~7 r# k9 \
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码  C' H1 E8 V4 r5 _# z7 [

  12. 4 l5 C  Y* r: A1 [9 @- X# G
  13. bool oState = false;) `: s+ [8 L6 e  J

  14. ; C% k1 \7 K7 ^0 D
  15. int kg=5;//继电器输出6 U# @5 F+ u; f1 R
  16. int de=12;//灯输出
    : B, c; }3 _) s4 K# g" ~
  17. int key=4 ;//按键
    * B* B' [% H6 k2 w6 u8 {
  18. //*******新建组件对象! [% a) ?* m, [

  19. , S& Y+ E* X8 b6 K! }
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名
    3 q0 b# A) c7 U6 j. u4 s2 g
  21. //*******app上按下按键即会执行该函数app里按键
      y3 z! Z8 H8 y5 ^) ^* v9 |# S# Q
  22. void button1_callback(const String & state)
    ' q$ j9 m' R6 L. s; B" X
  23. {
    $ j5 Z: T: b% w6 U7 k# s# w
  24.    if (digitalRead(kg)==LOW)& N7 l. ?  }) H% Q8 P5 S3 U
  25.    {
    8 E) ?1 f  G* I7 }0 \( x( W* g5 J
  26.         BLINKER_LOG("get button state: ", state);
    # @+ f0 K$ K3 f1 X! C
  27.         digitalWrite(kg, HIGH);
    6 Q4 \: s6 ]# w0 b$ W! m4 ^2 N
  28.         digitalWrite(de, LOW);
    + P) C5 K% Q- L  ^; V
  29.         Button1.print("on");5 j( D7 T8 O! K0 Z) p4 T" l
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    5 d7 ]  |1 p- F: F$ t# P( h
  31.         Button1.text("开启中");
    4 D* \+ f6 {- v9 P' T
  32.    }
    ( {2 `% B" J) ^" A* D! f1 ~
  33.    else if (digitalRead(kg)==HIGH)
    3 ^* K7 l* S" y
  34.    {
    ! T" I6 M$ r3 S8 g! ^! ^
  35.         BLINKER_LOG("get button state: ", state);( ^4 G$ k$ T  ?7 c
  36.         digitalWrite(kg, LOW);& R  I- I0 w0 ]* u
  37.         digitalWrite(de, HIGH);3 L) z1 N, V( Y
  38.         Button1.print("off");
    ; o$ T3 D: z2 o! [* f( a5 N; I1 x
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    3 K( ~' w. j5 W# o% k
  40.         Button1.text("关闭中");
    2 r6 M" ^% H: p6 R! h
  41.    }3 j7 l: p& z' u4 a% V' E% v/ @
  42. }- _( H2 p/ J* N6 k* E; b

  43. + y* }3 k9 f+ ~, q: Q
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++2 Z0 q/ j1 }: E: `
  45. ' ~) I5 \; T/ b6 L
  46. //*******如果小爱有对设备进行操作就执行下面0 |$ \$ O  L! M! m7 b4 T+ ]8 g3 ?
  47. void miotPowerState(const String & state)
    0 B, @6 ?8 v0 q/ P% [* r
  48. {
    " Z( }" V$ U( q) n0 R" M" n; t2 @& L
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印
    ) I) I  K" G% G5 }/ w& {
  50.     if (state == BLINKER_CMD_ON){
    . o% d4 a, s" I. ?, D; M
  51.         3 f/ Z: A9 s, p1 Y6 b2 _
  52.         digitalWrite(kg, HIGH);
    : {5 E# S; W! D: y/ w
  53.         digitalWrite(de, LOW);
    + Q  g0 ?6 N+ y) K
  54.         Button1.print("on");( P& }4 _+ |& r! w9 Y
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色9 V, u4 x1 N$ y: J  A/ J# ?: Q. Y+ r. x
  56.         Button1.text("开启中");7 K7 |" P0 d6 E% I8 P. |: }
  57.         BlinkerMIOT.powerState("on");! S2 L4 m/ k8 C* q' m: U2 A7 K
  58.         BlinkerMIOT.print();
    * H7 O1 Y  K( x' u# G
  59.    }
    ; N7 U1 p7 _: ~# ]; b1 L
  60.    else if (state == BLINKER_CMD_OFF)/ ^0 K6 D2 T3 i$ ?9 n* y
  61.    {
    . B# [  \& ?1 t8 J* ~2 R8 @3 W! J7 @
  62.         : ~+ a% v% j; |
  63.         digitalWrite(kg, LOW);
    & _& }6 O  ?- n
  64.         digitalWrite(de, HIGH);
    3 P2 h. b$ c6 i. h, F! b
  65.         Button1.print("off");
    & R6 y# S  f1 U0 B
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色7 ?, \! W# U+ d+ e- `
  67.         Button1.text("关闭中");
    ' ]$ q1 y/ J# S  S, ^
  68.         BlinkerMIOT.powerState("off");! S, s  k8 E7 j: e
  69.         BlinkerMIOT.print();4 `; P+ U$ S0 a% H; J
  70.    }
    & B! c, k* v. n
  71.       
    2 y! j- ?2 f! d' |+ f

  72. - q. ^4 N/ Z! N& P8 P
  73. }
    / [6 ]& l. _6 [9 d5 B6 \
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++& H% J5 I, f5 K/ ?' r, R
  75. //*******如果天猫精灵有对设备进行操作就执行下面) }  D' c. d+ e4 X, R
  76. void aligeniePowerState(const String & state)$ i: t) ^7 z: D; P
  77. {
    ) ]9 q6 r+ K: _0 J) B
  78.     BLINKER_LOG("need set power state: ", state);
    * w5 `" V6 M; Y
  79.     if (state == BLINKER_CMD_ON)
    ( V0 D( R5 M) W: j
  80.     {) g0 K! [; p. n5 A. ?8 G
  81.         
    8 H: y# _3 W% }, [# [+ T# O# H& `
  82.         digitalWrite(kg, HIGH);
    : r0 |6 I& t; b' X7 F6 ]
  83.         digitalWrite(de, LOW);0 A6 L- l3 u. o  v8 s! N$ @
  84.         Button1.print("on");
    ! M+ V, d) \( P$ W+ U3 n$ Q# q
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色7 K+ H7 `8 }& L4 w
  86.         Button1.text("开启中");/ g6 F# p- V$ z! l0 T/ d. G
  87.         BlinkerAliGenie.powerState("on");
    * h8 v3 Z9 g; F# S
  88.         BlinkerAliGenie.print();; [! }3 J5 [6 m/ A
  89.     }
    8 a' Y$ w6 J: I2 c0 C
  90.     else if (state == BLINKER_CMD_OFF)
    , h' {1 B" y& S! h
  91.     {) w/ ?0 F1 i8 z$ w$ Z7 H
  92.         9 k! t4 E" h7 O! O) X  i
  93.         digitalWrite(kg, LOW);/ t1 i1 Y2 `% m- a
  94.         digitalWrite(de, HIGH);( Y! ~7 a7 }( Y0 Z7 @
  95.         Button1.print("off");5 G2 W2 j' F& S( \5 x
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    , a# {* U* N$ e4 M0 H
  97.         Button1.text("关闭中");& U1 u: U, X; Y2 a
  98.         BlinkerAliGenie.powerState("off");
    / f- A: J; n+ P
  99.         BlinkerAliGenie.print();
    $ g+ C/ p* h* ]' k3 g! B0 U
  100.     }! \* c" t1 B' _+ t
  101.         ) l3 X: l& l0 x2 n5 P1 I

  102. 5 b& Y( y# K( D2 |" q- Y* b
  103. }: u- |+ S; f7 h+ \
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次1 Z, g/ H# h& p
  105. void heartbeat()5 M! ]. ?/ s7 K
  106. {
    4 y* u9 @/ V4 I% H
  107.   BLINKER_LOG("状态同步!");
    - E0 i) d2 ~, {$ V! `
  108.    if (digitalRead(kg)==HIGH)
    8 f: d' Y. \- M6 Z
  109.     {
    % j0 C# e8 K* S
  110.       Button1.print("on");
    ! q1 R/ L0 P5 ]- m. l4 M9 Q0 M
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色
    % x+ A3 l% m- w- m& M( U/ g
  112.       Button1.text("开启中");
    4 }4 X; U9 A8 E+ S8 Y# o7 `
  113.     }
    1 C2 C9 g: r8 l. R- D$ E/ k
  114.     else
    9 O9 F& ?: |7 i- p- J
  115.     {! @' [7 g! i, Y- y
  116.       Button1.print("off");
    6 f/ [( W0 M6 t4 S
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色. h. t. ?! |: Z; R% P
  118.       Button1.text("关闭中");
    : x$ J( p1 c! U) e1 M- [4 C# j
  119.     * V- W$ C0 T5 G/ y) c
  120.     }
    1 ^, x: F+ _) b' f# ^
  121. }
    + \2 T- D1 X9 K6 z5 g
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    . k' Y& X' ]+ t/ @0 |
  123. void setup()! R# K; t; m9 z- d5 k' m5 W
  124. {
    0 B! j) @, h6 V0 [6 F2 ?$ v) a  |
  125.   // 初始化串口# I  @* l0 w; V
  126.   Serial.begin(115200);
    : b/ ]+ `8 _+ l+ P, Q% E
  127.   delay(10);9 M, G2 Y2 Q/ t
  128.   BLINKER_DEBUG.stream(Serial);
    % P4 K% V4 P  C. n. N# q
  129.   // 初始化有LED的IO' I8 o7 l, l% j! M( f3 v  N) L: Z
  130.   pinMode(kg, OUTPUT);                 ! Y0 @% D: _8 ?, U
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态   @* W; B. ^  x2 I7 Y" Q
  132.   pinMode(de, OUTPUT);
    " s: j, o3 Q6 J; O; S
  133.   digitalWrite(de, HIGH);
    & Y0 D* P: y! _
  134.   pinMode(key, INPUT);            
    1 t' q) J* }' r0 X; g# A) d1 H$ Z
  135.   Serial.println();
    4 ]2 d' q- b9 Y1 j" n* d
  136.   Serial.print("Connecting to ");
      o9 N, |+ Q  Q2 N
  137.   Serial.println(ssid);  A4 S8 e- f6 ^0 e" ~/ u1 c' m, ?+ S1 ~
  138.   WiFi.begin(ssid, pswd);; O# I  u7 E: h2 B( S7 k
  139.   while (WiFi.status() != WL_CONNECTED) {
    - W  u. c1 d& ?4 b
  140.     delay(500);
    - R2 o4 A0 c' Q, K! {5 X& H
  141.     Serial.print(".");8 b/ B/ ~$ Q4 i7 ]' s* u  C
  142.   }+ S- }/ ^# o# P4 e
  143.   Serial.println("");, n0 M+ r2 H! z
  144.   Serial.println("WiFi connected");
    7 |* E/ v0 X, o4 j' x% Y3 S- r
  145.   server.begin();
    " @$ G# Q6 W5 g! R: N
  146.   Serial.println("Server started @ ");
    - b5 ]$ C3 A3 N3 K
  147.   Serial.println(WiFi.localIP());" l% l' `. B* ?  [  u# q
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip
    ' q. @! Z6 t4 k$ p' \! N6 M
  149.   Serial.println("To control GPIO, open your web browser.");
    ' ~6 U& F: p; {' n
  150.   Serial.println("To set GPIO 0 high, type:");
    ' o, [7 w9 M- Y% K
  151.   Serial.print(WiFi.localIP());/ @2 `; {* f5 P
  152.   Serial.println("/gpio/1");
    7 o1 a. Y! J. s: t; ]  K1 ?
  153.   Serial.println("To set GPIO 0 low, type:");
    0 P: q9 G/ f+ l. C5 W% l
  154.   Serial.print(WiFi.localIP());  |( m- c6 ]( p; U
  155.   Serial.println("/gpio/0");
    ' ]1 }2 y7 O; U9 {1 {
  156.   Serial.println("To toggle GPIO 0, type:");5 N3 A4 m* q9 i* ~6 a3 X8 V. N0 a7 @
  157.   Serial.print(WiFi.localIP());8 w* r1 {% W) c# u
  158.   Serial.println("/gpio/4");6 b1 `! m9 S( @4 Z8 z

  159. ) k# m6 y' R3 ]4 M; E: r# F5 |
  160.   // 初始化blinker
    + C8 H" J* U1 q4 a6 E4 f
  161.   Blinker.begin(auth, ssid, pswd);
      T: I# F: u$ z" u4 S! e% Q3 g9 h4 E- d
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数
    * ~( y2 u: M% s
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数4 ^( K& f) L) ^  m; m
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。  S( S8 O& R/ |2 `0 o
  165. 6 I- q) D# K& C5 |* U+ a
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback
    5 }3 @1 M* D8 X1 r4 S! I
  167. }
    3 A* j, X/ N5 V* H) z% H$ Z
  168. void dataRead(const String & data)
    , z& {! K& O9 n" `9 V: e
  169. {  K2 m  F6 z7 I& G# V
  170.     BLINKER_LOG("Blinker readString: ", data);
    8 F3 P( Z) R1 \! V) y

  171. : `) |* b7 G5 s0 h
  172.     Blinker.vibrate();
    ) J* j. J, \1 n
  173.     - c# u% B) U+ C; N  u4 }
  174.     uint32_t BlinkerTime = millis();
    & G5 P. t5 x* y1 V
  175.     ; C& D/ F  c5 K; U3 O, q
  176.     Blinker.print("millis", BlinkerTime);
    $ B) r1 ]3 _4 U; F/ y
  177. }
    , S* s- k: x( d# G( R  C
  178. void loop()
    2 H& j3 {  Y4 c6 Y/ w
  179. {6 ]3 h1 h2 s& \/ K1 @* E
  180.   Blinker.run();2 T9 p8 L8 `9 C
  181.   if (digitalRead(key)==LOW)
    : {5 y( Q) Z0 O0 G' e2 m2 u+ }
  182.   {, b$ N. ]& n. T: g6 E; p: V
  183.     Blinker.delay(200);
    8 E  U: ]7 l  O9 D7 ?
  184.     if (digitalRead(key)==LOW)
    - z$ c1 A1 J3 L& J9 p, P
  185.     {
    6 q8 ?' A/ Z  d
  186.           if (digitalRead(kg)==LOW)
    ; x9 c% ]4 S9 j
  187.        {% c/ M) c: H' C& T8 L! J! r
  188.             / w8 \3 m0 u# Z6 L
  189.             digitalWrite(kg, HIGH);) T- Q4 ~7 |* U" l( `# A9 F* T
  190.             digitalWrite(de, LOW);- z- m; l! I. Q1 ~: r
  191.             Button1.print("on");
    - c5 Z* {4 K( {4 g2 [+ S( T
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色% F/ G# T0 B) l6 K; T% W2 K$ P5 j4 V
  193.             Button1.text("开启中");- _9 I$ N) s' X9 U
  194.        }5 ^5 c) n( L5 C. ?4 U! p# Q
  195.        else if (digitalRead(kg)==HIGH), c/ ]2 v" U- L/ n, V3 C$ ?1 g
  196.        {
    " k; Y8 v3 e3 L8 t* v0 H8 p, p
  197.             digitalWrite(kg, LOW);
    4 z2 ?0 E1 r) ]' T: {6 V
  198.             digitalWrite(de, HIGH);6 r% P9 j" O/ D" o! P  V
  199.             Button1.print("off");8 p8 C0 A2 G4 n* }- p# A
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色
    : a( Z: B  ^" i1 G+ f& ~/ V
  201.             Button1.text("关闭中");
    1 L1 L* O8 j2 y: |' B
  202.        }, l3 q$ i5 e4 Y2 E8 K) q: c
  203.       }
    - P" ^* J6 Z$ H# g
  204.     }. B5 t: @# w8 A4 T% a& t( t+ d
  205. }
复制代码

/ z/ L) D7 |9 E1 E$ Z3 I- p; C# [8 A4 N( B& \, F
我没有用卖家给的码,我自己写了一个,参考我前面的文章最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 https://bbs.nasdiyer.com/thread-18755-1-1.html7 J; u0 k' r. R  Q

) w! g1 O! W, k5 Q- w$ ?/ S! t把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。
* p0 m4 R9 F& ?, n2 w, C
/ l4 k) B* q+ A7 l5 C7 _1 @% n( R+ x" t( o* Z- u& j5 N3 x

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
$ Y1 b* h: X. P8 U) [5 f" a. ?买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...
9 K$ P1 [2 D3 o1 v' v( G5 @
大力出奇迹呀

1

主题

8

回帖

257

积分

中级渣柚V1

积分
257
sevenup0719 发表于 2021-8-29 08:14:58 | 显示全部楼层 IP:–江苏–连云港 联通
a467913252 发表于 2021-8-24 15:53
% Q. Y* }  X2 f8 F5 {+ ]4 h6 @* L买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

, V6 L! m4 |: s. Y. Y+ G" @昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

62

积分

初级渣柚V2

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

  P7 d, l0 ]3 t5 G1 Z你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-5-30 16:58 , Processed in 0.093106 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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