owned this note changed 4 years ago
Published Linked with GitHub

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

簡報: https://drive.google.com/file/d/1PS8JkcHu9HgpNEXoI9e6fOH_NTHfVqS3/view
程式碼外殼設計在簡報內也有

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

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

  • 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

  • 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/米。

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

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

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

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


Reference


Select a repo