---
# System prepended metadata

title: 遙控開關

---

遙控開關
===

## 目錄
[TOC]

# 團購表單

[google表單](https://forms.gle/Ajyf9AAQ7n7bMr7b6)

其實我也不知道有沒有人真的要啦，反正先做個表單統計一下，如果超過一定的人數再來開團(?

## 準備材料
1. ESP-01 ![image](https://hackmd.io/_uploads/ByiEkDfhp.png =20%x)

3. ESP8266 USB轉接燒錄板 ![image](https://hackmd.io/_uploads/Hy_ElvM2p.png =20%x)

4. SG-90 伺服馬達 ![image](https://hackmd.io/_uploads/BJaIxvM26.png =20%x)

     ★ 注意伺服馬達的線顏色都是固定的，分別是訊號(橘)、VCC(紅)、GND(棕)

4. 杜邦線(買公對公跟母對母的就好) ![image](https://hackmd.io/_uploads/ryY5eDznp.png =20%x) 

6. 供電的東西(插座、電池盒、行動電源)
7. 麵包版(如果打算直接插USB，不接電池的不用買) ![image](https://hackmd.io/_uploads/Sk4ZWwz2T.png =20%x)

8. 裝飾小物(不然陽春的很醜)
9. 爸爸或有機電基礎的 ( 工 ) 朋 ( 具 ) 友 ( 人 ) 

- Ｑ：哪裡買?
 Ａ：蝦皮、電子材料行、學過Arduino的朋友家裡
 
 ## 動手前的小提醒
 建議看完再決定要不要動手
 
 1. 這個懶人小物會吃電，所以要馬附近要有插座，要馬要準備電池組或行動電源供電
 2. 因為用的是esp8266webserver庫，所以要使用的時候是要在同一個網域下才能使用，並不能實現 真•遠端操控 (至少要在同個房子收到同個WI-FI)
 3. 如果不裝飾真的很醜!!!!!!!!!!!
 
 ## 教學
 
 ### Arduino (學過基礎的人可直接從目錄跳到下一步)
 1. 下載[Arduino IDE](https://support.arduino.cc/hc/en-us/articles/360019833020-Download-and-install-Arduino-IDE "下載YA面(○'◡'○)ﾉ")
 ![image](https://hackmd.io/_uploads/H1gv2MG26.png "不是點圖片的下載啦")
 基本上就是 我同意 -> 下一步 -> 下一步，就安裝好了
 
 2. 下載ESP8266 USB轉接燒錄板的晶片模組，但注意的是ESP-01的轉接板有兩種晶片!
- [CH34X](https://www.wch.cn/download/CH341SER_EXE.html)

![image](https://hackmd.io/_uploads/HkvrzIzna.png)
直接點那個又大又藍的按鍵就對了


- [CP210X](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads)

![image](https://hackmd.io/_uploads/S1JCZLznp.png)
選擇CP210x Windows Drivers


 3. 將ESP-01跟轉接燒錄板組合，插上電腦(不要用USB延長線，可能會辨識不到)
 ![S__192184322](https://hackmd.io/_uploads/SJgZyUMhp.jpg "Do Re Mi So~~" =70%x)


 4. 打開裝置管理員 -> 連接埠 -> 查看剛剛插上去的USB在哪個COM幾，記下來 (我的舉例的話就是COM6)
 ![image](https://hackmd.io/_uploads/HkEmkIf3a.png)

 5. 接下來就是打開Arduino做環境安裝了!
        
檔案 -> 喜好設定

下面的 其他開發板管理員網址裡面加上下面這行
http://arduino.esp8266.com/stable/package_esp8266com_index.json
確定☑️


工具 -> 開發板 -> 開發板管理員
        
![image](https://hackmd.io/_uploads/HkoEm8MhT.png)

搜尋8266，並選擇ESP8266

![image](https://hackmd.io/_uploads/rk8HXUG26.png)

回到工具 -> 開發板 -> 出現esp8266 -> 選擇 Generic ESP8266 Module

![image](https://hackmd.io/_uploads/SyqUQIMnp.png)

最後工具 -> 連接埠 -> 選擇第四步驟中看到的COM

![image](https://hackmd.io/_uploads/S17vmUM26.png)

恭喜這樣Arduino就設定好囉ヽ(〃'▽'〃)ﾉ

### 程式碼

可以不用搞懂直接複製貼上，但是其中的網路名稱跟密碼一定要改!!
不然連不上網路就白搞了

Wi-Fi名稱跟密碼在第14行

==wifiMulti.addAP("你的Wi-Fi名稱", "你的Wi-Fi密碼");==

```c=
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WebServer.h>
#include <Servo.h>

Servo Servo1;
ESP8266WiFiMulti wifiMulti;
ESP8266WebServer esp8266_server(80);
 
void setup(void){
  Serial.begin(9600);
  Servo1.attach(0);  //給伺服馬達綁定一個接腳，我這裡舉例用0
 
  wifiMulti.addAP("你的Wi-Fi名稱", "你的Wi-Fi密碼"); // 這裡需要輸入你家的Wi-Fi名稱跟密碼，裝置啟動後會掃描當前所有網路，並查找有沒有這裡列出的Wi-Fi ID，如果有就會嘗試用你在這裡儲存的密碼去做連接
  //wifiMulti.addAP("你的Wi-Fi名稱2", "你的Wi-Fi密碼2"); //如果家裡不只一個網路，可以輸入多個，但要記得手機也要連到同個網路才能操作，需要的話自行把最前面兩條斜線刪掉 
  Serial.println("Connecting ...");                           
  
  int i = 0;                                 
  while (wifiMulti.run() != WL_CONNECTED) {  
    delay(1000);                             
    Serial.print(i++); Serial.print(' ');    
  }                                          
  
  // Wi-Fi如果成功連接，會在序列埠監控窗輸出中顯示成功訊息
  Serial.println('\n');
  Serial.print("Connected to ");
  Serial.println(WiFi.SSID());
  Serial.print("IP address:\t");
  Serial.println(WiFi.localIP());           // 這個IP很重要，一樣會在序列埠監控窗中顯示
 
  esp8266_server.begin();                           
  esp8266_server.on("/", HTTP_GET, handleRoot);     
  esp8266_server.on("/openLed", HTTP_GET, openLed);  
  esp8266_server.on("/closeLed",HTTP_GET,closeLed);
  esp8266_server.onNotFound(handleNotFound);        
 
  Serial.println("HTTP esp8266_server started");//  出現這行代表網路功能成功啟動
}
 
void loop(void){
  delay(100);
  esp8266_server.handleClient();                     
}
 

void handleRoot() {       
  esp8266_server.send(200, "text/html","HI");
}
 

void openLed() {                          
  
  Serial.println("open");
  Servo1.write(0);        //開燈的角度
  delay(1000);
  Servo1.write(45);       //閒置時的角度    
  
  esp8266_server.sendHeader("Location","/");          
  esp8266_server.send(303);                           
}

 void closeLed() {                          
  
  Serial.println("close");
  Servo1.write(100);        //關燈的角度
  delay(1000);
  Servo1.write(45);        //閒置時的角度 
  esp8266_server.sendHeader("Location","/");          
  esp8266_server.send(303);                           
}

void handleNotFound(){
  esp8266_server.send(404, "text/plain", "404: Not found"); 
}

```
這邊打完先不要按上傳，我們先來把線接好

### 接線
有兩種接線，自己選擇自己合適的
#### 用燒錄器當USB充電

這種的接線比較簡單
![image](https://hackmd.io/_uploads/SkL5wvGhT.png)

通常燒錄器後面都會有接腳的對應說明，照著接就好了
![EBD0042B-46CC-4377-86D3-96656CFE41D9](https://hackmd.io/_uploads/ByuADwGha.jpg =70%x)

接完線之後只要把USB插到插頭或是行動電源後就
Do Re Mi So (∩^^ᴗ^^)⊃━☆ﾟ

{%youtube W0EC6qbLp1I %}




#### 使用電池

這種的接線比較複雜，需要另外接麵包板比較方便

![image](https://hackmd.io/_uploads/HyktJ_z3a.png)
Tinkercad沒有esp8266，小畫家又不太好畫畫請見諒( ´•̥ω•̥` ) 
大致是來講就是麵包板中每一個橫排的五個動都是相通的，左右兩邊是不相通的哦！
簡單來說就是
- VCC 接 紅色線 接 正極
- GND 接 棕色線 接 負極
- GPIO0 接 橘色線

這樣接完後，因為用串聯的方式所以電壓會是 1.5V * 3 = 4.5V
但是ESP-01 可承受的電壓為3.3 ~ 3.6V，所以再加裝個電阻比較能延長壽命
這裡就先不示範了因為我家沒有三組入的電池盒

### 上傳程式碼

好，現在我們回到Arduino IDE，因為我們要實現手機控制，所以我們必須在上傳程式碼前先把序列埠監控窗打開

![image](https://hackmd.io/_uploads/ry-aIuz2p.png)

點完放大鏡後會發現下面除了輸出，多了一個序列埠監控窗

![image](https://hackmd.io/_uploads/H1uZwdM2T.png)

這個時候再點擊上傳，就是那個 -> 箭頭的符號
    ★ 注意上傳的時候伺服馬達一定要接在上面，不然你會發現監控窗會是空白神麼都跑不出來

如果上傳後，點進監控窗有跳出下面的資訊就代表你成功了!

![image](https://hackmd.io/_uploads/HJ43DuMhp.png)

其中 Connected to XXXXX(會是你的網路名稱)
IP address後面的數字是你的ESP8266的IP

### 上電後控制

1. http://192.168.1.142/openLed
2. http://192.168.1.142/closeLed

上面是開燈的網址，下面是關燈的網址

**192.168.1.142** ⭠ 這個部分要改成自己ESP8266的IP，你連我的也沒用你關不到我家的燈 σ ﾟ∀ ﾟ)σ


理論上到這裡就告一段落了，接下來是如何用手機控制

### iPhone 捷徑
這個直接上影片示範

{%youtube YUmenaNOvCQ %}


### Android 捷徑

先道歉我沒有用安卓的朋友 <(＿ ＿)>
期待有人可以看完iPhone的之後知道Android怎麼設定，然後願意跟我分享我再跟大家說

## 注意點

1. ESP-01 可承受的電壓為3.0 ~ 3.6V，通常會使用3.3V去做供電，但落在這區間都算OK
小於這個值的可以試試但有可能會跑不動
大於這個值的就不要用了，特別是很多行動電源都是5V供電，會燒壞8266，所以用之前最好先看一下後面的供電電壓

2. 在固定伺服馬達之前，先讓他跑個幾次確定開關有沒有反，一開始沒有測試的話，固定後要在改就很麻煩了

    建議是在板子通電、手機設定完後先按按鈕確定開關燈、閒置角度合適再上牆
    最好是在馬達在閒置的狀態下去把手臂平行裝上去，再看開關燈角度去做微調



