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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 易记 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式 IP:–浙江–嘉兴 电信
本帖最后由 易记 于 2021-8-21 14:05 编辑 ) }; Q4 }/ T8 F# g. L' i
1 {5 \' t. n, Z+ L7 x2 }
最近玩ESP8266,想做个天猫控制开关。
( Q3 z! V( `) `8 E3 S2 t但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。: ?. a# R$ N& v0 @. ?
还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。& c9 d- h7 `$ I2 D2 O8 H0 z
QQ截图20210821125037.jpg ; D+ ^6 W, j8 P2 J
, N! ?9 m# C, d  L% G  j0 x" M
2 I+ v8 H4 u! O6 L
问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。' |5 \2 n9 l0 s# a

1 r, h+ x; r; g" X0 x QQ图片20210821124517.jpg - R! f* s7 Y3 ?
, K) z7 {/ l4 _7 z6 x

, P: t& X( q9 ?  ^6 A8 p

  p/ U& \7 x; K. N$ J6 t: H到手,当然是拆拆拆。
+ T0 S: H1 `& R+ i1 i) F1 {/ D IMG_20210820_134104.jpg
! I9 U  X& \% o5 ^% r6 j/ h2 F/ i. n+ M2 x
) r: N; x- C1 [/ X8 V9 \
联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。
* k6 w9 _2 i% v- @ IMG_20210820_160634.jpg 6 w" y& `+ p+ W( s/ p6 C# R# R
+ `6 s/ e- V6 P2 H# c; k1 ~7 O
% r8 ?/ N: D3 l3 W( B
继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。; w( i  _8 @5 C0 |& n
QQ截图20210821133707.jpg
' G3 u- u5 r1 R2 |& o- ]

9 a  a. v+ P+ K' k6 G- Q IMG_20210820_134114.jpg
" f/ j) C. Q9 ?" M, r# g9 V" X
* p' `9 u& Y" k% E5 K) N8 k5 |2 n# I3 @
电源芯片
$ x& }7 B3 Y& S4 _) ^! p- [- n( H# p1 f7 F1 L4 V. L7 \; }
8 h$ m1 u3 e5 y
2 Q- Z+ \' d' t6 e2 o9 U4 F
有一个按钮,按钮有二个蓝色LED灯5 O( A- X& _9 J$ E& X
IMG_20210820_134157.jpg 9 u$ b/ F1 E: R0 }  d9 U

- D: o7 h, S0 y$ c! h3 G
1 F* A# \: S/ E: V
82669 y% P; ?5 e: o- O. Y
IMG_20210820_141913.jpg " Z$ Q% N0 Z$ F3 v$ [9 A
: G: z+ I4 d( O

3 g, J9 O! X4 o- g. l/ F$ J+ u8 O7 H5 H% a

5 ~4 M& @  N9 o* f; u2 A" L) d接下来就是刷机了,版子上面都预留测试点。) e7 Q' z( M& G' E
接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。
) }/ M1 Z8 J! K 未标题-1.jpg
/ a8 K& H$ _3 ]. P
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。$ Z, c$ o2 @* f7 L9 l( r
要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。

5 L: u, \/ P- Z, J1 F) r  K7 }( G" z# l. K
0 I8 F( ~2 H7 ?3 {. [" p2 X- N: r
7 Q1 {+ |* \  d$ N/ v- j) f) q
; g# P2 o, @- x7 K

. S9 R% |& p* h+ j0 n3 q    5号脚位是继电器输出8 t/ j  z. j! T! p
    12号脚位是灯输出2 W. s) B3 m  w, f5 [) O! d
    4号脚位是按键

# D- F/ O3 [9 h, H& ?% m( k- G0 H0 U! T9 A; B
% a! I) B) P: `. I' M( q& T# S
" E5 }* z5 _% K' y3 H9 e) H! g0 v
% ]7 M8 \  o: x! S( T+ C3 s
卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库# F* {9 a- T7 k2 e
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库3 w8 G2 o/ a( a& x. R- s
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库
    2 t7 R1 O- v) q5 Q: j6 B5 H
  4. #define BLINKER_PRINT Serial            //串口协议库. ~# N& U9 C. Y6 B0 `
  5. #include <Blinker.h>                    //官方库6 R* R6 R! P7 [" H( x8 s
  6. #include <ESP8266WiFi.h>                //官方库
    5 H6 O# V2 _/ K  c. R! B0 ^- b
  7. WiFiServer server(80);                  // 服务器端口号+ m/ a% z  E# y& i2 t6 L+ r! ^

  8. 1 E. ?2 E9 V% }2 m) W
  9. char auth[] = "c4942fb1d5e4";     //设备key0 F+ |- j  u8 i2 G
  10. char ssid[] = "wanboshi";     //路由器wifi ssid8 z. I- \, Y/ U: R9 }& s; K: p
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码, F! N+ O! w7 g7 F
  12. 0 m- M7 N" L9 i' [! y/ q0 F. \) j
  13. bool oState = false;; m6 v# d% h+ K' _/ E; t+ i& d

  14. * X; H. ~/ a5 k0 W# g, j
  15. int kg=5;//继电器输出' `4 Y; L$ M9 G6 l! d! l
  16. int de=12;//灯输出
    5 ^5 ~& L8 o& x' z# L
  17. int key=4 ;//按键
    * g$ J) Y; `; m! \+ W( B  e
  18. //*******新建组件对象
    * s' c3 J( N) R6 L3 ]
  19. + [* J8 @% E5 g% a! S  ]7 R
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名- t3 N4 O1 p$ d
  21. //*******app上按下按键即会执行该函数app里按键/ l& P' [0 L7 Z5 s* J5 M
  22. void button1_callback(const String & state)
    1 b' f3 e9 z+ n
  23. {1 `! S0 t- W7 {- B+ P- V& ^
  24.    if (digitalRead(kg)==LOW)% O" F, U2 e2 w" K7 Q
  25.    {+ t9 S* P, t# I0 \5 H# `" j$ z
  26.         BLINKER_LOG("get button state: ", state);
    ' f3 A) t: ^$ s3 H4 T) {
  27.         digitalWrite(kg, HIGH);
    + G8 T0 ], ]4 F* |: Y
  28.         digitalWrite(de, LOW);# a; V# D( R& ^
  29.         Button1.print("on");4 f3 I2 x2 |, L# y: N+ r. X7 h
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色4 q% J8 v$ B6 f# ?, n
  31.         Button1.text("开启中");$ V9 P" P: _( [. ?7 X
  32.    }
    - M6 B: h# S1 [' i4 y& F
  33.    else if (digitalRead(kg)==HIGH)
      i4 y" i4 F$ L* L( v
  34.    {* j3 x8 s' s! l2 n( z
  35.         BLINKER_LOG("get button state: ", state);- J( Q, H& N0 o3 ~
  36.         digitalWrite(kg, LOW);
    ( K1 o0 L1 ~$ ?! g& o
  37.         digitalWrite(de, HIGH);
    ; K, L$ q9 \  h# F. Y; T3 X! O
  38.         Button1.print("off");
    3 ?3 o: Z5 s9 Q( W
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    - J" J; l- F5 H8 r  }. H
  40.         Button1.text("关闭中");
    9 N" `) `3 N; ^1 ?: M" m$ U
  41.    }4 Y& n) M. ]) o2 I% j
  42. }
    1 A% d; q8 G( f& v3 ^

  43. % ~2 t* v+ _' Q
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- z0 j; a" u) v% W

  45. 2 n% V0 E/ l. S" P& `  i
  46. //*******如果小爱有对设备进行操作就执行下面
    ! H) g. e5 F! C" I& J& e
  47. void miotPowerState(const String & state)3 s  B  W% b& H4 Q+ \
  48. {
    " f5 W# {* w0 @& Z
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印
    * E+ E! _( b0 ~  G
  50.     if (state == BLINKER_CMD_ON){/ P' n2 C6 S6 k4 v3 v5 l' u4 e" |% i
  51.         
    . K$ B# Q) A9 Q
  52.         digitalWrite(kg, HIGH);6 S2 U! j+ Y5 _$ r" r
  53.         digitalWrite(de, LOW);. L/ _, P6 |0 z* W+ g0 o
  54.         Button1.print("on");- ]& ]( m" B. ]" h. c, A6 o* i
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    + j  U6 x( ]7 j8 L# i$ K6 G
  56.         Button1.text("开启中");8 Y6 L% h- H! g8 e( K
  57.         BlinkerMIOT.powerState("on");
    : n" [9 @. }  v* G8 x$ u6 n
  58.         BlinkerMIOT.print();
    3 F# H6 ~" A! {5 T7 k3 N& N0 Q
  59.    }
    7 Q; N. a/ p6 o  ^# A5 o! e
  60.    else if (state == BLINKER_CMD_OFF)
    % N; |$ j9 v7 K4 R) e& v
  61.    {: |. A0 a2 f& p, e9 h2 q
  62.         5 R  f- |) \; n& m) [( C3 \
  63.         digitalWrite(kg, LOW);' U  B: q, n  k) G
  64.         digitalWrite(de, HIGH);8 h' u. w' Y/ k7 c8 F0 Q; x( w+ y
  65.         Button1.print("off");
    ' G1 d" e6 A/ ^( y. o5 Y
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色1 C* T2 W# l$ W: {7 F
  67.         Button1.text("关闭中");
    - `; K" k% n$ ~5 n/ c
  68.         BlinkerMIOT.powerState("off");
    % D+ e' ?+ t+ L+ O& u
  69.         BlinkerMIOT.print();) F- g5 g- M3 U/ @. E; O( x
  70.    }5 ]. _0 l8 o6 L
  71.        0 C6 l$ b+ S5 ]/ |9 s9 V0 L
  72. : Q! O" j. Y  v9 H
  73. }
    ) P. `/ k6 M1 @1 g2 c
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++! i# @/ S+ {8 R. N) ]
  75. //*******如果天猫精灵有对设备进行操作就执行下面" ]  _& D: H0 L& n
  76. void aligeniePowerState(const String & state)
    8 ^: |8 e8 O% j8 S$ T# E
  77. {8 }% m: i& u8 J1 s8 O0 N3 T7 f
  78.     BLINKER_LOG("need set power state: ", state);
    & t4 c$ W' y. Y# x! p* v
  79.     if (state == BLINKER_CMD_ON)
    0 L3 P9 B6 e: h' A/ ~, T! i0 q# c
  80.     {5 s1 u% b. ~# s% ]/ A8 g& k( e" R
  81.         
    # n: b! c  ~, Z! w4 ~* o
  82.         digitalWrite(kg, HIGH);
      H; ?' `. W$ w. ^- I
  83.         digitalWrite(de, LOW);
    2 f( E; I3 v. ~% G  m
  84.         Button1.print("on");, o; ]( I8 g: O( F0 E/ Q" \- s
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    % y( h  T$ P9 t" ?7 d
  86.         Button1.text("开启中");7 X* |; h5 l  ~5 a1 t3 J. g4 E! b3 U
  87.         BlinkerAliGenie.powerState("on");
    4 T! H9 D, A" i" p' w
  88.         BlinkerAliGenie.print();; I6 q6 S! }  t/ k- \6 H4 w
  89.     }
    , l0 j6 b" v6 P1 E+ ~; I
  90.     else if (state == BLINKER_CMD_OFF)
    7 K  u+ h6 g# q2 C- W4 w
  91.     {# @. l* i. D$ e' h) p7 {
  92.         
    , G: B' r, t6 E0 ^! n0 e& \
  93.         digitalWrite(kg, LOW);
    8 E4 [6 `& K, ~0 G+ }6 a9 ^
  94.         digitalWrite(de, HIGH);
    1 l/ u* E+ Q( _) p. l/ I( k( z
  95.         Button1.print("off");
    3 C6 J+ J+ u8 v! L" ?$ [% T
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    - I) Y$ G( |- e2 s( p. `
  97.         Button1.text("关闭中");
    1 {. ?7 `( O. m3 V1 y; |# r( R
  98.         BlinkerAliGenie.powerState("off");, v8 s3 P! ]: d$ t  a
  99.         BlinkerAliGenie.print();6 j( K% F% T1 e7 H! M
  100.     }
    # a5 ?+ N: Y$ {% O# ?: I" h
  101.         5 o& g$ E$ H3 a$ O5 h

  102. 1 N- @- D# `# h4 }0 ?6 y, r
  103. }
    3 b, h* B! h4 R& C
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次2 D( |( v( E5 g* W7 q% f
  105. void heartbeat()
    : s! N  r9 B6 @2 A
  106. {+ H) K8 d7 {1 F$ f1 g
  107.   BLINKER_LOG("状态同步!"); # B# N+ G7 ~' K5 O/ |
  108.    if (digitalRead(kg)==HIGH)
    2 P8 }4 R5 P" L2 z, N
  109.     {
    ! E6 a/ V- c$ Q4 c: [
  110.       Button1.print("on");
    7 n; J& C4 C4 U
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色
    , u7 q1 N" z5 g" P* X) H
  112.       Button1.text("开启中");& h" K& V/ d2 }
  113.     }1 g7 H# M6 Q, m$ Y. ?' A! W7 K
  114.     else : H  `* t' g5 X1 z4 w* q
  115.     {
    0 U. V2 C, I3 j& n; d
  116.       Button1.print("off");
    ) t7 x" }( r* Z4 k$ q
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色6 G3 p* D2 E7 X
  118.       Button1.text("关闭中");
      d7 q4 v2 N; a- i+ o6 {
  119.     1 W. B: c2 E5 Q/ g& o4 ~
  120.     }9 o( E& X' H6 e, j, L
  121. }
    ) j) g- E( }, D3 _
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/ f: Z9 q$ C, L1 C( |
  123. void setup()2 u( w7 O  d* g/ r+ k
  124. {
    2 t4 M# ^8 U+ b2 c7 f0 X& U
  125.   // 初始化串口! R* @' {4 ~, w5 q; ]) v' N
  126.   Serial.begin(115200);' E) E$ k& ]; n- `, \6 J% {' K- }
  127.   delay(10);  |" z8 V6 S5 c' R  a
  128.   BLINKER_DEBUG.stream(Serial);  _  P! b6 I3 w- z( E& l
  129.   // 初始化有LED的IO: x  I( {$ `; \+ a4 x, ]( M
  130.   pinMode(kg, OUTPUT);                 3 k% Q2 }1 y( n, k2 O+ n0 x
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态 & a4 n4 f! s3 I0 J6 y
  132.   pinMode(de, OUTPUT);" @, I7 i- z& q5 T* q, K2 f3 w9 N3 \
  133.   digitalWrite(de, HIGH);6 C8 o  Q( g$ E2 |0 X* E/ e
  134.   pinMode(key, INPUT);            7 d, _1 [# O# U: S
  135.   Serial.println();% f* ^' O# j! w8 V8 r& z, e6 O: p
  136.   Serial.print("Connecting to ");3 Q( \% y1 n& H' s
  137.   Serial.println(ssid);
    ' A! h) _+ P. L  q. A( L8 U
  138.   WiFi.begin(ssid, pswd);. w1 _  U' P9 _. {8 S  L
  139.   while (WiFi.status() != WL_CONNECTED) {
    $ T* O  u% _5 R+ Q5 r
  140.     delay(500);* l: U6 |+ S0 B: L8 E1 X
  141.     Serial.print(".");2 X$ Q- w/ j0 m; D7 Y
  142.   }
    8 p8 S0 f, b$ R) V) G* J
  143.   Serial.println("");
    5 F) z5 X4 Y  q% |% Y0 F$ C
  144.   Serial.println("WiFi connected");
    7 H3 [. e/ X1 g; u
  145.   server.begin();! ^2 }, U* ?6 {& Z: y
  146.   Serial.println("Server started @ ");+ F8 _- B- m9 J& f' }, N
  147.   Serial.println(WiFi.localIP());
    / D9 W" e" i4 H
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip0 ?$ |2 {: ]( I# {- [0 Q4 i) z/ Z
  149.   Serial.println("To control GPIO, open your web browser.");
    $ C. C4 R) S0 t4 Q. q
  150.   Serial.println("To set GPIO 0 high, type:");
    ! B  ^' |& p* z1 ~9 l1 C( `
  151.   Serial.print(WiFi.localIP());
    0 p6 N3 w9 y1 y( G0 k# r
  152.   Serial.println("/gpio/1");
    & ?% a) ~0 G4 ~( B: i# K' g; p
  153.   Serial.println("To set GPIO 0 low, type:");
    7 A0 r- B- T3 [. w8 k; a" z
  154.   Serial.print(WiFi.localIP());& a: E+ M5 |' ?& L3 O
  155.   Serial.println("/gpio/0");. F5 \6 U# J0 b/ b5 {
  156.   Serial.println("To toggle GPIO 0, type:");
    * \4 k4 X/ o5 N6 ~9 _
  157.   Serial.print(WiFi.localIP());, b  Z( {8 h8 o
  158.   Serial.println("/gpio/4");
    + c' I& @* z$ C

  159. ; i1 p. Y! V' f. E  `
  160.   // 初始化blinker' z2 W% t" y% |4 n4 B7 _; Z
  161.   Blinker.begin(auth, ssid, pswd);
    % ^, W! ?  T4 S9 e+ \" q
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数9 T! L! x) @1 S+ L' z8 w$ L
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数5 `/ \1 c: W* a8 }- W' x; Q
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
    2 ?- F' h0 d9 y8 T; ?3 L

  165. 5 [1 N* z2 n+ n% y/ N! G; ~
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback
    ; I. H; j7 W$ }: p/ ?& g
  167. }% B$ v: x! ~- P: M
  168. void dataRead(const String & data)
    8 K6 z! v) Y- B2 C/ E
  169. {" s! _' |* K* J" _
  170.     BLINKER_LOG("Blinker readString: ", data);
    ' o% v6 q, n! c7 u& B

  171. ! x3 n2 e- E, u% k
  172.     Blinker.vibrate();- t  ~, }9 u3 h# e5 n0 J
  173.    
    : c' W* f3 W- S/ B8 [
  174.     uint32_t BlinkerTime = millis();% a" F1 K  y6 X& m; X
  175.    
    3 B6 Y/ ~/ s3 M" \- u4 ?
  176.     Blinker.print("millis", BlinkerTime);3 S4 L$ s" x( I" ]- x+ d% Y9 O$ }
  177. }) x4 |2 F! s  g
  178. void loop()# I; J/ X' |+ u9 O# m, Y0 u+ r$ T
  179. {
    3 j1 `2 U5 L4 x& }
  180.   Blinker.run();* f' _  _& E; q
  181.   if (digitalRead(key)==LOW)9 D1 u: h9 J  |0 }5 _
  182.   {
    6 j" V4 N% ?: X
  183.     Blinker.delay(200);( ~# G! |0 H9 p8 J* w
  184.     if (digitalRead(key)==LOW)
    5 Q( }5 n5 I! s
  185.     {* W% e( Z& h  ~
  186.           if (digitalRead(kg)==LOW)  U& K' B9 D) ~) A5 S8 I
  187.        {
    7 U) [! r# Y# S! [( G, G4 s8 ?6 e
  188.             0 ]0 [+ h7 p  T" `& v
  189.             digitalWrite(kg, HIGH);
    + A. f3 \% y  u+ ]6 R9 n
  190.             digitalWrite(de, LOW);* ]! a4 s9 _, @
  191.             Button1.print("on");
    7 j4 B% J3 |1 A4 L& X. A. e* I# L
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色
    " V# o2 `) ^! }1 S. _  f
  193.             Button1.text("开启中");
    6 K* s0 T. Z2 n: c, B$ x% {
  194.        }
    0 m+ ]: W- @% Q
  195.        else if (digitalRead(kg)==HIGH)
    1 b. D' U7 g4 i/ @1 X% x' |
  196.        {
    % d; x4 e" G1 T: }2 N6 k
  197.             digitalWrite(kg, LOW);
    6 `7 n3 c5 W9 Y) _% C
  198.             digitalWrite(de, HIGH);# U9 S0 o4 s; }+ p6 C
  199.             Button1.print("off");* g! Q% I5 c0 @
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色& I5 B$ \( r  m8 ?
  201.             Button1.text("关闭中");( ~$ _+ G" \# |/ V2 R
  202.        }6 y7 o' ^: u/ J8 e& [
  203.       }
    , O9 R! b7 L5 \  g
  204.     }' I3 q% k* M: {: X) I+ s, w4 ]
  205. }
复制代码

6 M) \! T1 S- y, Y' W/ E3 n$ k" ^/ h' O6 B8 ]1 b! R
我没有用卖家给的码,我自己写了一个,参考我前面的文章 《最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 》https://bbs.nasdiyer.com/thread-18755-1-1.html
0 b' z  k; Z7 x+ K' X5 D! X. s/ q9 Y* i
把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。
1 L! s# g: @3 F$ d1 }$ g; I3 Z$ C
+ h' q/ _( d5 m/ P/ U7 d2 c
' o+ j' }7 t1 U/ q' q

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
" b( W: }) i, n' D" v" \买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

! p$ n$ T/ Z' z6 r& e. s大力出奇迹呀

1

主题

8

回帖

257

积分

中级渣柚V1

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

/ i* E8 d1 s& Q7 ~0 Z% U昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

63

积分

初级渣柚V2

积分
63
QQ
a467913252 发表于 2021-9-4 23:05:22 | 显示全部楼层 IP:–湖北–武汉–江夏区 电信
sevenup0719 发表于 2021-8-29 08:144 {* i  Q, j1 @9 v8 `! E  ?: ?
昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...
1 _0 Z* G4 o" O( k# N0 Y
你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-9-28 15:04 , Processed in 0.060387 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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