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

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

[复制链接]

11

主题

51

回帖

209

积分

中级渣柚V1

积分
209
QQ
 楼主| 易记 发表于 2021-8-21 13:57:54 | 显示全部楼层 |阅读模式 IP:–浙江–嘉兴 电信
本帖最后由 易记 于 2021-8-21 14:05 编辑
* o  v6 Z0 i7 q3 f$ i
1 ^6 w  v2 \9 D+ H最近玩ESP8266,想做个天猫控制开关。) u: x3 Q, L: H# V
但是我很懒,一个个配元件嫌麻烦,于是想着能不能淘到便宜的带电源板的模块,多倒是蛮多,一般都要20多块钱。
4 a- x: U5 `4 W% h还是闲钱上逛一下看,找到一个联想的国外版8266智能插座,价格才8.5元一个。有一点不足,就是只有三孔,要是五孔的就好了。老板说五孔杂牌价格一样也有货,晚两天发布。( F5 A5 m6 {% W  z
QQ截图20210821125037.jpg ) F( J8 u1 p, d' G4 ~! [. }+ d
3 R- J) Y, L7 ]% U5 W
, Q2 ]0 p5 ~; O, ?% [0 Z8 l
问了一下店主,买20个一盒才包邮,想着20个还是有点多,买了5个,连运费47.5元。6 _+ o) X( \& G% P7 o
6 i) }1 o6 b4 P  R
QQ图片20210821124517.jpg 4 M8 G; a8 O, x
7 ?! r- E* A# k9 ^4 {

. U" V) ~% X! y5 c/ l; c$ k

, o1 m6 ^* e3 d/ v到手,当然是拆拆拆。
( F- n& z$ W- V5 o* a' |! Z' o IMG_20210820_134104.jpg
- s8 @. e+ L5 w
1 \% `( M3 O  n5 N

/ I* e3 @2 ~# z联想的做工,还是感觉不错的,光这个继电器应该也要个7-8块钱。, X2 _3 s' r+ C8 I. `
IMG_20210820_160634.jpg
5 y$ W" H- y, L& V# k/ l- t7 E) L' b

+ Z3 k) H: O8 {2 e% c继电器是两组常开,感觉要是接电灯双控开关是不是有点麻烦的,不过用于插座是很安全,要断二条线都断开。
! E1 B. Y- v& |3 ?4 Z* j QQ截图20210821133707.jpg
& u* i: D  w9 P
; v- v; f: H5 A# H* p+ U  U- Y
IMG_20210820_134114.jpg ' k- p3 k. r, T5 T- r$ l( C3 ?8 `4 I

; Z  J" @3 o5 y电源芯片0 O. d2 S" W# d$ M; S
7 |$ E2 k; L( P# H$ N7 {

5 \3 n3 u2 j0 M3 ^) ?4 F- j$ u* \; G

5 h0 h% W% `5 j* l' i% }. ?3 i8 K有一个按钮,按钮有二个蓝色LED灯) Y4 ^/ b8 |# t3 a8 _
IMG_20210820_134157.jpg 3 g9 F# k. G5 q& [

  a$ q& p) I( D" g( \# N9 h  |

+ Q1 W& z4 N  p* [& s6 t3 _# D- u8266
  Z8 i3 t% s! A+ z- C! n/ G0 G$ T IMG_20210820_141913.jpg " V- G3 b; y1 N4 N. {* r1 |# V

  M: Q& T- M9 |& x/ Z
3 s( ]: D7 _" ?4 P8 z! g

  A* ^+ m# O' T8 ^, }

( h. c  |( w( n接下来就是刷机了,版子上面都预留测试点。
1 I7 o7 @. m/ q6 A9 r接线比较容易,上面都有标示,GND,3.3V,TXD-RX,RXD-TX,还有一个就是IO0接地后刷机。( M- k: G* w$ j% M
未标题-1.jpg
5 X- A* e8 L  L+ w
注意RX这个点,就是3.3V边上的这个点,焊盘设计的就点问题,电烙铁热一点或是焊的刷机线过粗的话,容易掉焊盘。. @& E9 R7 U6 V8 e% u* x
要是掉了就只有一个过孔了,要是焊不上,只能再拆开接在另一面,所以为了避免不必要的麻烦,请注意一下。

- a% n8 |. |1 R0 v& b3 _% \: V8 G3 q3 u0 a

! w6 u5 ?! E: J3 }2 ^1 c. V

+ j) R9 p! Q* R# y, O$ n! u2 b) M; _$ N! b
* C: z$ s$ t) U$ ?  |+ u9 C
    5号脚位是继电器输出
3 u9 |4 G4 q5 b" Q. B+ X    12号脚位是灯输出5 L: }' r$ H* F
    4号脚位是按键

" H. ~6 r1 d$ V: R8 B% q
4 B% u# D; S5 ?
% f+ T; H6 C$ J* ^" }/ T6 o3 `

9 {6 c0 H& x( o7 }7 _' R1 ?9 O

% g' E& D  l) ~) i5 H; F, A卖家有发一个源码,如下
  1. #define BLINKER_WIFI                    //官方wifi协议库
    / Z# }; g$ _9 b$ D4 X
  2. #define BLINKER_MIOT_LIGHT              // 设置小爱灯类库
    2 B  k; Q5 @! A$ P8 [9 Z6 I
  3. #define BLINKER_ALIGENIE_LIGHT          // 设置天猫灯类库: w3 B, i# k9 a* B9 y) f
  4. #define BLINKER_PRINT Serial            //串口协议库. D. w: B) T/ ^! R0 K% u% D: T
  5. #include <Blinker.h>                    //官方库) ~) y) ~; w- w5 {' g: @1 U% p
  6. #include <ESP8266WiFi.h>                //官方库3 M; I* X0 l! t) Y" W1 ]* e2 x
  7. WiFiServer server(80);                  // 服务器端口号! M0 u  a/ y- K) w: ?8 a

  8. * G" m, e- U8 F- p7 Z
  9. char auth[] = "c4942fb1d5e4";     //设备key
    8 c4 Z( Z6 t! ?2 m" u! r4 d
  10. char ssid[] = "wanboshi";     //路由器wifi ssid
    0 B# a* u$ i* g: N0 f) l3 q
  11. char pswd[] = "1365662999813586348220";     //路由器wifi 密码5 a2 s0 g* p% p% Z5 F  p/ O

  12. 9 Z5 V, Y. q( I( ~" b) b9 t
  13. bool oState = false;
    7 Y, A1 @# w8 F+ V7 |
  14. ' N& F7 U# Z5 ?1 D5 q' U
  15. int kg=5;//继电器输出; i* ^: h* v$ t" I
  16. int de=12;//灯输出
    8 O7 }" M! I+ G- Z9 A! B
  17. int key=4 ;//按键' [* f5 ?2 W/ I9 T9 t0 g2 J
  18. //*******新建组件对象
    , c% \  ]% D, b" [5 t

  19. , [7 \4 R- B6 a* Z
  20. BlinkerButton Button1("btn-abc");              //设置app按键的键名9 f2 {# p! I9 K. d
  21. //*******app上按下按键即会执行该函数app里按键
    2 D+ q( ~  m# a% c
  22. void button1_callback(const String & state)
    ! {; @# k. {6 W7 G: _! ~
  23. {
    / u0 d+ `5 W  K1 _  C3 L" @$ ^/ }
  24.    if (digitalRead(kg)==LOW)
    * _) h0 `9 v- R7 v  X, E
  25.    {
    ; C8 n! B' d* D0 w$ _8 i* r* U
  26.         BLINKER_LOG("get button state: ", state);
    2 M, A3 O( G+ t! A' A7 }/ {
  27.         digitalWrite(kg, HIGH);# R, t  Z, `8 ^$ v/ I! o8 B
  28.         digitalWrite(de, LOW);
    " g( s6 j( {7 e# u3 w7 i
  29.         Button1.print("on");# V3 X+ |3 L7 _
  30.         Button1.color("#0000FF");              //设置app按键是浅蓝色1 }5 I8 A' [7 l1 M& r3 J
  31.         Button1.text("开启中");- l3 Z7 L+ G- a1 t# T
  32.    }# M! n6 e6 v6 M0 p$ I( P- K; s
  33.    else if (digitalRead(kg)==HIGH)# a& S2 k( G! H% [1 `! i! }! p
  34.    {
    3 T+ {  l8 y+ w+ E
  35.         BLINKER_LOG("get button state: ", state);# r$ U: K2 w8 B8 z% L" n
  36.         digitalWrite(kg, LOW);
    ' {) w+ M7 T" `5 g1 z3 d9 {2 M
  37.         digitalWrite(de, HIGH);
    - C1 Y  S+ U$ ]) h  E8 @
  38.         Button1.print("off");
    # {/ E; Y0 }( A, p
  39.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    % N. x5 A8 B0 D$ o
  40.         Button1.text("关闭中");& }, Z# d6 S. s& O2 g
  41.    }
    & u  x% w5 G  l
  42. }
    8 P. {* q3 w/ ~% o
  43. ; @' g  ]9 N3 }- M( y1 ]
  44. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    9 H. \! ?8 M* x  c

  45. * n4 L( p" ^$ _4 O! l$ M/ X$ |
  46. //*******如果小爱有对设备进行操作就执行下面
    # x  \$ ~, B# x/ N& C: [+ F
  47. void miotPowerState(const String & state)
    1 u/ f8 E$ B  d' W1 d4 H
  48. {
    + P3 x+ J$ b6 q6 Y# U
  49.     BLINKER_LOG("小爱语音操作!");              //串口打印& @0 p# s3 T0 X9 m9 n, R
  50.     if (state == BLINKER_CMD_ON){
    " [( h$ b) k" }. w8 j
  51.         % V; T8 D" _. U/ j1 E
  52.         digitalWrite(kg, HIGH);! b+ {  ?  e5 s3 o6 H
  53.         digitalWrite(de, LOW);# A% y  O. m, g6 |* Z3 `
  54.         Button1.print("on");
    + w( K$ C5 A# l! @7 t
  55.         Button1.color("#0000FF");              //设置app按键是浅蓝色
    % [! g0 W% t+ r. I1 @) e
  56.         Button1.text("开启中");
    : F! W5 g+ `, R* l3 A1 L
  57.         BlinkerMIOT.powerState("on");9 F* ~2 A7 h9 Y9 t9 N7 b
  58.         BlinkerMIOT.print();
    % R+ Q% a6 R# n
  59.    }0 W5 f1 g, n. y
  60.    else if (state == BLINKER_CMD_OFF)! {- s( T0 c6 m% h+ N: A) w& z
  61.    {0 c# \: ^6 u' }
  62.         9 D8 h" r) P, g' w, ~
  63.         digitalWrite(kg, LOW);* G( u1 Z* K4 p$ ?6 R
  64.         digitalWrite(de, HIGH);! }  h. J5 G- l0 o
  65.         Button1.print("off");
    ' D# q9 n9 S' \6 Q7 }4 G; B
  66.         Button1.color("#00FFFF");              //设置app按键是深蓝色, H+ K  s& r4 s" o
  67.         Button1.text("关闭中");* Y/ O+ O* q$ o9 q% ~; N9 ^
  68.         BlinkerMIOT.powerState("off");
    6 s3 ?, }( w0 \& m2 _
  69.         BlinkerMIOT.print();
    1 f9 s, p' f& D8 G
  70.    }
    # j" ]' k1 U) e* K
  71.       
    1 R2 G$ S+ b& f7 y! x! X6 W# p* U
  72. ' I, N& |9 y) g1 m5 A8 B# p5 e
  73. }3 D! x$ U+ M7 o5 y
  74. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    5 J$ V! z$ f( b+ A' ~% l; ?
  75. //*******如果天猫精灵有对设备进行操作就执行下面
    ( ?7 H9 }: x4 P/ ^* }
  76. void aligeniePowerState(const String & state)
    , v; u8 w! M0 P" J! ^
  77. {8 ]; v& U: x7 l, d% d, ]
  78.     BLINKER_LOG("need set power state: ", state);% e# N* W3 E- @7 E, S+ [
  79.     if (state == BLINKER_CMD_ON)7 [6 L. o  [. Z6 @2 c& ]1 S
  80.     {
    , @, q  f, T6 R! m7 u" D: @; c
  81.         
      O+ j# n& U/ a& i2 k! m
  82.         digitalWrite(kg, HIGH);
    , R; L! P& u1 N
  83.         digitalWrite(de, LOW);
    2 G# T* j) f9 l, h! `1 l
  84.         Button1.print("on");
    . R' c! ^8 [5 P& h& ?( O
  85.         Button1.color("#0000FF");              //设置app按键是浅蓝色0 ?# d! W& M7 w8 c: ^; B; u
  86.         Button1.text("开启中");) ]4 U9 r' @5 y, |$ ?$ }' x6 m
  87.         BlinkerAliGenie.powerState("on");
    $ [; `& Z+ _* J& F7 A; k: J/ F( o
  88.         BlinkerAliGenie.print();+ W2 P/ v$ j! y
  89.     }/ ^! h1 b0 }) B- H8 k; _
  90.     else if (state == BLINKER_CMD_OFF)- b8 O+ H. }8 C7 N) D4 k. q
  91.     {& z3 q: H/ G: d
  92.         6 u1 N, M) I5 \4 s+ y' X4 ^' \5 J
  93.         digitalWrite(kg, LOW);
      i- H- |8 m$ W; {* ^$ B
  94.         digitalWrite(de, HIGH);
    + K0 B: @$ N( ~
  95.         Button1.print("off");
    $ ^1 u" c$ j5 B( v4 g! S) N
  96.         Button1.color("#00FFFF");              //设置app按键是深蓝色
    - S9 w2 x/ `3 M  U. x
  97.         Button1.text("关闭中");. w+ V$ f, I- E- I% e) ^% A& e
  98.         BlinkerAliGenie.powerState("off");, F$ |* k$ M7 l$ `2 x( [2 k8 |
  99.         BlinkerAliGenie.print();, d1 x  e4 w9 w
  100.     }
      x4 z. }" x) r. o: e2 T. u
  101.         
    & T3 U+ V, g1 n: S5 H
  102. & G+ W% T3 S  d, F
  103. }
    - [1 ]% S. l3 X( s+ @; I( a, S6 P: u  k
  104.   //*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次
    ) m& h5 g3 \4 l3 n6 q5 _$ c9 w
  105. void heartbeat()9 @# N! M- k# h, {
  106. {" Y1 ?' O7 D* M" B# I& w
  107.   BLINKER_LOG("状态同步!"); 1 X/ c4 }' q! I3 I8 e
  108.    if (digitalRead(kg)==HIGH)
    4 C/ d: a% q/ h% |3 R3 I8 M/ {
  109.     { ' _7 d3 L3 M" S. p# X
  110.       Button1.print("on");
    2 C- |! a* \6 P. U' R2 N
  111.       Button1.color("#0000FF");              //设置app按键是浅蓝色
    6 ~6 D) [2 A8 \8 ~/ @
  112.       Button1.text("开启中");8 T5 Y$ ]3 F- u+ Y- R  s7 R
  113.     }( ~2 O9 C' N' P/ z9 D7 f9 U
  114.     else
    ; H  a" g* Q: s
  115.     {( n1 X, l2 I5 c3 Y# q) f8 V
  116.       Button1.print("off");
    4 T% ^; B% H% V0 C* l
  117.       Button1.color("#00FFFF");              //设置app按键是深蓝色
    , t; `! y! j$ X8 u* ~
  118.       Button1.text("关闭中");
    * F- E/ [* c  M$ v
  119.     # b) f0 V7 A6 o8 c& D
  120.     }. i. p* i6 k- S* p# _
  121. }
    3 l7 ~+ z" O" x4 p, }9 h. z; \" ?
  122. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++2 C. L0 Z9 l, o4 J* c
  123. void setup(), g$ G$ C0 P! ?& W+ f
  124. {
    8 U1 x. o9 M! A6 }
  125.   // 初始化串口
    0 g, U3 X5 K+ G8 E: b2 @; C
  126.   Serial.begin(115200);7 s0 g, i& d4 s1 `9 E) F' W
  127.   delay(10);
    1 ^7 i6 M' M5 d; }
  128.   BLINKER_DEBUG.stream(Serial);: Z1 I) r3 {4 S5 q3 Z4 X/ ^
  129.   // 初始化有LED的IO
    ' t  p6 q# ?6 l& ?+ Y% w: A! e
  130.   pinMode(kg, OUTPUT);                 4 a( ]# Q& l: v( I0 P2 `7 ]
  131.   digitalWrite(kg, LOW);//初始化继电器上电状态
    6 D5 `! u7 _9 Y- {2 o* T/ j* c
  132.   pinMode(de, OUTPUT);
    / ?* e# p2 M& K
  133.   digitalWrite(de, HIGH);
    1 ]0 A0 u' P+ {
  134.   pinMode(key, INPUT);            
    . f9 ?& b: D) {8 S/ Z
  135.   Serial.println();* D) P4 k  f! _! n; z# F9 P( L) M: `
  136.   Serial.print("Connecting to ");$ }4 G; `, i" F8 m9 L$ ~: N3 p
  137.   Serial.println(ssid);: ?5 r# A3 I$ M. T& T' t
  138.   WiFi.begin(ssid, pswd);
    # n( Y0 u5 z5 C! u! u9 V
  139.   while (WiFi.status() != WL_CONNECTED) {
    $ G$ [% w8 h3 `! T/ C6 G$ w
  140.     delay(500);
    * o2 p+ N) m) h3 S8 u1 {
  141.     Serial.print(".");7 x. _- `8 X3 c8 O) E! m
  142.   }
    " b! P4 N) F3 T1 e) l0 @
  143.   Serial.println("");) ?# K1 {* U4 w# E7 J& b6 F
  144.   Serial.println("WiFi connected");
    ; o4 S$ D5 Z/ d
  145.   server.begin();. M  d5 a7 L4 Y2 S
  146.   Serial.println("Server started @ ");: p  E; y- T' j' e: E
  147.   Serial.println(WiFi.localIP());
    4 F8 p4 S, @9 A' h) u0 O
  148.   //打印出IP地址,后期可以制作显示器来外部硬件显示ip/ S; C. p' Y+ W; _4 i
  149.   Serial.println("To control GPIO, open your web browser.");
    6 P8 S1 w4 T  @9 W  b
  150.   Serial.println("To set GPIO 0 high, type:");; g) L6 G4 j0 v# ]4 H! A% Q4 g
  151.   Serial.print(WiFi.localIP());
    ) J! T2 y7 G( N  \6 N# |* s
  152.   Serial.println("/gpio/1");
    - T% A' [( G! m
  153.   Serial.println("To set GPIO 0 low, type:");# |3 M  j& O/ ~7 m  y
  154.   Serial.print(WiFi.localIP());7 h! A' p* I5 q& e7 l
  155.   Serial.println("/gpio/0");3 Q1 r! E" T9 ]" K. O
  156.   Serial.println("To toggle GPIO 0, type:");" g0 j; ^# @$ F2 K& Q) R& c
  157.   Serial.print(WiFi.localIP());
    : c# |9 d- q& |) b) I6 V
  158.   Serial.println("/gpio/4");
    ! v  a1 X' |8 B2 M4 _: g* r- \

  159. ) E' m0 F8 f6 X1 ~  c; I* V
  160.   // 初始化blinker
    & r# ~. j& k0 a% d! i
  161.   Blinker.begin(auth, ssid, pswd);
    9 t7 L) }% H8 n' _
  162.   BlinkerMIOT.attachPowerState(miotPowerState);              //小爱语音操作注册函数
    5 h  F' p, A# \5 B% v
  163.   BlinkerAliGenie.attachPowerState(aligeniePowerState);      //天猫语音操作注册函数
    5 B5 m  p# s! P% y
  164.   Blinker.attachHeartbeat(heartbeat);              //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
    % B% h  X% X/ E, f% c* C5 U" p

  165. , r: h; i  j4 S
  166.   Button1.attach(button1_callback);             //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback
    ; B& F5 q$ X9 Z. E3 t! c4 M
  167. }3 \: B; K  h% i4 U. x4 O
  168. void dataRead(const String & data)
    - }* I9 O. Y/ m- N  G
  169. {
    7 Q6 F2 t( v' p1 ]& g) b, p
  170.     BLINKER_LOG("Blinker readString: ", data);
    & r8 L7 h! }/ D* x, y

  171. / M% Z) ^  c# W; Z' j5 j
  172.     Blinker.vibrate();4 o6 M; I. l" e! q% T
  173.     , P9 w. m7 c( ]' h' l- z
  174.     uint32_t BlinkerTime = millis();
    & F9 `# Z4 O- b" F5 Z( y! P# ?
  175.    
    ) W8 e/ X* ?9 f! n
  176.     Blinker.print("millis", BlinkerTime);
    - L$ D% d  k6 I, ?* d( l
  177. }
    ' w- T( g; K  |: ]" O+ T
  178. void loop()" V0 s: ?, z6 |
  179. {4 I4 f! J. U& K5 G; j
  180.   Blinker.run();
    3 |* w7 |+ I0 v/ t* q
  181.   if (digitalRead(key)==LOW)* f: T" |" v1 Q* W
  182.   {" N  z- N: w& T" j/ F9 i- a! ~
  183.     Blinker.delay(200);
    ! i' k$ K9 b, G
  184.     if (digitalRead(key)==LOW)
    " n. I8 G3 b# M7 e" J9 y2 L" J
  185.     {
    . o+ ]3 ]( A1 E8 A; t
  186.           if (digitalRead(kg)==LOW)
    & X* A; x) T4 P7 G
  187.        {# S2 Y! a9 I  k$ d. S2 f1 P$ Z# V
  188.             
    / e  b& Q0 H9 _( x% M
  189.             digitalWrite(kg, HIGH);" j5 u2 W6 L1 q+ v, A% O
  190.             digitalWrite(de, LOW);1 D. t; z7 g+ I% m7 S/ N- a6 c8 F
  191.             Button1.print("on");7 x4 i  X1 x3 w6 F8 U
  192.             Button1.color("#0000FF");              //设置app按键是浅蓝色( _2 g+ e% q6 k. r! h
  193.             Button1.text("开启中");' n" J0 C$ o: j% A5 l
  194.        }' \3 X$ w! x/ g( ]( e
  195.        else if (digitalRead(kg)==HIGH)
    4 }+ t6 T: j0 w9 l7 K
  196.        {% _* b; g5 ^( b- G7 ^) l5 h
  197.             digitalWrite(kg, LOW);, i; u0 M- v/ }
  198.             digitalWrite(de, HIGH);' v5 t3 z: C- J- r; M' f
  199.             Button1.print("off");
    ; {; F% k6 v9 U& ~& b
  200.             Button1.color("#00FFFF");              //设置app按键是深蓝色
    7 k8 V" R5 W, ^* \; z1 a
  201.             Button1.text("关闭中");
    1 k* y0 j0 D' P0 c
  202.        }
    * {/ R, h& ?/ t' m  p9 w# e! [
  203.       }8 b1 c1 G5 Q1 {* {- l3 ]) l
  204.     }% L2 c6 }3 R$ X/ D* q$ Q; c* N
  205. }
复制代码
5 d. E# p! u: l- D9 K4 B

; C* M$ Z8 Z) L" E* S我没有用卖家给的码,我自己写了一个,参考我前面的文章最简单的8266天猫精灵控制开关,点灯、Mixly可视模块化编程 https://bbs.nasdiyer.com/thread-18755-1-1.html
: h; n* z% S7 |7 u
- b2 u# g7 K6 J  R! Q; H把上面的2改成5,把高低电平对调一下就可以使用天猫精灵来控制你的这个插座了。我是把我的第一个插座放在了我的落地电风扇中了,当我慵懒的在沙发上刷着手机时候感觉有一点点热,我只要呼唤“天猫精灵,打开风扇”,就可以了。
4 ~( }& N2 ]; L) Z. t' U$ d7 ?1 S$ `& s8 C$ @, ^

, ]2 u: H) ?( F( f: J' J

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:536 l* O$ @+ J9 f. v3 n, g7 \8 ^
买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

( f% O! {6 J8 @$ s5 t% i' m3 t大力出奇迹呀

1

主题

8

回帖

257

积分

中级渣柚V1

积分
257
sevenup0719 发表于 2021-8-29 08:14:58 | 显示全部楼层 IP:–江苏–连云港 联通
a467913252 发表于 2021-8-24 15:53
7 M+ b" J% Q, f9 I/ A6 S+ R2 c买了几个   做工挺扎实的,但是外壳怎么拆啊  拿斜口钳拨了一个,   四个圆角的卡口根本没法正常拆 ...

+ t' T5 W/ K. M( P! p! V昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能

2

主题

11

回帖

62

积分

初级渣柚V2

积分
62
QQ
a467913252 发表于 2021-9-4 23:05:22 | 显示全部楼层 IP:–湖北–武汉–江夏区 电信
sevenup0719 发表于 2021-8-29 08:14. ~9 n4 C4 G! ]3 q7 N! o
昨晚拆了一个,废了老大劲,想和卖家说的无损拆下来,不拆个三五个积攒经验,基本不可能 ...
/ u$ ?* r8 F5 w  X4 l
你的搞定没  为什么我的根本没法烧录   连接不上,,用esp01s还没问题的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-7-30 05:21 , Processed in 0.079877 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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