---
# System prepended metadata

title: '20210731 伴伴學 x 官帥: 官帥陪你聊基於ESP32 BLE2 WIFI智能網關(上)'
tags: [活動共筆]

---

---
tags: 活動共筆
---

# 20210731 伴伴學 x 官帥: 官帥陪你聊基於ESP32 BLE2 WIFI智能網關(上)

簡報: https://drive.google.com/file/d/1PS8JkcHu9HgpNEXoI9e6fOH_NTHfVqS3/view
[程式碼](https://drive.google.com/drive/u/0/folders/1Ru6BPqLM_zhPnp8A8dQHZ2Xtd44KoN9P)與[外殼設計](https://grabcad.com/library/esp32-ble2wifi-gateway-1)在簡報內也有

烙鐵 8586，個人習慣設定溫度約在300-320，對元件較舒服的溫度，且內建霍爾開關，烙鐵&熱風槍放置架上，內建霍爾感測會自動關機
烙鐵焊接時先碰接腳，再把錫靠過去。機板與被焊接物都要加熱，這樣焊接的錫才會飽滿
焊接固定焊接物好工具-萬用黏土，方便固定PCB板、零件、...等
烙鐵頭表面若有沾錫，不要用沾水海綿，會傷害烙鐵頭
焊接完成記得關烙鐵，不然也會燒掉
![](https://i.imgur.com/tQWvhUJ.jpg)

ESP32的ENABLE要上拉，為了一鍵上傳使用，接一顆47uF電解電容
正常電解電容有方向性，白色的部分是負極
電容上會有寫電容值與電壓值，電壓表示耐壓，使用過程不要超過耐壓就不會爆掉
焊接時注意因為鐵殼接地很大片，所以建議焊地線時可以調高到310度並放久一點

接點焊接完成後可以用卡夫特矽膠封住接點
>卡夫特膠
>產品用途： 本品具有良好的粘合性和耐冷水性，用於粘接、密封、絕緣、防潮、防震材料，廣泛應用於電子元件、半導體材料、電子電器等設備的粘接、密封，電加熱器、電子儀表的防水、密封及電子元件的灌封等。

LED燈條有三條線，紅色接+5V，白色接訊號線(PIN13)，黑色接地。為簡化焊線用最左下三隻
燈條接ESP32左邊的VIN，電壓會跟USB電源進來的一樣

不會流鼻水的熱熔膠槍:G-250 (今天推薦的設備都沒有業配，純心得)

外殼黏接的膠是3M黏手機螢幕的黑膠，膠本身有彈性，繞著底殼外緣走一圈即可
底殼有留一個壁掛孔，方便直接掛到牆壁上。且底殼中央有墊高方便貼合

選用的ESP32沒有排針，若拿到的ESP32已經焊了排針，建議剪掉
ESP32與底殼用熱熔膠貼合，電容若凸出外殼可以反折，只要不短路就好

燈條貼在外殼上方，貼上後為了避免會拉掉，建議外圍補一圈熱熔膠固定
外側燈條露出的凹槽也可以用熱熔膠填滿，表面就會很漂亮
若熱熔膠表面不漂亮，可以用吹風機加熱
燈條的線沿著外殼內側繞回去，可以避免影響天線收訊

智能家居會是帶狀分享的內容，Home Assistant功能強大，後面會有更多分享
這次的網關是負責收集資料，不負責SENSOR

這次的燈條用1米60燈的，黑色與白色只有底板顏色有差。買回來自己剪

USB接上電腦後可以看到CP210X，沒有看到的人需要裝自行裝驅動程式
連接完成後開啟LedStripTest.ino
程式內容已經改好，Arduino板子選好Esp32直接燒錄就可以
確定LED沒問題以後改開啟20210717063000XiaomiFloraPlant.ino

用手機開起藍芽功能，準備開始掃描BLE裝置
手機掃瞄到手上的BLE裝置後會顯示裝置的UUID，把UUID輸入Flora程式碼

題外話: Home Assistant建議安裝Duck DNS與Samba share
左側選單 -> HACS裡面有很多外掛功能
ewelink、IKEA、小米也做了HA的外掛，若有買的也可以整合進來

HA的功能大部分都稱為platform，與用的語言是YAML。要注意YAML很注重空格
若手上有ESP CAMERA也可以整合進來，甚至有支援RTSP、MJPEG的CAMERA
設定範例可以直接上網搜尋，怕格式跑掉可以直接複製再來改

Home Assistant -> ESP Home
從SUPERVISOR進入安裝，安裝完要按啟動，啟動完會顯示在左側選單
不建議開啟自動更新，有時會有BUG

STEP1:
把網關接到樹梅派的USB
右上角應該會顯示USB裝置，選擇後按+(新增裝置)
任意取名，Device Type選Wifi module，再輸入WIFI帳號密碼
設定完可以進入EDIT，有簡單的設定內容可以參考
直接點UPLOAD測試是否可以正常上傳
HA上傳後會自動把ESP32的AP功能關掉，並開啟OTA的功能

STEP2:
修改 esp32_gateway_test.yaml
這邊會用到BLE TRACKER與TEXT SENSOR
PLATFORM為BLE_RSSI


* YAML
 /config/configuration.yaml
 platform: scrape
 可在想抓取網頁上的"資料"
 安裝[Web Scraper - Web Scraper - Free Web Scraping](https://chrome.google.com/webstore/detail/web-scraper-free-web-scra/jnhgnonknehpejjnehehllkliplmbmhn/related?hl=zh-TW)外掛
 可截取網頁上的資訊 ex: 股票資料、流量、點閱人數、...etc

>- platform: scrape
    name: 台積電2330
    resource: https://tw.stock.yahoo.com/q/ts?s=2330
    select: '#detailTable td tr:nth-of-type(2) td:nth-of-type(5)'
    headers: 
        User-agent: Mozilla/5.0

* Node-RED
 MQTT
>Node-RED 是 IBM 以 Node.js 為基礎，開發出來的視覺化 IOT 開發工具，因為純粹透過流程圖的方式工作，所以不需要會 Node.js 也可以透過 Node-RED 完成許多後端才能做的事情。

* LINE Notify - https://notify-bot.line.me/my/
 LINE - 建立群組"TEST"
 發行權杖
 選擇接收聊天室 - "TEST"
 產生 Token (要好好保存，否則要砍掉重建)
![Example code](https://i.imgur.com/l81qLp1.jpg)

* Duck DNS 
```
lets_encrypt:
  accept_terms: true
  certfile: fullchain.pem
  keyfile: privkey.pem
token: 
domains:
  - louisguan.duckdns.org
aliases: []
seconds: 300
```
----
## Q&A
* 請問外殼是怎麼拆開…有黏住嗎？
  Ans : 外殼黏接的膠是3M黏手機螢幕的黑膠
  
* 請問燈條是買回來自已採剪的嗎?
 採剪時注意什麼?
 LED賣廠上有3個版本，要購買那個版本?
 Ans : 是的。買一整捲回來剪裁。60顆LED/米。
  ![](https://i.imgur.com/KUYBAIG.jpg)

* 為什麼不使用樹梅派來應用呢？
 Ans : 樹梅派本身是有BLE的，但是因為在實作時不可能把SERVER到處放，所以會做便宜輕量的網關取代

* 請問led是買 裸板  滴膠  套管  那個一版本?
 Ans : 不會碰到水的話，買裸板就行了。需防水則購買滴膠or套管。

* ESPHome 能做output動作嗎?列如用node red去改變led的顏色
 Ans : 可以的。

* 請問在ESP32上焊接一鍵上傳的電容，是所有品牌的ESP32都可以這樣用嗎？
 Ans : 目前市售上的都是可以這樣子使用。

---
## Reference
* Make自造666 - [智能居家平台 BLE2WIFI網關賣場](https://myship.7-11.com.tw/general/detail/GM2107187188865)

* Home Assistant - [OFFICIAL WEBSITE](https://www.home-assistant.io/)

* Home Assistant - [MJPEG IP Camera](https://www.home-assistant.io/integrations/mjpeg/)

* yaml vs yml的區別: [小科普](https://cloud.tencent.com/developer/ask/69788?from=14588)

* ESPHome - [OFFICIAL WEBSITE](https://esphome.io/)

* Node-RED - [官方網站](https://nodered.org/)

* Node-RED - [( 基礎操作 )](https://tutorials.webduino.io/zh-tw/docs/socket/useful/node-red.html)

* 智能情境設定連動Line即時訊息_Node-RED應用 - https://www.justplus.com.tw/line.html

* Duck DNS - [OFFICIAL WEBSITE](https://www.duckdns.org/)

* TridentTD_LineNotify - [GitHub](https://github.com/TridentTD/TridentTD_LineNotify
)
---