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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 易记 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式 IP:–浙江–嘉兴 电信
本帖最后由 易记 于 2021-8-21 14:05 编辑 3 m! ]3 T5 Z1 M# x# w

4 s; Q$ [7 o( [' u3 t/ `最近玩ESP8266,想做个天猫控制开关。
0 W, @: Z. y- B  I# R* [" w但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。/ _9 M3 ]% E* r- p' i  t
还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。: W1 e+ g" g' _, v) E3 h% O# K
QQ截图20210821125037.jpg
) O! |* U& y+ i+ g% T1 _9 e
7 V: N% J! I4 G6 s' }, H
+ v) [% m" {$ _5 B; C7 ?5 @
问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。
  b+ x4 l* i& I4 S
+ y' I" f0 _' m( u5 W( [ QQ图片20210821124517.jpg 3 \" n3 `: H  ]# G3 Y

# G" c2 \+ u% Z6 q' V* k
- S* v! u% n7 b
: p" \* ~2 y2 Q7 e. _8 L* v
到手,当然是拆拆拆。  z$ v/ X4 L  U) N
IMG_20210820_134104.jpg ! g% M" Z' @  v! a7 q

* _" S2 B, |0 G( I/ l" ~/ z. ?
. E$ N$ d$ B! a) b! y
联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。
, B/ w/ x6 I" G) t8 K9 G IMG_20210820_160634.jpg
  j6 j/ ]: k' w- |, T" ?
; H: A6 T. P; p( B8 J

% c  T" y; j( ?: V3 Q+ z$ u9 S继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。4 [( g3 w) ^5 Q. Q2 J
QQ截图20210821133707.jpg
+ T" K1 |! y) s. b1 F+ ?. u/ \

' v" I' I6 I) U4 U# N' [% I IMG_20210820_134114.jpg : o- x# d: T2 S( q
+ L5 j( R1 B3 T8 w+ ~, r
电源芯片
  k* h2 `; H1 @8 S$ L9 h5 K- v
  m- Q- I; F" J
# i, M" S9 n3 U1 t9 R6 ~$ F4 N

: e1 Y& ^; f% U; \6 J; \, T3 l$ U有一个按钮,按钮有二个蓝色LED灯
% O5 C$ r8 m1 i& J8 E+ K4 e IMG_20210820_134157.jpg
* }& B4 \1 m1 B
4 G! O8 D. |% l: ^/ y! J. Q
" R8 x5 ?( r! @4 o/ d
8266/ s  o/ a& `9 T
IMG_20210820_141913.jpg ( G' D6 ^) g3 Z

# @# u, B8 x) ]
# d. w9 K( \/ Q0 D7 `7 y+ P

2 z# j& M1 U+ ], A  s* L' Z

' z( o- z8 ?: D& A+ S接下来就是刷机了,版子上面都预留测试点。' r% t: K& s$ I  c: O, x9 \
接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。
! \+ x# ^# d* o/ t0 b' V 未标题-1.jpg 1 F) ?7 Q' p3 A8 H+ G9 ~3 |
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。
$ T- X! H7 G/ x2 q. }要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。

2 |6 e8 z0 v( y1 t; n$ I; r/ \) P. x; n

) X6 u% a( X  ~8 H6 T7 y  Z4 t
6 V" M4 `& n( G$ R, A
. Z5 h# G& b+ e. r6 Q

/ _$ {" W% M% Q0 n- d    5号脚位是继电器输出0 @3 a2 }* C  R9 J, d6 `
    12号脚位是灯输出
- z9 r& W. V% }) r! `: X    4号脚位是按键

+ A4 l$ E" Q$ A4 s  i5 l
6 l. l9 i  U( H1 x

! {8 [+ X# o3 Y9 I5 {  P$ r8 K4 w1 ^

) {$ x7 w$ v% e$ V0 r9 Q5 U卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库. O3 i/ `; Q1 Y, S
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库
    ) y8 X& Z7 q' [& Y6 ]3 U
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库
    " |7 u% k2 Q; k8 p/ [4 N# w8 I7 t
  4. #define BLINKER_PRINT Serial            //串口协议库0 T+ a) c6 J# @" _2 x1 S- p1 ~7 S  i
  5. #include <Blinker.h>                    //官方库
    , J% }6 P; o( i+ t
  6. #include <ESP8266WiFi.h>                //官方库
    ; ]+ g% r9 u7 i/ ~' p( G, P! _  \
  7. WiFiServer server(80);                  // 服务器端口号# ~1 `! M2 I9 R3 C7 J
  8. ' k( m1 J6 q) w7 @8 u# n
  9. char auth[] = "c4942fb1d5e4";     //设备key5 t  d* b8 _9 b7 i6 S3 u2 \8 h, K
  10. char ssid[] = "wanboshi";     //路由器wifi ssid, s1 h$ ?0 M0 q* Y/ V# ~' G
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码
    0 l0 O9 x4 E  I& s  D

  12. . w* B7 c+ J4 ]8 `7 c: G
  13. bool oState = false;
    6 x! P; A  m9 j; _

  14. + Q9 l7 ?$ U" F0 W( ^( m3 L
  15. int kg=5;//继电器输出
    ) E, R$ ~3 c& C0 I) p: ], t
  16. int de=12;//灯输出6 D! O' H0 v$ G! \& N) `: O$ j
  17. int key=4 ;//按键9 M' F1 T! O. I2 N" ]0 N$ v
  18. //*******新建组件对象  U  R: |* b' I0 O
  19. - q# V7 u" z9 K. J, b* A; v
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名9 J: K- X9 G# l
  21. //*******app上按下按键即会执行该函数app里按键
    9 c1 j7 t, h0 h+ Q% j
  22. void button1_callback(const String & state), g; P$ r/ y! Z: d1 H3 Z1 G# w# K
  23. {
    : L7 L# Y) ~- C
  24.    if (digitalRead(kg)==LOW)5 P$ j7 c. ?/ S& \1 U8 k, n+ B. h
  25.    {
    ) f, C) c: I1 \9 T; [! h
  26.         BLINKER_LOG("get button state: ", state);
    ' O+ e( s1 J" C$ V; R& t* o( M- w& I
  27.         digitalWrite(kg, HIGH);1 R. Q7 @) l3 [( z1 X# o' B
  28.         digitalWrite(de, LOW);
    # _2 n/ ^: ^. {; S
  29.         Button1.print("on");
    + N9 O: Z, o0 ^3 m/ {3 O( ?6 p
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色4 t  k! e! }) S
  31.         Button1.text("开启中");
    , x& E7 A% \0 d; d# |% G& T
  32.    }
    , d8 c5 }: f# P) q
  33.    else if (digitalRead(kg)==HIGH)
    : _# a- o" q" D, A
  34.    {" [, s9 B. j( Z* ^* Y
  35.         BLINKER_LOG("get button state: ", state);! k* t9 l7 j7 F
  36.         digitalWrite(kg, LOW);, Z8 g9 ]6 y. q3 U8 Q- N* G
  37.         digitalWrite(de, HIGH);5 W* |2 D3 g2 o% U6 Z; S% N
  38.         Button1.print("off");& s1 z& D' r  i) |
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色  O6 ~( |% N7 U6 K
  40.         Button1.text("关闭中");
    # A! Y7 D3 S4 O0 T# K7 u
  41.    }0 J+ @( ^! Z2 ]' W0 F
  42. }  B4 T) s. [$ Q' N$ U. u+ e
  43. / {+ i# a, E9 Q5 I% k3 b6 h) D
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ) a- {* Y' c: I% {  A, N' Y
  45. * N$ W, A8 f0 `3 p
  46. //*******如果小爱有对设备进行操作就执行下面4 T9 b) I/ |( V) {* f$ @
  47. void miotPowerState(const String & state)! I6 U, p! o" A% b5 z: ?
  48. {
    4 g$ N7 U# x. B+ F9 c
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印
    , V. \" F# b: V! l% w
  50.     if (state == BLINKER_CMD_ON){7 K" K2 ~) c4 {2 v5 e; s' g
  51.         : ]- [$ x" S6 R3 P' r' Y
  52.         digitalWrite(kg, HIGH);
    ( Z% Q0 G! L( a" v* J& j: Z. {
  53.         digitalWrite(de, LOW);
    * I) R, M% v/ G) |" y
  54.         Button1.print("on");! d; l8 p1 v  V& [+ `; E1 j
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色+ K( o/ q8 A& a' u
  56.         Button1.text("开启中");
    0 ^3 m$ K- [) Y# P% v
  57.         BlinkerMIOT.powerState("on");
    6 Z5 a! l1 |4 r( h% f
  58.         BlinkerMIOT.print();, |: D2 }! x/ Z
  59.    }
    / d3 z, z; I; c" Z3 \
  60.    else if (state == BLINKER_CMD_OFF)
    7 N7 y; P2 D, K' P6 k4 Y' m
  61.    {
    $ T) K4 B8 M& \# M3 f
  62.         
    4 c1 @; ^& ?( n( X( V' l
  63.         digitalWrite(kg, LOW);9 L! f5 Z4 y8 v5 X
  64.         digitalWrite(de, HIGH);$ E9 _+ h+ E" }0 T
  65.         Button1.print("off");0 Y1 }$ N* h" l
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色! k6 g8 X2 L" Z4 O  `
  67.         Button1.text("关闭中");" L. V9 u% _8 _( q+ F- \
  68.         BlinkerMIOT.powerState("off");
    4 {7 P8 Q2 K) ^- {4 H# G9 D* L% h
  69.         BlinkerMIOT.print();
    " _6 r+ s7 K7 G
  70.    }
    6 x: j# f& s) V" f& v- _* b* Y1 e1 m
  71.       
    1 @8 E( C/ T- W/ X  T. ~

  72. , _! U7 f$ x9 O8 g
  73. }* o( H9 Y6 {! m
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++' w6 k  D7 Y+ e7 Y, W7 u. X6 ^
  75. //*******如果天猫精灵有对设备进行操作就执行下面* u: c% x: h" P
  76. void aligeniePowerState(const String & state)
    # N( H: H! N+ J8 J- C
  77. {/ n/ Q  k2 @. a" K, m  a1 V# R
  78.     BLINKER_LOG("need set power state: ", state);
    ( i7 v+ x% m# }% W% }" Z
  79.     if (state == BLINKER_CMD_ON)
    # `$ H; B  [0 O8 U
  80.     {: S& V7 o/ d, {, q; ?' j
  81.         4 p. ~, s- z5 s4 f
  82.         digitalWrite(kg, HIGH);
    % B% [7 M$ O/ K: n6 h
  83.         digitalWrite(de, LOW);4 _1 R$ y; V9 X$ |# U( Y0 B
  84.         Button1.print("on");$ P2 m  h( Y& F( d9 J' S' f
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    * L' f$ p/ ~) X. k
  86.         Button1.text("开启中");8 c4 g$ t$ ~3 G; Q" _. P
  87.         BlinkerAliGenie.powerState("on");- a  |& @) Y* L* R
  88.         BlinkerAliGenie.print();: k) u& b1 J5 b; q
  89.     }
    1 N: P+ {) [$ T; u1 r& ]# K$ ?
  90.     else if (state == BLINKER_CMD_OFF)% b. y% W; o; b& z( z
  91.     {
    ; g& i5 t- P3 E+ R8 O6 ^- ?
  92.         $ A' d) i( |; C
  93.         digitalWrite(kg, LOW);
    " ?5 E5 M+ o- t- x7 ?
  94.         digitalWrite(de, HIGH);
    ; u1 V; N, U' D% j2 z' w! ^
  95.         Button1.print("off");* s  P# K* h. y8 E  l0 y6 o
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色8 P; n, q9 k3 k3 r5 `/ ]; H. q
  97.         Button1.text("关闭中");3 G6 Z+ s4 b( Y1 n, C$ p# n( [4 A
  98.         BlinkerAliGenie.powerState("off");2 L$ ?* A& i, Z5 K. @' g  t+ ^- P' ^
  99.         BlinkerAliGenie.print();
    % \$ i: @6 Y3 r& ]4 w3 U
  100.     }# E( m) g8 N- F* s4 ]( e0 k
  101.         ! l2 c0 l/ o) M5 I( W
  102. * C9 e3 b$ m0 w4 ~
  103. }, l% V. u5 T( Z6 x6 _7 f
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次9 j* U: p( b$ E1 u
  105. void heartbeat()
    7 r5 y( P% [' u2 x9 T
  106. {% ~0 p2 D' c) W/ Y( ?
  107.   BLINKER_LOG("状态同步!");
    4 X" W' V+ B% U
  108.    if (digitalRead(kg)==HIGH)
    / U1 Y, f7 ]( L/ {- x  v; [, c
  109.     { 9 ~& `5 b$ o3 `0 j
  110.       Button1.print("on");9 E% H- c/ g, Z/ b* \1 ~
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色: ~, M+ K( V2 ]2 q# V# D5 _2 M0 {
  112.       Button1.text("开启中");0 Q/ i: h3 w$ w; T7 k
  113.     }
    ( Q- Q7 q! e+ r6 h. s& Y& F0 S
  114.     else
    2 m* P1 J7 U3 m# n( L" W1 @- E
  115.     {
    : c/ D4 S6 H8 w  g$ ]' c
  116.       Button1.print("off");
    , j, A6 c( R+ G, V, G6 s
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色* N- ^$ K% W* Z; c; i
  118.       Button1.text("关闭中");
    0 p" b$ D4 t6 z, k! [
  119.    
    7 V3 k& U% l  N; g+ ]& r0 I9 X
  120.     }
    ' F  Y$ l" K; F" ^
  121. }5 V" _5 t6 x" H0 g7 M
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++: V0 p( Q; ?) s, B' H4 N* m2 \: `  ~( N
  123. void setup()
    ! I5 X. J5 ~  \6 i, c7 N
  124. {! S. `( ?/ ?3 w$ E- W; s5 l  e
  125.   // 初始化串口* U; d4 n0 w% Q" _
  126.   Serial.begin(115200);
    6 b: g: R# V# ?5 ?/ @; ]/ K: i. y) \
  127.   delay(10);
    . F/ [$ |! M' \3 g( f# F* S* e
  128.   BLINKER_DEBUG.stream(Serial);7 s0 p( E; ]$ Q+ P- [; h: X
  129.   // 初始化有LED的IO
    0 S: H/ U# i& l3 l
  130.   pinMode(kg, OUTPUT);                 
    3 U, j! i2 Z$ ^+ m" W  U7 B
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态
    2 J2 T" h" v' _+ Z  H
  132.   pinMode(de, OUTPUT);4 Q, G5 D+ l! d
  133.   digitalWrite(de, HIGH);8 p  h0 A) p* q6 V
  134.   pinMode(key, INPUT);            $ u" |  j, e$ g0 C
  135.   Serial.println();
    " o; D" v$ f3 I2 x0 B
  136.   Serial.print("Connecting to ");" y* R$ R2 e+ _) g
  137.   Serial.println(ssid);
    9 g- @1 M. q' _- |) c2 k# [6 A8 d; |
  138.   WiFi.begin(ssid, pswd);) g9 p$ Z" k/ M# O
  139.   while (WiFi.status() != WL_CONNECTED) {% C; b6 D3 ^6 J2 f; I" P- w
  140.     delay(500);
    1 o; a; q; ~" d: H6 Y, w* h3 ~
  141.     Serial.print(".");
    0 x: r2 C& [+ R
  142.   }
    ' o% ^# w7 y5 c
  143.   Serial.println("");
    4 k& |+ p& I/ |( D  x# h1 Z4 e- Q
  144.   Serial.println("WiFi connected");
    ' X! b5 Q8 q3 k& B
  145.   server.begin();% J- ~4 `) \- N/ K
  146.   Serial.println("Server started @ ");
    . J8 |# f( O5 [
  147.   Serial.println(WiFi.localIP());" c+ }# X* r1 Z1 ?( e* o  y+ @
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip
    ' g7 K" O$ |/ a/ {" ], D
  149.   Serial.println("To control GPIO, open your web browser.");! b! N: D! \& d
  150.   Serial.println("To set GPIO 0 high, type:");" S& b2 w9 \+ f+ A
  151.   Serial.print(WiFi.localIP());& ^. _, F' D7 E2 r: ?
  152.   Serial.println("/gpio/1");: _( p* d- \- Y0 _6 r) t% d
  153.   Serial.println("To set GPIO 0 low, type:");) j8 P' U( [3 u6 B8 G9 O! z/ S
  154.   Serial.print(WiFi.localIP());, f: `1 G! j, T* e: K8 J
  155.   Serial.println("/gpio/0");5 W7 Z1 z3 a2 @& D- D
  156.   Serial.println("To toggle GPIO 0, type:");& ^' o3 }* p2 m
  157.   Serial.print(WiFi.localIP());; K1 r( l2 W4 Y$ O  q; V$ \( B( o
  158.   Serial.println("/gpio/4");: E8 y0 y3 E' q

  159. ' D1 `# r( U; I9 v1 z' V
  160.   // 初始化blinker: M$ {7 M- F5 C; R" |5 ^
  161.   Blinker.begin(auth, ssid, pswd);. n, J- H& k# }* W' E% I2 P# L
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数
    2 [: f: G7 G% i5 |) z& Y% h
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数
    6 r, G* O/ W3 h
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。3 T6 \/ X) D# W0 C) O! W
  165. ; u2 I3 r. X9 z* P! [. L( s' h
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback
    / S8 q) _: t* r7 p; K
  167. }
    3 {2 o7 Y2 h7 E% ?0 g
  168. void dataRead(const String & data)' u+ b: W8 v" S0 W3 Q: h3 L
  169. {' u1 a3 J1 R3 h- Z  N! H6 R) x
  170.     BLINKER_LOG("Blinker readString: ", data);3 T# m! [$ _# s2 ]- N

  171. 5 {0 Q$ w  a( M9 k& t, L
  172.     Blinker.vibrate();
    % p1 `) k8 _% F. X* |
  173.    
    $ W# O$ L! Y1 [% E3 f& r- C' L
  174.     uint32_t BlinkerTime = millis();' T7 d3 m& W$ L2 e) y% }
  175.    
    0 [& X' ?$ @$ Y$ @3 O  G5 Q
  176.     Blinker.print("millis", BlinkerTime);" x7 v9 H( I( N2 P# h3 g, Q
  177. }' g- @! X' n! {7 `' ?/ U' M2 }
  178. void loop()
    3 c+ @+ y/ X# j3 b0 y& n3 O
  179. {
    7 \1 t1 H. b9 l& R8 f
  180.   Blinker.run();2 z. Y" S  R9 [) I, L  `3 v4 y* [2 X
  181.   if (digitalRead(key)==LOW)
    , V; h% I; w7 K' K" [. r% D+ t3 [
  182.   {
    1 c9 h2 E% t2 k  c+ i7 I" H& i
  183.     Blinker.delay(200);9 f9 m: Z# y# E" L! w  W/ V' g
  184.     if (digitalRead(key)==LOW)
    : O7 W- P3 t+ _* p& c* Q: p
  185.     {
    9 Y( s. W$ E+ X* ~6 g+ x+ x" j# @
  186.           if (digitalRead(kg)==LOW)% m0 K, P3 `2 N5 E& [2 M
  187.        {
    # {4 i# Q, X: B! ^, @
  188.             2 U: Z3 k" J, |3 q3 _9 |; N" d
  189.             digitalWrite(kg, HIGH);3 L1 J3 \1 {& r
  190.             digitalWrite(de, LOW);$ }+ a) W" h3 M1 q+ U! v& {/ i
  191.             Button1.print("on");
    - J3 V( u+ ~1 B0 A/ i
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色
    & p5 w! Q( r- ]
  193.             Button1.text("开启中");- `4 K6 R2 z: D: S/ [/ t
  194.        }
    7 x+ m7 N- O, \4 J  t
  195.        else if (digitalRead(kg)==HIGH)3 A; m* a" t. r. W  W
  196.        {
      ?' J/ ~: s3 S' u- r
  197.             digitalWrite(kg, LOW);
    - O  l/ ~" E2 N5 g
  198.             digitalWrite(de, HIGH);
    # v4 l! n) M$ F4 P8 T3 S! a: L
  199.             Button1.print("off");$ S; H3 I% ^: b; r; _1 w5 p
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色. ~, V8 H% y9 W3 f/ C8 T
  201.             Button1.text("关闭中");2 ]* P1 E' h5 |( U9 H# E
  202.        }+ \9 ^6 z( a* m* t! c2 K, q
  203.       }9 [/ H, u- z9 ~
  204.     }
    5 M4 u7 X4 E, F; y7 d9 v. H
  205. }
复制代码

8 w1 J) J, B* w& R( ]7 B. T, s  C2 M' ^) m. @- p3 m! d
我没有用卖家给的码,我自己写了一个,参考我前面的文章最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 https://bbs.nasdiyer.com/thread-18755-1-1.html4 q0 \5 `9 O% T- R& V
8 C  w( ?  g) \
把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。* P) n' S4 n7 Q! K; w( d! y
8 o7 G' k& K& L
0 H9 \( v! r6 j3 Z8 C, G( f

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
- A# c. m& X& L2 l买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

, D. d; b; H( R) M# [! P. _% g4 ?大力出奇迹呀

1

主题

8

回帖

257

积分

中级渣柚V1

积分
257
sevenup0719 发表于 2021-8-29 08:14:58 | 显示全部楼层 IP:–江苏–连云港 联通
a467913252 发表于 2021-8-24 15:53; \( p4 i* }8 h' Z+ }4 a
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

3 Z  K3 G0 a+ q' ?" j2 u昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

62

积分

初级渣柚V2

积分
62
QQ
a467913252 发表于 2021-9-4 23:05:22 | 显示全部楼层 IP:–湖北–武汉–江夏区 电信
sevenup0719 发表于 2021-8-29 08:14* x$ R- {/ N3 |9 h; [
昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...
& t0 G1 L1 J/ d8 P0 V% O' s
你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-5-10 10:16 , Processed in 0.072446 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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