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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式
本帖最后由 易记 于 2021-8-21 14:05 编辑
' _6 e& N/ O: Z
0 b' [+ `: }3 S$ y最近玩ESP8266,想做个天猫控制开关。- f0 ^& ]- H. v2 `9 p% W
但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。
* }7 ~1 Z* t$ k还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。9 x9 G6 B) q5 o1 E/ y8 i
QQ截图20210821125037.jpg
0 ~4 c( E8 }" q; R$ Q! N) K
* t2 R* r' [6 }* Z- x

6 {% \. R: X4 E2 k" }问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。
  w) L! R, j3 @* D6 j& |0 Z6 K$ E! n9 O
QQ图片20210821124517.jpg
8 a$ X# o) V# f% _

! T. @* C1 r& `( l; E% @
: @$ M$ t7 y, z4 Y& @" J
# n$ O% X9 A  j2 y# r
到手,当然是拆拆拆。6 j4 B7 y6 b4 \6 L
IMG_20210820_134104.jpg 8 r0 J% F- m4 k2 J4 l

! E4 C3 r& |: o# ]+ Q
9 L# `/ x! {9 p) B' _& `8 l8 P
联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。
+ v6 |' A5 a" j; B+ O IMG_20210820_160634.jpg 9 W! Z9 z# w' @; m! x
" G. Y* l4 B2 \

  F- g. X9 c  O! ?4 v( ]继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。* r# r( |7 o6 g' o
QQ截图20210821133707.jpg " r  D% e$ x% o- [$ Q6 S) V
) m( Z) _& N9 J
IMG_20210820_134114.jpg
  e; \5 f* l6 O( K# l+ N

6 v5 ?" P/ b4 P5 e电源芯片
! h+ ?* `$ X) w, ~, W0 U: s$ r1 p, I! B  M: w! X4 l/ e; A
. x+ s/ P1 F3 t0 v& R, r" d
7 d: X- o, a7 U$ @# R
有一个按钮,按钮有二个蓝色LED灯* X9 _1 _: }5 H- D2 L& ]4 g9 f
IMG_20210820_134157.jpg
8 y: \4 |7 w( K) G5 _7 I; H3 I3 J' S5 e+ z5 I) p8 H
- S1 r9 o- W, C
8266+ r' _5 e- c) E7 y$ t/ p
IMG_20210820_141913.jpg
- W& D( x5 G+ r2 ]1 |% z( K/ q) n6 Y% d/ n5 d: w2 W* O

) q, R2 l- B$ S" ~* A9 E+ ]; M
- x8 G5 p2 a1 C  U9 z

) K: G. c7 {7 R! x" R0 W- D接下来就是刷机了,版子上面都预留测试点。
- R' Y7 H# B; C; Q4 ^接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。0 o; G8 D+ U: S+ {9 N
未标题-1.jpg ( l: f2 s: B8 a; v& P2 x. c
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。6 J) h" s6 d6 n7 a+ x
要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。

) J7 j4 [/ n& [, D! n  \8 X" q0 Y* d) V2 M9 f2 I& V9 y3 j

4 ^! Q8 B" F" M7 D
  M) v, @4 T, B* K1 W; ^

) [3 T( w1 [( }3 ]

, u! h; v! Z8 L4 o; W7 y    5号脚位是继电器输出
; n* @0 O7 ^% Y    12号脚位是灯输出
8 \# X/ i1 r: Y& b; C, {: w1 L    4号脚位是按键

# d8 s  L, K; h) a" S% p; y
' a& V( _4 b7 `$ C+ {8 V" V
6 M* I7 s( Z5 j

/ p3 }( |8 L7 O! M' B

! C/ ~; p0 U$ P7 b卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库
    : x2 J- W) `! f! w
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库
    9 o8 {; R% Z" t) ]  f
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库3 h$ t6 x2 D4 W# ~$ h" K
  4. #define BLINKER_PRINT Serial            //串口协议库
    ' I* ^7 [2 J+ _' H; x
  5. #include <Blinker.h>                    //官方库% A9 Y& m" j4 A
  6. #include <ESP8266WiFi.h>                //官方库
    / R5 s' }1 P# l) P
  7. WiFiServer server(80);                  // 服务器端口号
    & T3 C# c! Z9 X) F% W( l) a% E$ z. G
  8. - R3 v6 a) {2 i; [6 N
  9. char auth[] = "c4942fb1d5e4";     //设备key/ h! x2 n/ X3 A! V7 O  [) ]
  10. char ssid[] = "wanboshi";     //路由器wifi ssid
    9 o9 w: L9 |: u) |$ s; u
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码
    , Z9 Y2 V& w9 U3 b. u; ~5 H

  12. 0 S) l, j  J8 x7 Z; g9 J' {
  13. bool oState = false;9 g! R+ J; n; a+ m! j
  14. , [7 S9 B! b- @! w0 Q/ x
  15. int kg=5;//继电器输出
    9 f& l) e% E) i# j1 T
  16. int de=12;//灯输出
    : @: K* N0 @9 [
  17. int key=4 ;//按键+ }3 D# ?, |' B" C! n2 M  w# T
  18. //*******新建组件对象& E/ S( W  P, Y* F2 j) O9 C8 C( U

  19.   O+ R6 p* `. t) r. C" z2 B
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名
    . O& I* g- P: x$ ]0 x
  21. //*******app上按下按键即会执行该函数app里按键* x. R+ Z  d: A7 ?
  22. void button1_callback(const String & state)
    3 v+ `: S0 y5 a  D5 e8 N
  23. {
    # U& A) X" C9 {, `
  24.    if (digitalRead(kg)==LOW)- \; w2 t5 }! t) q
  25.    {! M5 {3 _* }) @# Q+ S
  26.         BLINKER_LOG("get button state: ", state);/ O; f: j. W9 c) f: k
  27.         digitalWrite(kg, HIGH);
    ; i; n; J. ^" u
  28.         digitalWrite(de, LOW);' j- d. P( \! m4 X  m. d5 P' M
  29.         Button1.print("on");
    3 U! G4 a/ F( S6 Z( Q% ]
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色+ Z# d& {1 C/ B; M8 n1 w. [. w  |
  31.         Button1.text("开启中");
    1 d0 x5 M0 H) B! B9 @& ]7 e
  32.    }
    ( A  G( x- g+ w
  33.    else if (digitalRead(kg)==HIGH). D8 H/ Y8 h% l  r2 h
  34.    {8 X' `5 \6 E( B$ A9 w. t4 o
  35.         BLINKER_LOG("get button state: ", state);9 Y! [8 g8 m0 i) Y5 z1 F7 @
  36.         digitalWrite(kg, LOW);
    / T& u  W# j" L( w, H
  37.         digitalWrite(de, HIGH);: Q! z1 Y' G( v" h/ H: C( J
  38.         Button1.print("off");  Q; F0 ^1 k! K/ [; ]
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    4 Q- ^# ], W9 }2 t, m6 Z6 A  G- r' Q( a
  40.         Button1.text("关闭中");1 r( U! b7 {# w# F# m. K+ T5 y
  41.    }; n" p/ e& f! w: n( ~
  42. }0 K6 o9 N; A3 H8 c: P

  43. $ @) K( E: ]* n( p) \' O
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    : C; U: }8 O3 `! U5 H* l
  45. 6 T4 c  {6 d4 F. c0 p1 j% E
  46. //*******如果小爱有对设备进行操作就执行下面; B+ K. J; n8 h* u
  47. void miotPowerState(const String & state)
    9 ^  {' C8 W* W' T. M
  48. {
    2 @& d7 {- x" T: H
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印
    % D0 K/ ?( h8 Y' \3 e2 A2 ~( v9 }
  50.     if (state == BLINKER_CMD_ON){
    1 v0 i: @( v$ A# Q+ w: c
  51.         ( Y2 B8 i, L7 F8 n, n
  52.         digitalWrite(kg, HIGH);
    $ _, E! e$ E5 t
  53.         digitalWrite(de, LOW);
    4 ?. b+ \( _, S
  54.         Button1.print("on");
    4 O0 U1 m3 o  s- ]& V4 m! x+ `
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    " f& Z; u1 q( Z' @4 K% s$ [
  56.         Button1.text("开启中");
    5 z* E, L8 z2 _) t: q% N
  57.         BlinkerMIOT.powerState("on");: J+ M- P7 a+ {* J! I3 F# S
  58.         BlinkerMIOT.print();7 e, E. \- ^  Q
  59.    }
    3 `& Q5 a# i% b& \5 B
  60.    else if (state == BLINKER_CMD_OFF)
    8 Q' m/ k5 R! Q/ q5 ]* q/ M
  61.    {8 [& g$ X+ B/ K3 o2 l
  62.         1 C& u0 a: a' D) i
  63.         digitalWrite(kg, LOW);2 {  B. B, Z' z7 S0 h3 @
  64.         digitalWrite(de, HIGH);6 ?8 g: y! Q* E) y" q$ `% u4 k
  65.         Button1.print("off");
    + B1 L: J% J9 R9 G  G+ a
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    ( m; n0 v8 i3 V9 r4 \5 u
  67.         Button1.text("关闭中");$ i. r9 N% ~7 o7 ^- d
  68.         BlinkerMIOT.powerState("off");
    5 U) |, A8 `; ~7 O& z5 a+ l
  69.         BlinkerMIOT.print();4 B9 G: T# o4 A$ Q
  70.    }
    3 j  _5 Q# U; R9 B' N( {. b
  71.        5 \1 N+ Z) V3 v; x) u. Z

  72. 6 ^9 I' l3 R& t
  73. }
    - ?2 |3 \4 x. a/ w, E
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1 {7 @5 j' t$ b$ z5 p
  75. //*******如果天猫精灵有对设备进行操作就执行下面
    4 |: e# x% _; w$ `9 L6 c' s
  76. void aligeniePowerState(const String & state)
    " Q6 r3 x5 d; I/ b/ S
  77. {4 s* }( \' J- W1 Y- L4 T* I6 y
  78.     BLINKER_LOG("need set power state: ", state);  p  }$ j; N7 l" k
  79.     if (state == BLINKER_CMD_ON)8 W& f6 S% f6 x
  80.     {
    $ V/ }3 D) ]! y. F, O* `  E
  81.         3 I4 \) r0 ~5 u1 N$ C- v) ]  ^6 t
  82.         digitalWrite(kg, HIGH);. C! L8 X; }6 R8 T, Z! R
  83.         digitalWrite(de, LOW);
    9 H. @. o! h9 a  U
  84.         Button1.print("on");# P4 ]4 Z1 B6 W! w1 o2 V0 Y6 q6 h
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色; t7 `6 f" ]# K, d
  86.         Button1.text("开启中");
    6 B) _. A4 D  Y& m0 q
  87.         BlinkerAliGenie.powerState("on");! A; `# `; S( s& F" i8 p1 m
  88.         BlinkerAliGenie.print();0 w* D1 o6 m  l
  89.     }" s9 b8 E, i3 V- ]& g
  90.     else if (state == BLINKER_CMD_OFF)1 C  k/ a9 n$ e8 p3 s
  91.     {
    ( Z7 I1 N8 }' T3 O; j/ j
  92.         
    ; M1 z8 P7 @. _$ T: t" l
  93.         digitalWrite(kg, LOW);4 M/ J1 a' [" J+ e3 T! Q( u( |8 V
  94.         digitalWrite(de, HIGH);- |2 D- R) S4 E1 q
  95.         Button1.print("off");
    ' v  p1 ^! _/ j# f) g) L" G
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色5 Q  H+ D+ T3 d& {
  97.         Button1.text("关闭中");
    5 J; a8 V' k. T
  98.         BlinkerAliGenie.powerState("off");$ v7 k6 R; r- ?
  99.         BlinkerAliGenie.print();# y# }' X( ~, f  y6 a
  100.     }2 j$ E0 s, S( a3 v3 Q
  101.         ; I# c' T( ~) \/ j3 A( B+ ^
  102. # D; N3 @+ |& K" l1 i7 F; b) z3 [
  103. }, ~( f; U* b: b0 J2 E  u1 C* Q
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次1 e; F- \4 L2 |
  105. void heartbeat()
    4 B/ p, x! q+ N1 T) P
  106. {
    + q" g  |- ]1 E, v# O3 @' t; j; R: z
  107.   BLINKER_LOG("状态同步!"); 0 N8 ^" Q( C$ q3 O3 X) J( u5 r1 N6 l
  108.    if (digitalRead(kg)==HIGH)
    ! O' V* Z- h: ^0 U+ E% j, Y
  109.     { . g: o( r0 j. Z, q! z: n# y7 h0 `
  110.       Button1.print("on");
    " ~& W- V- O  A9 [3 o
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色/ n5 h0 E" e- I% A0 ^3 n# a4 O
  112.       Button1.text("开启中");: J* W% _( c* V1 n" V
  113.     }/ S4 O3 ~1 B8 e8 B. N1 C4 i
  114.     else
    % X; p% W& W2 _7 \- B0 x
  115.     {
    * c: T5 Y7 d! Q! V
  116.       Button1.print("off");
    ! @% Q1 ?) z6 z3 I" k' T0 S8 U8 _
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色: ^" \, E  E! V! e- J
  118.       Button1.text("关闭中");, s+ |; A, y  i. G
  119.     . ]/ y9 i. [+ P
  120.     }
    4 Q: N  _$ J& v5 {+ K3 J
  121. }
    3 {" f$ R3 {4 O
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ; G! x* X: \8 e6 A( v" A, i6 s
  123. void setup()
    7 N2 A* y4 q! a( D+ Y# }& b  v
  124. {
    * e1 g/ g5 e* L( ?+ ]( n
  125.   // 初始化串口
    0 n7 }) n/ a! `0 _( g$ \+ e
  126.   Serial.begin(115200);
    & h4 Y4 W9 h( {, h. ]; X
  127.   delay(10);
    & W. M" i' z" g; D& i3 F  c
  128.   BLINKER_DEBUG.stream(Serial);+ V. n0 ~3 m1 Y5 _' c
  129.   // 初始化有LED的IO
    0 B! F$ c- K! j4 o
  130.   pinMode(kg, OUTPUT);                 % O" w% ?  a+ R- L. I
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态
    6 [* ^! W$ H8 g8 K$ c. R
  132.   pinMode(de, OUTPUT);( p9 I, V7 j& e, I' h3 o- h0 ^
  133.   digitalWrite(de, HIGH);
    4 u" |8 G2 f! g! ^4 l; |1 c
  134.   pinMode(key, INPUT);            
    ; P' G% u* b( R0 P) L
  135.   Serial.println();
    7 }2 W" T/ O% P$ N. h6 m1 _. {, A
  136.   Serial.print("Connecting to ");
    # l# P* {$ }1 p4 H" c  S
  137.   Serial.println(ssid);- Y$ }! c+ X9 |* V. k# F
  138.   WiFi.begin(ssid, pswd);6 Y8 G( b7 Y! i7 G& Z! [/ o
  139.   while (WiFi.status() != WL_CONNECTED) {: P. }7 [& |, {
  140.     delay(500);4 \% S" N% z8 e9 y, m+ e8 C. s- [. c
  141.     Serial.print(".");
      h* [# {3 ?5 ]2 U, [" Y& I. C
  142.   }# c; \( S# ]1 {% n( y: _7 i3 P
  143.   Serial.println("");
    ' ?( F- p# t# g' p
  144.   Serial.println("WiFi connected");# d. V, f3 S' @! U% S
  145.   server.begin();
      C& t* ]0 |+ f# v. S6 S: N
  146.   Serial.println("Server started @ ");+ d3 B  \  P$ b' j4 u+ T: T
  147.   Serial.println(WiFi.localIP());; u/ ^) E5 p! W; v$ u% H8 C. f
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip  P9 q& x7 d3 E( D; k* y: S* U6 b
  149.   Serial.println("To control GPIO, open your web browser.");
    / Y) s2 p, ?- H) z$ q1 ~
  150.   Serial.println("To set GPIO 0 high, type:");$ O% {& @" A9 _
  151.   Serial.print(WiFi.localIP());9 K, L! b2 n, E5 u' r
  152.   Serial.println("/gpio/1");
    2 o$ X4 `# k: c* l  P# C& M
  153.   Serial.println("To set GPIO 0 low, type:");, w8 J) z9 Q! R" W/ d- l
  154.   Serial.print(WiFi.localIP());6 G' L% E7 Y! f; X
  155.   Serial.println("/gpio/0");" i( b% h6 [8 m3 ^+ q+ Z. c. l, W# Y
  156.   Serial.println("To toggle GPIO 0, type:");
    / {4 T. @; N0 P& C
  157.   Serial.print(WiFi.localIP());6 O4 j9 C: g0 `! K! j
  158.   Serial.println("/gpio/4");" l2 h  _' f! b. D

  159. ! E! I- @( o* I( N( o4 e0 q
  160.   // 初始化blinker
    ( S) Z* }% T( F( G
  161.   Blinker.begin(auth, ssid, pswd);2 D4 ?7 t' E" Y
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数
    , C9 m$ C) }! [7 @) {( E
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数
    * I* R: i8 j6 D8 p  ^6 v/ \
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。& B; H0 J9 e/ C% N1 [! D
  165. - d2 M& d& Y; x6 d
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback* j7 Q* C& B1 b3 |' l
  167. }
    0 e7 T# c, ^' m9 U2 x5 T
  168. void dataRead(const String & data)
    5 y; v/ L! v; V* P
  169. {& R" }: x. {2 q2 ^; D, h+ D
  170.     BLINKER_LOG("Blinker readString: ", data);
    3 ?! V- W+ C  N* f6 I
  171. * m( k/ {0 l; U3 a
  172.     Blinker.vibrate();
    , w% J) A% H) e8 h$ m( j+ l
  173.    
    * ^" }* R- A% _6 [. W- g
  174.     uint32_t BlinkerTime = millis();
    2 o: r7 P2 x5 A2 ~4 ^$ ?
  175.    
    4 R8 B9 B& j" |5 [. r9 [
  176.     Blinker.print("millis", BlinkerTime);3 @; Y7 k, A. c
  177. }$ T: ^8 s: f4 f& z  v' Q& Y
  178. void loop()
    ' z/ g; b) u+ L% t$ i" e+ `9 @! w
  179. {
    % B" z9 d% Y# m$ T
  180.   Blinker.run();
    - K# L5 c. k5 g
  181.   if (digitalRead(key)==LOW)- a6 N$ ~- z8 u( _2 F7 C* h: q
  182.   {
    . z1 X; D* S9 S/ R- x
  183.     Blinker.delay(200);
      `: _( ]' ]( e* \0 u
  184.     if (digitalRead(key)==LOW)
    $ ?, N. z' B( ~& }2 N# y
  185.     {
    : Y  B" D, s7 g+ [2 D! r5 r
  186.           if (digitalRead(kg)==LOW)
    6 u9 c7 F1 [2 I/ C9 D/ S$ t- K
  187.        {0 F- C& D+ S: O% A0 V+ Q. l
  188.             + \( p+ }5 m6 {9 b
  189.             digitalWrite(kg, HIGH);" v, {9 T; P& ^8 j4 F6 o
  190.             digitalWrite(de, LOW);
    , b1 Q  C; ~4 W! ^3 x3 t5 m) A
  191.             Button1.print("on");0 w0 g' N. P2 M/ z* h: n5 u6 v+ A- s
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色
    ( ^6 u& A" ]9 `. B1 z
  193.             Button1.text("开启中");$ Z  L: L7 J0 g7 P
  194.        }2 G7 k/ e7 `6 Y) ^, j
  195.        else if (digitalRead(kg)==HIGH)
    ) ~! W  }9 C( ~+ y0 F9 B3 W4 z
  196.        {
    . N3 n' u/ `3 ?
  197.             digitalWrite(kg, LOW);
    ( l  ?3 U6 _5 N4 q/ r0 l
  198.             digitalWrite(de, HIGH);$ C$ ]/ D5 @& H# \* E' u
  199.             Button1.print("off");3 S9 o: z3 L( ^& f0 I
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色$ K! F/ G- o, F/ G4 B  d: z+ T
  201.             Button1.text("关闭中");# X$ N$ U5 @8 m' q1 e
  202.        }% i9 B" k$ j; u) {7 Z
  203.       }7 D9 X4 I& v& u( N% |% J. {
  204.     }
    9 H- B* ]' C* H" m
  205. }
复制代码
9 Y# I; P. h2 Q0 @4 A
* u, o. e# E9 W' o0 R5 Z% x
我没有用卖家给的码,我自己写了一个,参考我前面的文章最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 https://bbs.nasdiyer.com/thread-18755-1-1.html5 @. x+ V% r( T5 [; I* }8 e% \

  G8 \1 ~% F4 T把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。
9 j$ q9 e* y2 N) Y+ `' V- N3 h% Z+ ]5 `; [4 w

5 [2 S3 W  l) ~0 |* P) x/ A

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
7 d% ?0 g0 v& i- r* ]* r买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...
- Y! o1 m4 N; P7 R3 M6 G
大力出奇迹呀

1

主题

8

回帖

256

积分

中级渣柚V1

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

! a! U9 m" t# p6 P+ I( q昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

62

积分

初级渣柚V2

积分
62
QQ
发表于 2021-9-4 23:05:22 | 显示全部楼层
sevenup0719 发表于 2021-8-29 08:14/ T1 Q3 d7 ]/ j4 Q9 X0 h  w
昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...

2 \* v- e  b: R( L3 d你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-3 20:15 , Processed in 0.070323 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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