chinyaolin 发表于 2018-6-30 16:47:39

論壇改裝模塊的全新應用 - ESPurna for HASSMART

本帖最后由 chinyaolin 于 2020-5-26 17:18 编辑

2020/05/26 樓主改用 ESPHome 了
2018/07/20 更新 ESPurna 1.13.1 調整一下程式碼架構, 改以 custom.h 放置自定義的內容, 方便以後更新版本


// custom.h
// 擴充 arduino.h 編譯時所要編的硬體
#define HASSMART_SINGLE
//#define HASSMART_DUAL
//#define HASSMART_TRIPLE

// 擴充 general.h
#define DEVICE_NAME             MANUFACTURER "-" DEVICE

// 擴充 hardware.h 改裝模塊 GPIO 定義 包含單開雙開及三開
#if defined(HASSMART_SINGLE)
    #define MANUFACTURER      "HASSMART"
    #define DEVICE            "SINGLE"
    // Buttons
    #define BUTTON1_PIN         0       // Button 0 on header
    #define BUTTON1_RELAY       1
    #define BUTTON1_MODE      BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH
    // Relays
    #define RELAY1_PIN          12
    #define RELAY1_TYPE         RELAY_TYPE_NORMAL
    // LEDs
    #define LED1_PIN            13
    #define LED1_PIN_INVERSE    0

#elif defined(HASSMART_DUAL)
    #define MANUFACTURER      "HASSMART"
    #define DEVICE            "DUAL"
    // Buttons
    #define BUTTON1_PIN         0       // Button 0 on header
    #define BUTTON2_PIN         14      // Button 1 on header
    #define BUTTON1_RELAY       1
    #define BUTTON2_RELAY       2
    #define BUTTON1_MODE      BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH
    #define BUTTON2_MODE      BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH
    // Relays
    #define RELAY1_PIN          12
    #define RELAY2_PIN          5
    #define RELAY1_TYPE         RELAY_TYPE_NORMAL
    #define RELAY2_TYPE         RELAY_TYPE_NORMAL
    // LEDs
    #define LED1_PIN            13
    #define LED1_PIN_INVERSE    0

#elif defined(HASSMART_TRIPLE)
    #define MANUFACTURER      "HASSMART"
    #define DEVICE            "TRIPLE"
// Buttons
    #define BUTTON1_PIN         0
    #define BUTTON2_PIN         14
    #define BUTTON3_PIN         2
    #define BUTTON1_MODE      BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH
    #define BUTTON2_MODE      BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH
    #define BUTTON3_MODE      BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH
    #define BUTTON1_RELAY       1
    #define BUTTON2_RELAY       2
    #define BUTTON3_RELAY       3
    // Relays
    #define RELAY1_PIN          12
    #define RELAY2_PIN          5
    #define RELAY3_PIN          4
    #define RELAY1_TYPE         RELAY_TYPE_NORMAL
    #define RELAY2_TYPE         RELAY_TYPE_NORMAL
    #define RELAY3_TYPE         RELAY_TYPE_NORMAL
    // LEDs
    #define LED1_PIN            13
    #define LED1_PIN_INVERSE    0
#endif

首先感謝 Yonsm 的文章 - espurna - 支持Sonoff、Hassmart、NodeMCU的高性能、稳定固件
決定自己編譯論壇模塊專用的韌體/固件
這幾天以來不知道跌入多少坑中, 總算是有了一些結果, 貢獻給大家

官方網頁 : ESPurna Firmware
Y 大客製版 : tree/Yonsm ESPurna Firmware

我先使用 Ariduno IDE 1.8.5 搭配官方版本的程式碼, 不斷調校環境直到成功, 有興趣的人參考以下連結
https://github.com/xoseperez/espurna/wiki/ArduinoIDE
原作者詳細說明了如何將原始碼編譯出 ESPurna 韌體/固件

接著參考 Y 大的程式碼, 主要有兩個部份 arduino.h 與 hardware.h,
關於 hardware.h, 細節不多說, 主要在新增論壇模塊的 GPIO 定義, 節錄部份代碼如下

// hardware.h
// 修改內容整併至 custom.h 保持原始文件不做更動

另外一個是 arduino.h, 這個檔案選擇編譯的模塊以及額外要支援的功能

// arduino.h
// 修改內容整併至 custom.h 保持原始文件不做更動

我自己實際將雙開模塊刷上這個自製的韌體/固件後, 到目前使用上並無什麼問題
之後再找機會分享我的應用方式

PS.1 不好的話還是需要說在前頭, 我個人不對刷韌體/固件的風險負任何責任, 決定使用的朋友請自行承擔結果
PS.2 編譯時, 檔案 general.h 中的 #define USE_PASSWORD 設定為 0, 但還是建議要設上密碼確保安全

PS.3 編譯好的韌體(1.13.0) 回帖後可下載

**** Hidden Message *****

wilsoncan 发表于 2018-6-30 16:56:17

谢谢分享,在等各位大神发nodemcu的固件

nice2943 发表于 2018-6-30 20:55:45

感谢楼主分享~

924215947 发表于 2018-6-30 22:15:45

谢谢分享

wqqs 发表于 2018-7-1 10:09:13

谢谢分享!!

moonandsky 发表于 2018-7-1 15:37:05

真不错    得学习一下。。我也试过便以 ,但头痛。。

tranho 发表于 2018-7-1 15:37:29

非常好用的固件,感谢分享。

wlkb 发表于 2018-7-1 17:23:56

感謝大大熱情提供!!

心无痕星有迹 发表于 2018-7-1 20:28:19

學習學習

dickz 发表于 2018-7-1 23:11:02

看一下如何应用
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 論壇改裝模塊的全新應用 - ESPurna for HASSMART