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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 易记 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式 IP:–浙江–嘉兴 电信
本帖最后由 易记 于 2021-8-21 14:05 编辑 7 h+ d4 I. A) w0 @. ^$ b
9 M; ?! p7 S! ^
最近玩ESP8266,想做个天猫控制开关。. i# Q0 a0 ]# R" a' V, ?
但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。* c+ Q: }. _- |! x* f  J
还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。
1 n9 }; _/ R. ]$ Q$ S8 m( v' h" m QQ截图20210821125037.jpg
# i' j) _7 \( X' h2 ~/ g
% T, h' D* }- L( S. C  ?8 H

3 Z0 G0 H$ I' p  {( {7 z/ b问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。
) T$ g" G! E$ z8 P, q, W6 x3 @. m/ d
QQ图片20210821124517.jpg : `& e: X  R/ G/ l
1 p" y4 L1 Y. w' e+ @
9 s- O6 a9 y1 H+ j3 M7 j) e. `5 b

# c3 A* p8 c+ `: K) g# R到手,当然是拆拆拆。1 `% Q' k& ?& y3 G/ b2 g
IMG_20210820_134104.jpg
4 P8 P/ r/ E6 D9 W& P
, n( |2 V7 Z6 Y; Y) l  I/ O) ?

" q5 ?/ f7 t5 X& x$ i" _联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。
+ E, N9 f4 Q0 d- Q) [ IMG_20210820_160634.jpg 7 l8 k( I( c" U; @6 O& ^: w2 I/ y; f

! _7 H2 y8 R0 o& h# |
( ]' ]0 @, q, u' s8 A8 f9 }7 n
继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。4 M! X+ s5 m$ ?$ n. C" ^0 K
QQ截图20210821133707.jpg 5 U6 q! K  @# s# m! b

; x4 ~) o2 r8 T+ ~  x/ \ IMG_20210820_134114.jpg
7 L# x  T1 d: }4 r
/ G1 b2 d8 d3 ?
电源芯片( ?% e0 u4 H& {$ Q; s+ Z2 T7 Q& l
7 {" j' c# z: @: R2 }
+ U  N8 F7 `& x; F' x; A: a  v
$ m& l* g- V3 ^" p1 G4 r3 V
有一个按钮,按钮有二个蓝色LED灯
, r/ D+ y2 F  t0 J( R) X IMG_20210820_134157.jpg
6 a+ S2 [. X4 f& v& U: _5 n5 h# h! A: n5 E" b# H
( _% E; n! b% D$ ]. d/ {9 H+ g
8266
- W+ C2 I; O& O" g) m" y5 w8 @ IMG_20210820_141913.jpg
4 m1 z& |2 M/ {+ e/ a! B6 H8 {' n! e# ]% b  V0 g( z

8 }5 w& m8 o: N- [
3 v! b6 y' @/ g, o5 K  C

9 Q! t  g1 w# B) O% y3 r2 ]7 O接下来就是刷机了,版子上面都预留测试点。
; a* L9 y7 n+ G: o6 r. I接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。
) l; r, {: {' l! ~. {7 X 未标题-1.jpg 6 {: g; c( \3 b( L
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。6 J3 k! l% g  V  h  }) R* U
要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。

3 X7 s6 a! Y& _7 f8 z1 t0 E# U: y& `% _/ t* ^/ O
4 F# m4 ?$ j( B$ ^
2 v+ u- q* L/ W3 z- e& f
% \5 h& R9 f& Y9 W- d) h8 i0 k
& \' d& D/ o4 x- A
    5号脚位是继电器输出# ~3 h. l- Q# K
    12号脚位是灯输出
0 L( n/ p5 U  @1 d+ ^- w( W    4号脚位是按键
+ d' Z# G6 M8 z) L* ?* v
, M- }/ o; c/ x+ n" I0 K, g9 I
  w. B0 ?& x( M4 m) A
, m8 O1 ^3 l9 C5 Y8 U/ e

: F( W2 o* w0 H4 |: Y5 Y- E卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库; g: k- [% A. P! u- t
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库
    5 ?% O2 _  M. V) x% `7 ]  e% }/ ~
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库
    0 g7 U% y# f% z% x4 [% d/ a  M
  4. #define BLINKER_PRINT Serial            //串口协议库
    * r8 V4 W: Y5 C% R
  5. #include <Blinker.h>                    //官方库5 |) e! V+ M) \& q* }
  6. #include <ESP8266WiFi.h>                //官方库0 L7 @- F) J1 e
  7. WiFiServer server(80);                  // 服务器端口号4 ?3 A3 U. o$ b9 {, Y$ n6 d

  8. + Z6 `8 R/ \$ P# R+ V
  9. char auth[] = "c4942fb1d5e4";     //设备key$ j- i# U1 [0 }2 z- b5 y* u
  10. char ssid[] = "wanboshi";     //路由器wifi ssid
    * J- G! m- \$ D9 [. o  o% @, R7 o
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码
    # U& D- {9 F. ?: ?7 M- p" \
  12. , G8 E3 G! Z0 d# O" ]
  13. bool oState = false;
    ( j/ h8 M; }: b6 ]8 `/ X- b
  14. 0 W' J/ }' K( i* e5 k8 M5 K
  15. int kg=5;//继电器输出
    ; N. p! n" J; y- {1 e$ X4 B% d( i
  16. int de=12;//灯输出* v; j, u  I4 ~0 _6 p
  17. int key=4 ;//按键
    8 X) G, p# J$ v" j( E7 q
  18. //*******新建组件对象& n, h' q& h% `. G2 z

  19. # g. G7 L4 A; g
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名: @2 {1 ~5 k7 z% x1 i' X* A
  21. //*******app上按下按键即会执行该函数app里按键
    & ~! H. `2 |) H6 U  S6 i8 p7 w
  22. void button1_callback(const String & state)0 w0 X& B/ M; K1 f' _
  23. {
    0 C5 O& R9 V. ~3 h1 C
  24.    if (digitalRead(kg)==LOW)
    ! ]# l' ~/ }$ d& h/ C2 U! D4 W4 \
  25.    {
    1 K$ B5 v0 ~% M2 V
  26.         BLINKER_LOG("get button state: ", state);
    * ^5 j! K+ p6 M* U1 N% S9 w
  27.         digitalWrite(kg, HIGH);
    # q2 M! E5 c$ n5 X6 _; _5 A. b1 W
  28.         digitalWrite(de, LOW);
      x4 h' X; t; d( G  W
  29.         Button1.print("on");
    6 ?% m# r1 U& J# I. e. p# {7 k
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色! H; `6 q- M# G8 x- K
  31.         Button1.text("开启中");% ?. u7 w5 A4 k
  32.    }
    ; u% I9 a3 }. e7 b  M
  33.    else if (digitalRead(kg)==HIGH)& X; J* d1 X2 C2 C+ Y1 e  q
  34.    {3 \- J' `8 W  L- e
  35.         BLINKER_LOG("get button state: ", state);
    2 |7 V- O" V2 d/ G- T8 R8 }
  36.         digitalWrite(kg, LOW);& A0 }' y3 W! t/ U
  37.         digitalWrite(de, HIGH);! e8 y4 G5 C6 ?& Y, }
  38.         Button1.print("off");8 A% i% ?3 G, T3 a$ X
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色$ g/ c+ K8 D) B. P7 L1 f( k
  40.         Button1.text("关闭中");
    1 z: a4 n3 a6 v3 m1 R
  41.    }+ Z- \$ J9 R! O' p# S- ]1 p- b- q2 n  \
  42. }0 ]* @* V' q2 A+ g3 b

  43. $ c$ X, ^& P+ d6 t$ _
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++4 p+ P8 X0 [. z  `8 c
  45. " }( K& B# @& p# T+ A5 Z  n
  46. //*******如果小爱有对设备进行操作就执行下面
    3 A- m5 Z# L+ B; G3 g/ B' ]
  47. void miotPowerState(const String & state)9 ]5 K0 H6 ~) F+ k* J2 b
  48. {& }6 l2 V' V& q) V& A( J3 c7 t# h7 ^- O) x
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印4 g; S' h5 r) l! {! ?
  50.     if (state == BLINKER_CMD_ON){
    2 ?" G. N" E( _2 Y. `- k. Q  F) S
  51.         
    4 n7 t& t1 v  f; g: d$ ]
  52.         digitalWrite(kg, HIGH);
    : b! ]5 e. {2 g
  53.         digitalWrite(de, LOW);1 M2 A' h0 @) N: @* T5 i$ s7 n
  54.         Button1.print("on");; D" `2 q6 X  P0 [! y& O
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色) s4 E0 }; G- Q! B# }6 J7 F
  56.         Button1.text("开启中");
    ( q% p5 O; ~5 R* d% v, v7 I& \1 j
  57.         BlinkerMIOT.powerState("on");& B2 c7 H$ ?4 ~7 j* s3 x
  58.         BlinkerMIOT.print();  i$ L/ a; u2 v; |( X2 \
  59.    }
    , h$ `; o. S, f
  60.    else if (state == BLINKER_CMD_OFF)
    5 s$ X3 d( P2 O
  61.    {4 s+ ]( h/ T$ @2 m) I
  62.         
    , J  f4 T% i) }' L1 ~
  63.         digitalWrite(kg, LOW);
    ( v$ H, {  }4 {0 s: x! S  f
  64.         digitalWrite(de, HIGH);
    ' ]* D/ B1 p" ?) z+ Y1 e
  65.         Button1.print("off");0 x7 B# ^9 G6 A. R" ?4 \
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色, M2 I" G* p# s7 y. _" k- H" o
  67.         Button1.text("关闭中");
    + d: X; w/ a2 V6 U7 _: F9 J
  68.         BlinkerMIOT.powerState("off");1 ^  d2 ]' L' I7 T9 s4 [9 Y
  69.         BlinkerMIOT.print();$ h- T; p% N% o. e6 R
  70.    }% H- S% R; B6 W4 G0 v/ b, _! |
  71.       
    . k1 s; X) X) l  S1 e% ]: P2 Z
  72. - A" z+ c' F1 \
  73. }
    - f1 @- t# E; U: G& q9 c8 ^
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1 L( l6 J) y! e5 y7 O8 T  v7 d
  75. //*******如果天猫精灵有对设备进行操作就执行下面  J- l  Y: H1 W: V0 m+ {8 n
  76. void aligeniePowerState(const String & state)
      a% i- c0 \6 l# Z0 z
  77. {
    ( W2 W$ }' Z+ [% C% [$ T# R! m
  78.     BLINKER_LOG("need set power state: ", state);1 g+ N2 S8 Y7 p& W6 y
  79.     if (state == BLINKER_CMD_ON)
    ) a. I" Z1 E7 P
  80.     {
    1 i3 L" B; v; H' {0 W7 J
  81.         $ c+ H8 G9 D$ r8 o6 y) g0 [% r* S
  82.         digitalWrite(kg, HIGH);2 {+ ?. M) U9 Y1 O
  83.         digitalWrite(de, LOW);
    " ?& ]+ Y4 x# A4 H1 k/ a. g8 J
  84.         Button1.print("on");3 |8 U5 v3 I- ?
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色" v# W3 M/ i0 ?1 O* ?: j
  86.         Button1.text("开启中");
    & d5 K" e& }3 ]
  87.         BlinkerAliGenie.powerState("on");
    6 b6 `& K. a' `% w) }
  88.         BlinkerAliGenie.print();4 w* |. Y! [2 k8 e9 Y- q
  89.     }
    4 ?% C  @! }+ p
  90.     else if (state == BLINKER_CMD_OFF)$ a- a5 J  @5 H3 A: I  F0 v; ?/ B  v
  91.     {
    & ~5 h6 r3 S/ P( K  ?2 I% i5 }
  92.         6 o2 ?3 R) b/ ^7 r( s
  93.         digitalWrite(kg, LOW);: B) K* _2 ^9 f2 [: ?/ J
  94.         digitalWrite(de, HIGH);
    4 |7 I% q3 a; J0 q) @. |2 u
  95.         Button1.print("off");
    ! y4 O6 r* L( ~! Q' a3 M0 x
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色  _* M# B7 i! F" b+ p+ B
  97.         Button1.text("关闭中");: E- ^6 ^' g7 n2 o' q( E
  98.         BlinkerAliGenie.powerState("off");2 U  ]. W' N' Z; T
  99.         BlinkerAliGenie.print();
    ' }/ k$ |3 ^/ Z, v8 T2 d
  100.     }
    ! ~& M$ L' H8 W8 }) b
  101.         9 ?# V( ^  A6 j
  102. & t6 D0 T4 j& a
  103. }
    ' M; i  h2 q/ P5 t1 ]- h$ v
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次
    ; N/ F/ D) X) D; Q1 {6 z- I) m
  105. void heartbeat()  ^  Y5 U0 p1 K0 w7 Q8 [
  106. {
    ! u- \! ?1 d# @! r5 I2 `7 V
  107.   BLINKER_LOG("状态同步!");
    2 ~  S% e5 |0 J
  108.    if (digitalRead(kg)==HIGH) - Q1 T* c+ x( f( L  W, l& X
  109.     {
    1 j% |0 L  L: @8 B( F
  110.       Button1.print("on");' G. x5 [+ y% b) X4 r! z/ m
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色
    6 J$ a: A' @# w
  112.       Button1.text("开启中");
    , a" }' v* `2 C3 j& x: v6 z: R8 z
  113.     }( n9 K1 t2 |! Z) H0 Y. A& h6 k
  114.     else
    1 m3 p. C5 l1 d
  115.     {  r) u. V0 J$ {9 |$ U+ I2 |$ _" R
  116.       Button1.print("off");4 d# O7 t  H2 D3 r* ^6 |9 W  v- F
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色
    ! H$ h( d8 t0 ?9 b
  118.       Button1.text("关闭中");
    7 Q( y, a0 i7 \! j! L
  119.    
    4 @! o- \# m$ {/ M' l
  120.     }
    7 v1 f7 P5 a: N0 p3 G5 J
  121. }
    5 N- m1 o; \5 N2 n4 {0 v
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    4 o0 s9 m3 M1 _7 }' G
  123. void setup()0 O1 j' j1 B$ m; q& Z% M
  124. {
    " O/ ]/ E2 g+ A7 }9 C' v
  125.   // 初始化串口$ N3 t* Y& |" c) `
  126.   Serial.begin(115200);6 u- F; H5 ~# \; ~
  127.   delay(10);
      M8 u4 ]! e  B1 Y, _
  128.   BLINKER_DEBUG.stream(Serial);/ }9 c- r/ f! R
  129.   // 初始化有LED的IO& C% E, ]. L2 N; c
  130.   pinMode(kg, OUTPUT);                 
    ! I: W- e4 G# p0 ]% S
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态
    " A3 a  D( b7 B
  132.   pinMode(de, OUTPUT);# n9 h8 m" `: s* J+ ^
  133.   digitalWrite(de, HIGH);
    0 n; c3 s' p6 e" m( t
  134.   pinMode(key, INPUT);            & e- n0 V' x) F4 K
  135.   Serial.println();1 v- W6 l$ k5 s, j1 \
  136.   Serial.print("Connecting to ");
    3 P/ |4 y1 J% ]9 I) ]
  137.   Serial.println(ssid);
    7 {( J$ a( ^" R2 W
  138.   WiFi.begin(ssid, pswd);
    1 I4 r+ N) m% ?& y' }
  139.   while (WiFi.status() != WL_CONNECTED) {
    ! [# p& s! J; _. T/ Q
  140.     delay(500);) u- J" A- [$ i& l4 y6 R
  141.     Serial.print(".");
    ( `1 G. z2 W6 g* G
  142.   }' U# L& W. }- h; \% s
  143.   Serial.println("");3 _3 ^6 O/ T0 s
  144.   Serial.println("WiFi connected");$ X: T4 F0 C; V- z
  145.   server.begin();# x. `# D7 \0 h# o6 ?
  146.   Serial.println("Server started @ ");
    & y( Q& c3 {8 @" V
  147.   Serial.println(WiFi.localIP());
    ( Z5 ?3 h, J+ b- Z
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip( @: U, ^6 A6 I, m$ [( q
  149.   Serial.println("To control GPIO, open your web browser.");
    4 z! d" f6 f! b8 m) f. j5 _  \
  150.   Serial.println("To set GPIO 0 high, type:");  e( _+ T+ h8 z$ K6 K; m* z
  151.   Serial.print(WiFi.localIP());7 u. ^- ?$ ~/ D: k# a4 I
  152.   Serial.println("/gpio/1");  w; u1 G1 J& W: \0 t
  153.   Serial.println("To set GPIO 0 low, type:");0 n4 W$ C! ~' m7 x
  154.   Serial.print(WiFi.localIP());  |# }8 H, m0 M9 E
  155.   Serial.println("/gpio/0");, n/ a% B" o+ M3 o
  156.   Serial.println("To toggle GPIO 0, type:");( ?, t! i7 A; ~8 P0 n. u& k7 I
  157.   Serial.print(WiFi.localIP());
    ' n- \; I0 r  [  K: [
  158.   Serial.println("/gpio/4");9 ]+ p1 `% w; [' w
  159. % U, n! E  N2 f  l* f
  160.   // 初始化blinker
    5 t5 V' P$ ?: r( U5 F& ?3 y& [7 o
  161.   Blinker.begin(auth, ssid, pswd);2 y5 p# u4 w0 m. Z$ b' p& R
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数
    2 V) O9 l$ k/ H
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数
    $ c# L1 \$ ]( L4 A* c
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
    7 ?. l8 ?; Z* y2 ?) I
  165. 8 h' u# t' K( l; n
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback
    ; E7 [- P: k% t; N" c4 [
  167. }: K/ r: ~( [% S0 }2 }
  168. void dataRead(const String & data)# n1 V8 N3 h( w* ]9 k$ ]  _
  169. {! a, w( V7 Y& t
  170.     BLINKER_LOG("Blinker readString: ", data);! `; y; b+ ~. A" G* M
  171. % ?6 d' Y# C8 Q; Y
  172.     Blinker.vibrate();1 h1 f! @, }: g! {) V! l
  173.     5 q1 c- k1 j% H4 K* j& R
  174.     uint32_t BlinkerTime = millis();- z; s7 N" O* o! h9 M+ A
  175.     2 X' v( O" x1 R
  176.     Blinker.print("millis", BlinkerTime);
    / {: L! p+ O+ r) l
  177. }
    8 l8 }) X. m) Y8 K
  178. void loop()
    0 M5 G1 w* L! \7 p7 t' ]
  179. {0 m9 t6 m2 o, \! w
  180.   Blinker.run();
    2 m" R% g9 b% h* u  s! o( P& c
  181.   if (digitalRead(key)==LOW)" b  k$ M5 ~' S/ a  M  c5 K
  182.   {. }' X- A8 p  U3 n1 X
  183.     Blinker.delay(200);
    ) c: w7 O' q2 _% K) }
  184.     if (digitalRead(key)==LOW)
    & q1 u* I: P8 G
  185.     {
    * n* v% h, e" B, \$ e. C! F* J
  186.           if (digitalRead(kg)==LOW)
    8 T' j+ C7 U1 q
  187.        {. J" |. P2 {' J+ w6 l1 W
  188.             1 F' C- t5 ^1 Q6 Y! C* f5 M
  189.             digitalWrite(kg, HIGH);: W( e4 o; ?1 a, w, D
  190.             digitalWrite(de, LOW);
    6 p/ [9 J/ y. L8 B# O
  191.             Button1.print("on");& Y& \! z% }* I% ]
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色; W% ]. ^* }% c
  193.             Button1.text("开启中");
    $ q  Z3 E4 ?, w0 \1 v% g0 U  j
  194.        }
    / p& ]' t5 z  k& Z2 V  T1 O% n
  195.        else if (digitalRead(kg)==HIGH)
    % F6 v- m+ I! S+ g$ c
  196.        {
    5 h. _1 M) s) t4 ?5 L
  197.             digitalWrite(kg, LOW);
    3 e5 \7 I6 E5 h4 ?/ u0 |
  198.             digitalWrite(de, HIGH);! H  t' z! k/ c9 h" [
  199.             Button1.print("off");6 g3 h# o( C; ?$ V
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色1 M3 ^) O! d8 ~+ K7 U' V/ m# E
  201.             Button1.text("关闭中");
    # T  W$ b, s  n2 T7 r- h
  202.        }
    9 ?6 B7 s; y* D% a8 }
  203.       }
    ( c; T1 B! f. \9 F$ x# s
  204.     }
    * F" x) P' c* a8 Q# T/ g, k3 k: H
  205. }
复制代码

0 f7 r0 b: A9 z% }7 h0 Q6 M+ d
# L& {# P5 g8 k) V, Y9 M+ L我没有用卖家给的码,我自己写了一个,参考我前面的文章 《最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 》https://bbs.nasdiyer.com/thread-18755-1-1.html# f& l+ T9 u$ u' \' a5 ?
) A9 o( |# I! h8 P. E
把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。
5 g& N( V0 N! ]( b9 t
, ^3 r1 V- F* y8 Y* o9 j* @, b* g# h. r& a9 N# p8 o

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# ?  L2 S$ Y1 W4 T% x
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...
9 F. r& q# ?6 ^/ t) C$ b
大力出奇迹呀

1

主题

8

回帖

257

积分

中级渣柚V1

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

8 e# Q9 D! f0 b7 S2 A1 ^' I% c# N昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

63

积分

初级渣柚V2

积分
63
QQ
a467913252 发表于 2021-9-4 23:05:22 | 显示全部楼层 IP:–湖北–武汉–江夏区 电信
sevenup0719 发表于 2021-8-29 08:14
5 A2 i3 A4 c* R; N0 h- }1 ^昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...
1 m$ N" [+ a, m; A6 u
你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-11-8 12:42 , Processed in 0.062431 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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