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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 易记 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式 IP:–浙江–嘉兴 电信
本帖最后由 易记 于 2021-8-21 14:05 编辑
  u! M- Q! d. O" W
3 j. Q8 J2 h$ I% e. L7 _/ e最近玩ESP8266,想做个天猫控制开关。
9 A3 ?4 r0 M- ]9 @2 U但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。/ [. C5 |0 H$ u7 D. l& k8 E, @
还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。
% q, \  t8 d) m QQ截图20210821125037.jpg
  ?/ @. _, _. Y4 a! b
. f6 e4 S) q6 n( t2 x, p- `

7 V: y( {/ b4 [7 c; D问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。$ O7 o+ @& J7 `  G3 p! }

% p# e2 V: A8 Q* t QQ图片20210821124517.jpg 3 u! b; b; K5 @4 v$ }

+ z# x! n6 L, |' z) v& d3 X6 y/ k2 j8 w) C9 M
3 U# r* O; n1 c. y! C& q
到手,当然是拆拆拆。6 w8 P" h' H. L
IMG_20210820_134104.jpg
' w+ X2 q, n) C) I$ N9 V- C- a1 E$ H. b- E
, z+ e& K- ]4 I( k
联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。& f1 x( r$ \+ |; {
IMG_20210820_160634.jpg
# Z# _7 V) ?4 ]' a. K% \/ {& O8 ^/ a/ N9 q4 P/ \
: k1 c* _% y! j! Q6 h( u
继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。, h! v1 ]+ D0 g( H2 g: e9 d( d  o
QQ截图20210821133707.jpg * G* }2 ~3 c% b# q9 \* X" v

4 N, b" d' v" z- R6 g IMG_20210820_134114.jpg
* _6 H$ i; H5 M) V1 a8 V

: H9 q" D- d# c9 |6 v/ E: H! w& @电源芯片8 A6 e) `0 j2 m8 G! _  x9 W
$ {9 u5 x) I* D! t

. t0 T4 _& j, j- t4 l6 l
6 o, Z6 l/ Z* O( t
有一个按钮,按钮有二个蓝色LED灯  U  Y8 e* U; j8 H
IMG_20210820_134157.jpg
3 T6 _, I8 H0 ^7 v) G8 ?" i# X
' n# @& v5 K3 {0 e/ y+ J& {
: j; T& P3 }* c/ i# d
8266, v; ]3 N: s0 u
IMG_20210820_141913.jpg
* N8 l3 L, y9 N* c8 p. t- u5 f% x2 b& C

+ z9 M  y# S9 p2 y, L
* E8 w: ~7 ~6 j0 R. i/ M# W

# `; _, l* l/ e1 `& Y接下来就是刷机了,版子上面都预留测试点。
$ ^, U: N* ]. t/ R  t! e接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。4 {" [1 e( O, ^1 p
未标题-1.jpg
' q) ~1 i( H: `6 @
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。
3 D* w/ R7 |  s( c要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。

/ q8 D. _% `- U9 S  ~* J& F9 F
* ?& q- W# T: a7 e; K! @7 ~7 x
% O* ~7 G* W+ b/ m; N! q7 R/ {
0 K+ y; N! W  c# Q$ O2 \: H& S. r
- x  P3 ^# k6 Z( D9 M' d, w
8 X* \# i' p! ~  L
    5号脚位是继电器输出
  g4 L0 E! O* \& _* i0 c    12号脚位是灯输出
3 C' ?4 `4 h  o/ q0 @    4号脚位是按键
# [* `; N% ]1 y# e7 N+ B. d7 y
" z3 R% B- U6 @

2 `  }( X6 K( X  P/ s2 J7 a& e& j1 L7 l/ O

" C/ h' y1 ~0 C, @+ m- M' g3 @卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库8 W9 |- \- t" E9 V6 ?0 k
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库
    1 n6 X. j$ ^7 A$ _3 W, q( s5 j
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库
    : S3 V$ X8 ^) @* b& p
  4. #define BLINKER_PRINT Serial            //串口协议库( H( y8 V: v5 b, Q" T5 J" ?6 [4 l
  5. #include <Blinker.h>                    //官方库
    1 a* l* P" t3 K- \& F
  6. #include <ESP8266WiFi.h>                //官方库, _9 G9 K8 \: k, T2 t2 m
  7. WiFiServer server(80);                  // 服务器端口号
    . ~: R: ^+ C+ ^7 _6 y
  8. . d6 t" q5 W9 @5 f( ^
  9. char auth[] = "c4942fb1d5e4";     //设备key
    7 X, a) H2 P- M! c
  10. char ssid[] = "wanboshi";     //路由器wifi ssid* e5 G8 d! W9 c
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码
    . {1 |* S* f1 l

  12. & V5 I3 S  M" J6 z6 C3 j
  13. bool oState = false;) @# K8 c! A; D$ [% ^
  14. & i2 @! L5 H& @1 U% |, d2 w
  15. int kg=5;//继电器输出
    ! @! x* z4 d7 Y, n% J: Q* r/ k
  16. int de=12;//灯输出
    + F5 }3 Q! [! R) R5 Y" c  [" E
  17. int key=4 ;//按键) |! o; [. S6 ~& m
  18. //*******新建组件对象
    . _; t& K$ W* X9 H9 c, [

  19. * }0 K+ x1 i4 q) a; `
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名4 ?' m5 ]) g" J) k  X- k2 Q5 \
  21. //*******app上按下按键即会执行该函数app里按键
    9 `1 U' @( h2 l5 z$ P, }6 t; p8 ~
  22. void button1_callback(const String & state). P0 D1 t3 x8 u
  23. {& {! H: w9 y6 @+ L
  24.    if (digitalRead(kg)==LOW)
    , i8 L3 b0 E. p1 [: V
  25.    {
      p$ r4 K$ K( D& |3 {  C
  26.         BLINKER_LOG("get button state: ", state);
    ! K! \% P6 B: K/ y3 s( U
  27.         digitalWrite(kg, HIGH);
    0 c* G" Z" s+ u  |, |& Z* Y0 u
  28.         digitalWrite(de, LOW);* B6 M4 y$ _/ q9 d* e& s
  29.         Button1.print("on");$ q/ B7 Q& \+ {0 j: s. u5 Z
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    1 ^! B1 o' k6 e% H; _
  31.         Button1.text("开启中");
    ) u( g/ L% [2 P& o$ ~
  32.    }$ u3 s8 t$ @3 j; ]$ o; f, E
  33.    else if (digitalRead(kg)==HIGH)6 U  }* d- @, @  e2 o" Q' X
  34.    {1 s+ k, X+ X  B' A0 ?
  35.         BLINKER_LOG("get button state: ", state);8 f# F/ s& T# r
  36.         digitalWrite(kg, LOW);* j& W; t+ U1 G- |% @* P( K
  37.         digitalWrite(de, HIGH);
    7 Y& ?5 U  ]3 C6 S; W+ n
  38.         Button1.print("off");
    ! l4 {$ w5 B! c! F
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色9 X0 L0 M$ l  \( D4 Z
  40.         Button1.text("关闭中");. @, u6 w: Z0 A
  41.    }
    ' b4 D6 ?3 x5 E& |/ R
  42. }* b! K! j& z: d% F$ G
  43. $ J5 h" o+ ^9 E# M; a
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++9 K9 I! l( n* {; j9 N8 d
  45. ; {+ P- _6 t/ s2 l, B4 O
  46. //*******如果小爱有对设备进行操作就执行下面( S  O; V8 b8 k  `& n
  47. void miotPowerState(const String & state), Z) T- U3 m- \' f! j. `
  48. {
      l* m( R. j3 p1 B' B
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印
    " e2 `$ O: \* y! |3 X% F
  50.     if (state == BLINKER_CMD_ON){5 D' E. B/ H; o& q
  51.         : T) _( z  E! ^0 M& C
  52.         digitalWrite(kg, HIGH);. d, Z# i4 k& o6 w# s$ }9 ?
  53.         digitalWrite(de, LOW);3 r2 w- j4 b% b' i9 _" @3 H+ j
  54.         Button1.print("on");
    ' Q0 k$ ]5 C& W, x' G7 j5 v
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色+ t& @5 ^6 u5 [+ v2 A: s9 r& ~0 ?
  56.         Button1.text("开启中");
    & P- V1 W/ T" m' q
  57.         BlinkerMIOT.powerState("on");
    & e4 J" ]' T- T8 z& I: H0 X* @
  58.         BlinkerMIOT.print();
    , A) D( ~" a& P- }) a7 v
  59.    }( S% G& u7 V  M9 G. m- O- D
  60.    else if (state == BLINKER_CMD_OFF)
    9 p* K3 K( d5 u/ D; P; z
  61.    {
    + U. H/ Q  z9 I) R  Y: E4 J' ~) o
  62.         % E* P3 ~0 h% C+ H: f
  63.         digitalWrite(kg, LOW);
    : d! i$ R2 n7 d4 h. j; |* o
  64.         digitalWrite(de, HIGH);
    7 g* n8 R) T4 H2 l8 F& o$ N) m3 ~  J$ c
  65.         Button1.print("off");
    $ z* Q1 \4 G8 X* {, S
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色  V" {* G. w8 k8 C) V. D3 u6 q
  67.         Button1.text("关闭中");
    % ~+ ]# w( K0 V* L+ G; z- }) u
  68.         BlinkerMIOT.powerState("off");+ x, D! k/ t/ T" Q7 z. y" c
  69.         BlinkerMIOT.print();
    5 W* G( L0 V) U1 J
  70.    }* q- w9 d3 l/ ^  K4 y$ G$ C
  71.       
    & |+ y6 {( q7 |# A( r
  72. . ^; q: p. v) I8 e
  73. }
    $ ]& B3 k6 v" F* o' K9 N4 S
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    7 M2 g0 C2 V2 D$ t; l
  75. //*******如果天猫精灵有对设备进行操作就执行下面$ P' L- Z  K5 e  Y# Q( w
  76. void aligeniePowerState(const String & state)
    % ~- [9 U, N; q
  77. {/ D; F$ g" O( X! |% y2 C7 g
  78.     BLINKER_LOG("need set power state: ", state);! ?) g/ y% H. X1 `5 j6 ?7 u
  79.     if (state == BLINKER_CMD_ON)% j3 F3 c/ }# o$ E7 s) _: e+ G, y
  80.     {0 V6 q% [& Q  [( g5 v
  81.         
    9 s! A; n7 Q  l+ Y) e$ d
  82.         digitalWrite(kg, HIGH);3 Y* g8 w0 I* Q- A3 r6 m3 w( z' i
  83.         digitalWrite(de, LOW);% f! x, B" b* O, v8 }
  84.         Button1.print("on");
    . n. i  W% R2 I& |
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    8 b* q' j0 \5 r% m3 a% A
  86.         Button1.text("开启中");
    " U+ f0 v' m1 x7 K9 s
  87.         BlinkerAliGenie.powerState("on");
    8 y7 S! q* R/ ^8 F6 k
  88.         BlinkerAliGenie.print();
    9 Q4 C$ w5 v/ m  P: ]$ X
  89.     }. M  Z% [2 E( _" J6 a( ~! r$ `
  90.     else if (state == BLINKER_CMD_OFF); Z% D* }$ a4 J4 {' o  Y
  91.     {4 ^$ [; h/ K$ F9 f. {" I
  92.         # @. B, f) B+ x1 W+ m6 {
  93.         digitalWrite(kg, LOW);: ^' I* [& ^& h6 ?& L& [! E( H
  94.         digitalWrite(de, HIGH);3 A! m; ]5 L) w! _$ G$ J* P; O/ u
  95.         Button1.print("off");
    ; E/ n& U5 Y$ Z  ^
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色4 X$ ?* `8 `3 q' ~
  97.         Button1.text("关闭中");, ]1 _* H9 D4 h  h: S: Z/ t
  98.         BlinkerAliGenie.powerState("off");
    ) H: o' Q8 \5 [4 p
  99.         BlinkerAliGenie.print();
    7 ]# g  ^! }& s0 q; H
  100.     }1 [5 \; V8 d. ^3 ?8 w0 K7 X
  101.         
    5 s9 B8 I9 {4 c+ D

  102. - M  k  \% U$ y
  103. }& r3 l- H* |# }! m
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次
    8 u9 ~8 }) N- T$ I  f- h3 h: A3 D
  105. void heartbeat()6 j# i& X* ]+ I6 E# V! h! G
  106. {
      I8 d9 Z# d) @. q) ]& ^
  107.   BLINKER_LOG("状态同步!");
    9 K. r3 [  T. u6 d1 \
  108.    if (digitalRead(kg)==HIGH)
    . B$ T+ ?$ {1 Q% M! z8 z( P
  109.     { + U& h# h5 ^. u+ K
  110.       Button1.print("on");% e1 t3 o5 v+ v! ?+ [: I+ w2 h
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色, ]  b8 i. ]/ L  @# z$ J# O
  112.       Button1.text("开启中");
    * I5 p! b& b! B
  113.     }
    3 \7 i( ^1 M1 X2 ?% ^- }
  114.     else
    2 o/ r& c0 O" N0 H2 z
  115.     {
    ) V9 r+ Z. U; L9 E
  116.       Button1.print("off");9 }3 y! n- n, M9 l2 }
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色% F, _5 ~. M+ X2 i5 |) T2 w( h* F
  118.       Button1.text("关闭中");* X& b. ]/ |7 Q) O! W
  119.     $ J9 L0 a% e. W" x8 m
  120.     }/ b- u( `, E% @
  121. }
    * O: \( `2 b" ], k* B2 V6 f8 k
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  |: o$ f* D% J5 J! o9 X
  123. void setup()- T4 p/ d  q: m9 {8 O& K% v9 Q5 G2 U: \
  124. {# e; d5 d6 l0 c9 B% x1 x* j0 C
  125.   // 初始化串口7 B0 ^! I4 J! I
  126.   Serial.begin(115200);- }6 s3 X" R- e  W( J# t! e& _
  127.   delay(10);# V3 L; i% d' A3 U4 S0 A
  128.   BLINKER_DEBUG.stream(Serial);6 z% Y( x2 ]* o
  129.   // 初始化有LED的IO! F' c8 Q1 r5 e. m5 V
  130.   pinMode(kg, OUTPUT);                 9 k% R% ?' G" M# e3 r& q- ?
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态 * C$ v! Q% S$ b
  132.   pinMode(de, OUTPUT);
    / Y( g. m  d4 j) k, F7 l) m
  133.   digitalWrite(de, HIGH);
    4 i; F) d; R5 X  M% F
  134.   pinMode(key, INPUT);            
    0 h" I( X) E3 h& t0 j
  135.   Serial.println();
    2 C# f8 Z5 f+ v) G
  136.   Serial.print("Connecting to ");
    ' O3 }" ^7 c9 b7 A5 |- R, Z
  137.   Serial.println(ssid);
    7 g+ _+ C3 A& F2 }1 {, g, Z* |7 w
  138.   WiFi.begin(ssid, pswd);* O# I  @  ?; h- l
  139.   while (WiFi.status() != WL_CONNECTED) {! X: y) M; c0 J/ S& ]
  140.     delay(500);( }- M8 m3 d9 ?. K3 [* @
  141.     Serial.print(".");) u" d; F6 d  P1 t2 f+ b! X
  142.   }
    $ v# h  T, E: \3 W! ~  L/ q
  143.   Serial.println("");
    5 e: S1 S! w& C& q; @% \
  144.   Serial.println("WiFi connected");
    " t% [3 A( F- X8 I% a! @( |
  145.   server.begin();
    8 B1 G/ X: k7 Y' _9 r+ d' ^
  146.   Serial.println("Server started @ ");. L# o. P3 ^# v
  147.   Serial.println(WiFi.localIP());
    . @& s0 y" Q3 Y
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip/ L4 N0 l3 J+ y0 h' f& A
  149.   Serial.println("To control GPIO, open your web browser.");
    * e- {% E9 s& a) ?0 K/ g
  150.   Serial.println("To set GPIO 0 high, type:");4 ]$ f: y5 S) T% K( Z, y6 D- ~
  151.   Serial.print(WiFi.localIP());* q+ H3 g2 L4 o- b0 W, N8 A0 P4 J
  152.   Serial.println("/gpio/1");' [9 e# l2 d5 A5 I# q2 ]
  153.   Serial.println("To set GPIO 0 low, type:");2 \+ L0 S0 {5 b0 d. \
  154.   Serial.print(WiFi.localIP());
    " p, o4 x1 b) t7 t* f
  155.   Serial.println("/gpio/0");
    ) p) }6 s' Z) N) Q3 M
  156.   Serial.println("To toggle GPIO 0, type:");1 I- N* i6 V! U* q1 |
  157.   Serial.print(WiFi.localIP());
    ; D8 G& I! S  K; R- \
  158.   Serial.println("/gpio/4");
    ! s; @1 _2 ^$ l1 ?9 w
  159. 4 r' L4 p& j% N/ H$ R
  160.   // 初始化blinker
    - B: g" [* |4 P4 G9 i+ W" B
  161.   Blinker.begin(auth, ssid, pswd);
    ' O( t  p. ?# A7 {+ [) |" N" H
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数* D( L& a6 k8 X' Q6 J/ w
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数+ w7 g0 J; d$ J5 m; F& X4 p$ [; h
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
    2 ?3 a& `. s+ {. q2 a: j
  165. $ x/ M0 |* L: U& N' z4 k1 B, ?
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback
    - z1 U: `7 C" d  V5 B
  167. }
    " P* X* I- O4 F( _( G! [
  168. void dataRead(const String & data)
    ( f4 x3 Y1 z, u0 p7 M1 _
  169. {
    ) @6 o( S2 y0 m: f- U
  170.     BLINKER_LOG("Blinker readString: ", data);9 [  W0 r2 T! z- c, A5 r* g

  171. 5 c1 t) _/ N1 Q  D% E% O9 d) d
  172.     Blinker.vibrate();5 N# {, I" W) u, D9 R% ]
  173.    
    5 Z% p. o# {% r" @) F) i- i2 N
  174.     uint32_t BlinkerTime = millis();
    / @+ W# v9 _. ~* g; w$ S2 ]* S
  175.    
    ! h- U" l5 D3 a. _" W( p
  176.     Blinker.print("millis", BlinkerTime);0 ^6 Y- R" H% R
  177. }
    6 |( Y+ N, L' b6 [  G
  178. void loop()
    : f  v2 ]* S( [/ _( n5 ^
  179. {
    1 s1 `# y- _7 k+ `
  180.   Blinker.run();3 I  ^/ ~$ Z* ?2 b, \4 F; z! O
  181.   if (digitalRead(key)==LOW)
    / K: V8 {* `, Q; Q9 S
  182.   {
    - d5 X$ O8 q* S
  183.     Blinker.delay(200);
    2 p, ]7 g+ ^7 H
  184.     if (digitalRead(key)==LOW)
    8 I) W0 l) W) S+ e8 u8 _
  185.     {6 J+ E' O& c3 J2 w! A* T0 |
  186.           if (digitalRead(kg)==LOW). L1 O; c- [3 x# v) X" V0 ^5 V8 I
  187.        {
    , q  |) g8 C: X0 T4 _# {
  188.             
    ) W) g2 M" d# \: D' y
  189.             digitalWrite(kg, HIGH);8 p8 V: U! r. h
  190.             digitalWrite(de, LOW);$ }* c$ \0 _2 A* Q, ^
  191.             Button1.print("on");* b4 ?+ b( X& j6 _; W
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色0 o, H( E  b9 F! t
  193.             Button1.text("开启中");; N  Y! ~7 ^& `  `0 x% P
  194.        }: C1 l* N+ P0 C  [
  195.        else if (digitalRead(kg)==HIGH)
    7 \" N- O7 _8 T; s2 a$ Z4 l
  196.        {
    ( p) r+ t2 E. `6 ?
  197.             digitalWrite(kg, LOW);( x* @+ v- z& d& i" N9 Z3 N/ k  N" j
  198.             digitalWrite(de, HIGH);1 o5 v) h  }* }- O, L
  199.             Button1.print("off");9 N4 t4 k8 x' |# X, b6 p
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色( d8 }7 {& r, J- J
  201.             Button1.text("关闭中");
    * j& w6 D7 }2 q- L! g. O
  202.        }' Q; [8 S% h- R" U
  203.       }
    + F: S+ T& Z! s, T+ C4 M: O% a* Q
  204.     }
    4 z/ J. }. |* F$ b' |2 |; t1 l5 X+ @5 A; \
  205. }
复制代码

& ?$ w' a" w0 R9 Q& m% E5 o& h, g. Y+ O. `8 Y" }4 B
我没有用卖家给的码,我自己写了一个,参考我前面的文章 《最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 》https://bbs.nasdiyer.com/thread-18755-1-1.html
; L9 B, \: W4 [- s, @; [7 q1 ?  E+ K# J! y  F
把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。3 x. J5 e5 ]) H2 J9 z
6 R4 E& W+ d! l/ Z5 [

$ E' L6 ~' {# q2 h: n

0

主题

18

回帖

85

积分

初级渣柚V2

积分
85
QQ
lucky999777 发表于 2021-8-23 13:06:07 | 显示全部楼层 IP:–浙江–台州 电信
高手,没玩过!达人

2

主题

11

回帖

63

积分

初级渣柚V2

积分
63
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; }; o0 P# k  z: N4 ~4 G
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

+ _5 Y3 O' K5 D5 D- _. i大力出奇迹呀

1

主题

8

回帖

257

积分

中级渣柚V1

积分
257
sevenup0719 发表于 2021-8-29 08:14:58 | 显示全部楼层 IP:–江苏–连云港 联通
a467913252 发表于 2021-8-24 15:53
5 e% e2 ?1 ~* ~& ]买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

6 G4 X% q- \, H- z昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

63

积分

初级渣柚V2

积分
63
QQ
a467913252 发表于 2021-9-4 23:05:22 | 显示全部楼层 IP:–湖北–武汉–江夏区 电信
sevenup0719 发表于 2021-8-29 08:147 D4 }1 x: c0 T$ g. @
昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...
5 A, }6 [- `+ o0 ?+ S" o
你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-10-20 11:13 , Processed in 0.060241 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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