找回密码
立即注册
发新帖

209

积分

1

好友

11

主题
发表于 2021-8-21 13:57:54 | 查看: 5667| 回复: 5
本帖最后由 易记 于 2021-8-21 14:05 编辑 ) W/ `5 M4 W# A8 t+ l7 D

) b) Q8 m" f- @5 }7 y+ i最近玩ESP8266,想做个天猫控制开关。
( w  i7 n+ _  i+ o* b! I6 W. i但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。3 N7 B; i, `) |
还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。
8 i1 m. i) v  {  K' ]4 r9 y/ u  z) E, e QQ截图20210821125037.jpg
2 G/ ]2 m% ]+ r5 B8 t$ x3 }& Q: K" z. [: g
' f7 e3 ]# ?+ Q
问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。
' n; O5 l+ C* c/ W5 K: Q3 P" i2 D- h' n' q' m9 U3 g$ A9 {* Q) T# w
QQ图片20210821124517.jpg ! i& a  [5 G/ v9 W
0 J9 S- ?! n. _  U7 \

  X. ?0 v* J3 O4 t$ m* q% ^
3 R' g! _2 D, }" }+ Y* m+ Y
到手,当然是拆拆拆。9 S8 |4 m( N3 u8 x. t
IMG_20210820_134104.jpg ( T0 l# m4 L! w7 a7 [) C

6 h& W4 k+ B9 ^

& C( y! \0 s1 G5 H$ W( [. O$ w1 |联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。( j& M# @; M3 j. D( T+ N
IMG_20210820_160634.jpg 2 s. w2 D. S$ N: g# I

* A# Y. t' v4 ]/ |3 x& j0 U$ s

/ I- A" t# g2 ^) i$ Z$ E继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。. S: {5 [5 S% M3 B; ?$ K' G
QQ截图20210821133707.jpg 3 _5 C( M0 P7 Q% t

9 j3 ~* _+ z4 L1 Z* I/ Z  i IMG_20210820_134114.jpg ; `+ H1 Z7 W. X0 F) t9 e) X; u0 Y4 v2 g
' I, c  @2 {, Q# _3 a3 m
电源芯片
* l# I8 C9 F8 D$ L: h0 O0 K9 s. h; f$ x' t

; A- v3 p9 `: V2 J- L

0 }2 o; D! n0 C2 M! R! ]! u有一个按钮,按钮有二个蓝色LED灯
; W2 N; d6 l' R) q IMG_20210820_134157.jpg 0 m9 _3 [0 [) ]4 \

. a4 B2 D1 n/ d: k1 u

' s$ E% E* `* ^% x" m' L  l1 |( {+ W* r3 E8266
7 y+ X. f2 |; E! h3 X+ j IMG_20210820_141913.jpg 4 U; X& v9 M) B, J' w$ @* [

; l% A( ~. ~( u2 U% u# r
, w; g4 Z6 Q, P& H! v
+ m5 R5 U0 d2 w0 P6 ^/ K
% e; d9 x- \8 X
接下来就是刷机了,版子上面都预留测试点。
8 k7 W$ U# r* m0 j# M- v1 q- T接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。+ m- Q& B  g& }0 e
未标题-1.jpg
+ _$ `6 l' v9 W+ S2 g4 Z' D$ [* |
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。
8 v0 J9 u  N9 n7 p8 A4 s要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。
9 q/ B9 `% C* J8 w
" E6 v: d, t8 k1 U8 z. G" e

0 G; n6 c! k" Z3 U

( N) G6 {3 J. a" @
. s& a; h) D" `9 c1 G

0 L/ k2 X( F1 Q. G  q$ M! Q    5号脚位是继电器输出& X0 z; N. W4 Q; k" O# A
    12号脚位是灯输出
4 V0 ~1 j3 l; \    4号脚位是按键
% X/ v+ x- Q% O2 @0 E
' N& s, g1 }* b. N

& E' o. S/ z1 H3 g6 i4 n( f- z' I% T  a1 v$ M

7 ?6 c: L& q! V" e  r) W6 V* w1 I卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库$ q7 ]; t! \& t
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库
    - }- _) F- z1 R: |+ l9 v
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库
    : w4 E8 L8 D4 {
  4. #define BLINKER_PRINT Serial            //串口协议库- d4 U4 N) t4 b. }1 G. G% q/ _
  5. #include <Blinker.h>                    //官方库
    ; }5 ~2 F) W1 M! `) {5 ^
  6. #include <ESP8266WiFi.h>                //官方库
    7 C6 X9 M( @! C* O0 g5 k' a
  7. WiFiServer server(80);                  // 服务器端口号
    % u+ Y5 b: |0 B

  8. 0 ]* f- Y6 W/ g, g9 O
  9. char auth[] = "c4942fb1d5e4";     //设备key# }5 _# Y1 `1 o2 D
  10. char ssid[] = "wanboshi";     //路由器wifi ssid
    3 R# D/ r2 ~2 K7 B5 E
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码
    ! y) B$ `& V7 y: I  n. s: ^/ i- M

  12. : Z  r" P; e4 p1 e1 E
  13. bool oState = false;
    & U) ]. G- l2 P! `- j5 h

  14. 4 @8 V3 R" T' g: c
  15. int kg=5;//继电器输出
    3 W8 g! i: @  i+ L9 e. k5 l
  16. int de=12;//灯输出
    $ b  |4 o* B5 p+ X# h
  17. int key=4 ;//按键) e0 r: l+ g1 ]& ?3 E
  18. //*******新建组件对象' w% m! |0 d7 }" N) l2 i9 [

  19. 1 K% _3 r( n5 A# k- A# E
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名
    ! Q6 H1 f' z% {$ j0 {9 l. l
  21. //*******app上按下按键即会执行该函数app里按键
    * e1 Z/ G" b& ]2 X4 g' `
  22. void button1_callback(const String & state)" G/ q' F) G# f% q+ }, `% u
  23. {* v6 x/ ^; F2 m% v# H6 U
  24.    if (digitalRead(kg)==LOW)
    0 W/ F9 e! [  x8 f! y% F" ?, u2 e
  25.    {; ^) Y4 o2 z1 Z
  26.         BLINKER_LOG("get button state: ", state);
    2 A# o3 b  T$ W/ n& O& I
  27.         digitalWrite(kg, HIGH);+ S. v" P/ y/ i+ Q8 i
  28.         digitalWrite(de, LOW);
    5 C$ K0 z: H1 x) M0 z* Z0 Q
  29.         Button1.print("on");+ w" z+ @' I1 Q* f: @) ~3 A
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色) V% y! \6 T2 k/ Y5 q' `# U3 k3 Z
  31.         Button1.text("开启中");! L6 g5 W& ]" f$ y
  32.    }
    9 W/ J3 a$ c/ b
  33.    else if (digitalRead(kg)==HIGH)
    6 Q/ C4 y% q0 B' K
  34.    {" T# m$ e+ h( c9 D8 M
  35.         BLINKER_LOG("get button state: ", state);2 m1 Q) R4 b. J4 n* y) S1 M- l& H& \
  36.         digitalWrite(kg, LOW);- c( J: `% _; l! a
  37.         digitalWrite(de, HIGH);0 c2 B& _( O! X7 n7 M
  38.         Button1.print("off");3 Z( Z. j& p9 Z- h) E# y. n
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色# D1 e6 H1 ?) @" R& S
  40.         Button1.text("关闭中");3 V2 T0 [) R# F
  41.    }
    2 j. l/ c7 f1 o" x! o: u
  42. }/ r4 M; ^: Q5 ^1 Z) [/ p

  43. 3 E  P1 P/ n* o) A  i; x+ G! X
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++8 m' W2 g* \: q0 `! j$ N; v
  45. & ^; }) E" v" v+ }$ _" T! I' \# _
  46. //*******如果小爱有对设备进行操作就执行下面
      q! a! V$ H# {* b3 g( V5 B
  47. void miotPowerState(const String & state)7 n3 t6 f. |7 d+ Z0 G" U( L' t
  48. {( H1 J0 g/ S) J/ p5 R' B. M
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印
    , h7 w3 O8 x+ m$ a" ?
  50.     if (state == BLINKER_CMD_ON){( J0 H- q  o2 d  k. L
  51.         
    7 M8 [6 N1 b0 j2 ]/ ~: G' N; r
  52.         digitalWrite(kg, HIGH);) c, J- D" r9 d9 d3 L) |
  53.         digitalWrite(de, LOW);" ?1 m( B2 \) k8 p1 N
  54.         Button1.print("on");+ ?5 E) R* G2 z" e
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    % D! n$ ~# {/ b7 h" Z" j
  56.         Button1.text("开启中");# W7 B% D  o9 x4 W* L0 h# U& P9 }
  57.         BlinkerMIOT.powerState("on");
    7 m- R8 u2 p1 k1 T
  58.         BlinkerMIOT.print();, q3 o) i: b4 T  T, C# y
  59.    }% Y0 O1 F" X' w. z3 j# j
  60.    else if (state == BLINKER_CMD_OFF)1 Z8 w* `9 e2 z$ r
  61.    {& H3 s! Z- w) r2 F3 a
  62.         
    9 R, I; y3 F6 `7 F, s. U( u
  63.         digitalWrite(kg, LOW);
    , N. `; y+ B& r* O. y& i  Y
  64.         digitalWrite(de, HIGH);
    ' p1 f/ j, `0 v& n2 D# e
  65.         Button1.print("off");
    + H' R* K  c1 ~( E0 Z0 \" I
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色2 V3 Y7 L* X, I( b8 y7 y5 D
  67.         Button1.text("关闭中");
    # N, w3 a. R9 g/ K
  68.         BlinkerMIOT.powerState("off");* V) i* |, Y! Z
  69.         BlinkerMIOT.print();
    ' m9 L9 }9 b- z9 y4 b4 U: c% C, h
  70.    }
    1 N) z3 K; K1 P; h3 N( `3 L
  71.        : m  C: e: x9 H& i, E* L  B
  72. , z/ h3 d* B* O
  73. }
    4 Z- k7 m# d* j; m& o) v
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    . g# d" p$ c6 a) n/ [3 e( R' ~# T5 D7 R
  75. //*******如果天猫精灵有对设备进行操作就执行下面, \  M/ ^( C9 h. l; v9 _
  76. void aligeniePowerState(const String & state)
    , i+ J1 @0 Z9 |% t8 @3 e
  77. {* V: n1 E; z. o$ k* w& Z
  78.     BLINKER_LOG("need set power state: ", state);% m  Q) n. Z9 [5 c3 _" T5 N! W; x
  79.     if (state == BLINKER_CMD_ON). B% ?0 z. `& M
  80.     {
    & }! i$ j8 T6 a- T3 ~- f
  81.         
    9 ?& I4 t0 [4 y. V( E1 h. W7 y. p
  82.         digitalWrite(kg, HIGH);5 V; j- b! C" ]
  83.         digitalWrite(de, LOW);" Y. P( {' t1 g
  84.         Button1.print("on");* l4 w3 m7 k; y9 M$ K1 _0 I8 |7 B5 }
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    : N. J8 \" O4 u  @
  86.         Button1.text("开启中");0 B5 Y! T) V- z" t1 @
  87.         BlinkerAliGenie.powerState("on");
    8 f& W! n6 {0 |% E, y2 s
  88.         BlinkerAliGenie.print();. Z; B2 x. c' l* I
  89.     }$ g  v, f! r" p, I# o; I
  90.     else if (state == BLINKER_CMD_OFF)9 y2 k  L- r6 s
  91.     {- H6 T3 b/ _5 P0 z
  92.         
    7 W. V$ @) V2 s7 g# c
  93.         digitalWrite(kg, LOW);& ^8 V3 D3 x6 R- t% [
  94.         digitalWrite(de, HIGH);2 I; Q, p' o& w5 i- m& C
  95.         Button1.print("off");( M9 Z  p! A; U
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色; b: @- D; Y& \* b8 r5 e5 R
  97.         Button1.text("关闭中");
    % z& X- z( [3 @8 U( R# \
  98.         BlinkerAliGenie.powerState("off");
    . N' E& S, x8 M/ d
  99.         BlinkerAliGenie.print();
    # N0 T! s6 [( ^! \5 V
  100.     }5 Z/ R* v: i- n3 h- x0 P. o
  101.         
    ) c5 m0 r% `" [, l* ^9 y

  102. 2 y7 I6 s  ^* y
  103. }
    , d& I0 x' Q* L2 s, s
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次; q* P/ D* w' e4 T% I8 b: v. X8 C7 L
  105. void heartbeat()
    2 S# F9 @: N  L' T( g
  106. {. U: S$ G) R$ N' w% p
  107.   BLINKER_LOG("状态同步!");
    4 ?! f, N5 z5 E" _2 J
  108.    if (digitalRead(kg)==HIGH)
    " A" a, X8 s0 H9 J. U- C4 Q
  109.     { 3 \, s5 z' T8 P* q4 p7 s
  110.       Button1.print("on");
    ( B) `% {, I3 N7 ^. F
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色2 r$ K# u+ Y: ]1 v/ R
  112.       Button1.text("开启中");
    $ M# i( q8 e, X' d" i8 `; E
  113.     }
    3 B& R4 Q# A& ?, k6 ]6 y+ K1 V
  114.     else
      M. E( a* c* c" Q
  115.     {/ {( X: L# @$ d# z0 v8 k
  116.       Button1.print("off");
    1 B: P8 N" w7 a
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色
    0 _7 h6 w( a; Y. S' c  F% o
  118.       Button1.text("关闭中");+ B2 [- E8 i4 g& S3 s
  119.    
    6 U" Q; T2 a5 s  r  {
  120.     }
    ' ~; i, T* _% P' l- W, X
  121. }. u( ]; r! y- ]& D. U$ a" z
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++$ r6 B. K; K; ?8 j) q+ s( D
  123. void setup()
    ) L- U+ r  E, J6 j/ [
  124. {" s4 e% Q4 b/ L3 J% V
  125.   // 初始化串口$ M% q+ E; v# D- n1 u" _: B; l) T
  126.   Serial.begin(115200);
      _; L3 \% h* r9 U. b* b1 \
  127.   delay(10);" M0 Y  ~; o" |8 y+ n  R$ F
  128.   BLINKER_DEBUG.stream(Serial);2 i# f; w! u# A) g! G: _- P
  129.   // 初始化有LED的IO
    # R% {  Q8 o+ B
  130.   pinMode(kg, OUTPUT);                 
    ( K$ ^8 S3 f& V- ~& [* _3 b* S, h/ _
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态
    : m4 G+ F5 ?+ g' D: Q
  132.   pinMode(de, OUTPUT);
    # l2 i* H7 ~- G7 F
  133.   digitalWrite(de, HIGH);
    8 v. |$ X. Z1 v8 X/ i# K7 |$ n, n. W" z
  134.   pinMode(key, INPUT);            
    ; e% p; U! U$ z: M: P- W
  135.   Serial.println();
    & ~+ u  y+ t' I9 u
  136.   Serial.print("Connecting to ");
    . k) U& P( d; I! B  T0 B
  137.   Serial.println(ssid);
    & b' C' u8 }  C5 `3 D  T
  138.   WiFi.begin(ssid, pswd);
    % G5 E, ]2 T$ E! B
  139.   while (WiFi.status() != WL_CONNECTED) {
    5 D  G3 H- }3 z% ~! b) p
  140.     delay(500);
    ' Q* [5 G8 P3 S: ^
  141.     Serial.print(".");* t. e7 ~0 |  }0 D' t$ e6 }
  142.   }
    7 C$ h0 W& Q! N8 L2 g
  143.   Serial.println("");
    # E7 m3 f( Z5 s8 L/ r
  144.   Serial.println("WiFi connected");
    ) i4 O" E2 M" g6 h
  145.   server.begin();% O; B9 t' ?2 Z
  146.   Serial.println("Server started @ ");+ P# B3 f" O* ?( @% Y  L
  147.   Serial.println(WiFi.localIP());
    3 ~1 [5 T. Y) V3 C& v, `
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip: {/ C& C9 F! L
  149.   Serial.println("To control GPIO, open your web browser.");! @4 x, E# {  n7 F3 d/ |
  150.   Serial.println("To set GPIO 0 high, type:");3 o, h6 W+ ?) ?/ j& S
  151.   Serial.print(WiFi.localIP());3 @) h! C. r6 \1 V$ J; Q( U+ s% b# k
  152.   Serial.println("/gpio/1");
    ) C- Y! x( R* }2 a9 C
  153.   Serial.println("To set GPIO 0 low, type:");1 g$ P$ ?% B" j- F
  154.   Serial.print(WiFi.localIP());
    ' z  @9 M4 p3 U3 k
  155.   Serial.println("/gpio/0");
    " L6 N3 U' }$ @/ g7 E" o) N
  156.   Serial.println("To toggle GPIO 0, type:");
    7 k6 M* {$ T0 T- j6 C
  157.   Serial.print(WiFi.localIP());
    ; d7 v0 N/ [+ G! b$ V
  158.   Serial.println("/gpio/4");# E: j$ G  q8 @- P4 l, ?

  159. 1 x6 t. `) I/ q( W: y1 t
  160.   // 初始化blinker
    8 v. ~' l9 Y9 ~9 H
  161.   Blinker.begin(auth, ssid, pswd);
    , D0 A* \! q$ i) Z  i, p- k& H
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数2 g, U- F; s/ H7 i# @: P0 A
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数
    * t9 K& M- r. }1 D: {
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
    1 F! f# V" O) I* i) n* P

  165. 3 }- R- m9 N: K9 @
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback
      G: Z. H7 J  o; a( z7 ^7 I
  167. }7 K& l9 L- B7 |( E7 C
  168. void dataRead(const String & data)! h2 a4 Y9 Y$ Q3 N- i' Y& m4 G9 D
  169. {
    2 B# E9 y8 [8 m. @% x8 _$ g1 a/ ]
  170.     BLINKER_LOG("Blinker readString: ", data);
    9 M6 s0 `) U+ v- r
  171. 7 c2 Y, E9 j" O" J! i7 d7 K) i+ O
  172.     Blinker.vibrate();' L' g2 o( z. a, R3 H" v
  173.     , k* {% }5 y% [9 l4 D( s! L
  174.     uint32_t BlinkerTime = millis();8 g/ A2 h2 m# N* q: Y/ ^0 ]1 Y- `0 z
  175.    
    ( V& C& j2 N" d- @0 ]) X. Y' ~
  176.     Blinker.print("millis", BlinkerTime);
    & S! v' K: Q0 t3 h- }8 x
  177. }( Q: l  B1 L# C, u# f
  178. void loop()( T, E9 g, _* J
  179. {7 W* ]( w5 D( B4 `* @4 e& p  A
  180.   Blinker.run();
    / {5 k. ]0 h& k% q) V8 T! L
  181.   if (digitalRead(key)==LOW)9 A4 C  ?# x. a, k* I4 u) U
  182.   {
    * t; O0 Z) j1 l$ J
  183.     Blinker.delay(200);
    , c& o1 N. k4 S% A0 `- @1 Q
  184.     if (digitalRead(key)==LOW)
    # z, B- [; z$ o4 j/ {# J8 m
  185.     {
    . `* |$ O" h- a% s9 e7 D
  186.           if (digitalRead(kg)==LOW)
    0 _. |8 A  X- s6 E! |$ d; p" p' T
  187.        {
    ! l! y; m/ s8 q
  188.             . L+ Q6 L  [' n; Z/ {( T& M9 x7 P
  189.             digitalWrite(kg, HIGH);4 c+ R) ?. O* N
  190.             digitalWrite(de, LOW);
    ' c6 i+ G, \  X. c" ~; X
  191.             Button1.print("on");+ [6 M) j6 y3 I' _
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色) i+ o5 ~3 y9 D" M. G  C$ J
  193.             Button1.text("开启中");
    0 K  f- G  E( c" z5 L- J
  194.        }
    # O6 i1 }. S/ e0 a( W
  195.        else if (digitalRead(kg)==HIGH)
      M8 B. u! V7 C' k
  196.        {
    ) t3 }5 f2 K& t; q
  197.             digitalWrite(kg, LOW);* n- w# J3 c! j4 r8 \
  198.             digitalWrite(de, HIGH);
    9 g* D' r* L4 {: c' f6 {9 k9 C
  199.             Button1.print("off");; e8 \( H" W: ~' X8 z1 ^
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色
    0 y' {  [- j! `* a% J% C1 R, {5 v
  201.             Button1.text("关闭中");
    / b# Z& I0 s  q7 v6 c
  202.        }. N1 t: S$ x/ ?9 ^9 A" i
  203.       }, i0 n9 u: n- I, u: p4 d' F5 t8 ~
  204.     }
    ' @1 y2 o4 n& v0 R! }8 A7 Q" n
  205. }
复制代码

5 [) Z: A: j) K) i0 V' N
! p. W& z/ Z: p* \3 _2 {我没有用卖家给的码,我自己写了一个,参考我前面的文章最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 https://bbs.nasdiyer.com/thread-18755-1-1.html
- C  C3 l1 P* `
: A7 o  w2 Z' d- [: u把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。7 u) \+ N" L7 z+ ]' @3 W5 G  `

& T3 |6 b" S* j3 ]6 e% s3 c* Z; _9 [9 A- d+ T# b
发表于 2021-8-23 13:06:07
高手,没玩过!达人
发表于 2021-8-24 15:53:16
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆
发表于 2021-8-24 17:20:24
a467913252 发表于 2021-8-24 15:53
6 p1 ^8 t! z6 `3 C买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...
" e/ |% M1 Z& v
大力出奇迹呀
发表于 2021-8-29 08:14:58
a467913252 发表于 2021-8-24 15:53
+ [, ]* J- N0 ?+ f  A买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

+ }) v; t* |- t, O/ T$ ]! Q2 o昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能
发表于 2021-9-4 23:05:22
sevenup0719 发表于 2021-8-29 08:14
1 k8 q. O2 X' N& ~+ ]. [昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...
2 m, W& p. g( r7 g; }0 @* x+ H1 I
你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

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

GMT+8, 2026-3-30 00:38 , Processed in 0.076943 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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