265,719 total views, 171 views today

PHP 7 – OpCache

結論

  1. 主要作用在提昇 PHP 執行效能,以及簡易的程式加密
  2. 使用 OpCode 加密可以保護程式邏輯,不能保護「程式內的字串」

php.ini

重新啟動 apache2 服務

保護程式作法

想要讓 PHP 使用 OpCode ,可以在 OpCode 產生後將 .php 檔案清空或是填入不相關內容即可

在網路根目錄執行以下執行即可將所有 .php 檔案內容清空

計算 php 檔案數量

OpCache 長相

節錄內容

74 total views, 11 views today

MQTT – 使用 Let’s Encrypt SSL + EMQ X 建構 SSL WebSocket

原理

  • 網站的證書和 MQTT (WebSocket) 的證書必須一致
  • Let’s Encrypt 證書檔案必須讓 emqx 帳號有讀取權限

編輯emqx.conf

  • 請自行替換 {web url} 為你的網域
  • .ssl. 是 MQTT使用;.wss. 是 WebSocket 使用

Let’s Encrypt 證書檔案權限

要讓 emqx 可以讀取 Let’s Encrypt 產生的證書,最大的問題就是目錄和檔案的讀取權限。

預設的權限大多是只有 root 使用者可以讀,最方便的方式是將 /etc/letsencrypt 的 archive & live 的其他人讀取開放

可以使用一般使用者讀取證書檔案測試,如果沒問題就可以重啟 emqx 服務

HTML

在使用上和沒有 SSL 差別不到,注意 mqtt.connect() 的通訊協定是 wss:// 以及 port 的設定即可。

網路上可能會找到有關 MQTT.js 證書相關的設定,不過那些設定並沒有什麼卵用,因為當網站是 https:// 時瀏覽器就會檢查如果是同網站就需要使用相同證書,不同網站就可以發生跨網站的相關錯誤,當然現在也是不能和 http 混用

在 F12 console 下如果沒有看到錯誤恭喜已經成功了。

103 total views, 3 views today

WT32-ETH01 – Web Bluetooth

使用 demo 參照 sample 互相驗證較容易搞懂,UUID 必須使用完整格式

運作條件

  1. 網頁必須 HTTPS
  2. 手機瀏覽器版本必須符合 Browser compatibility

範例:使用 Web Bluetooth 控制 WT32-ETH01 上的 LED

HTML

Arduino

演示

配對時,什麼可以選擇的時機很迷,控制的 LED 是右側的綠色 LED

問題

BLE notify 最長只能 20 bytes

109 total views, 2 views today

WT32-ETH01 – MicroPython 開發環境

準備開發環境

  1. 安裝 Python3
  2. 安裝 pip
  3. 下載 uPyCraft
  4. 測試你的第一支 LED 閃爍程式

考慮到需要 LAN 因此下載了 esp32-idf3-20210202-v1.14.bin 這個 firmware

通訊測試確認

可以使用 PuTTY 這類可以使用 COM 通訊軟體,使用 115200

Thonny IDE 開發環境

選擇 Thonny 不選 uPyCraft 是因為 uPyCraft 簡單過頭了

工具 → 選項 → 直譯器

安裝或更新韌體

燒錄時請參考「ESP – ESP-12F & ESP8266 & ESP-32 燒錄指南」將 IO0 接地,EN 短接地

LED for WT32 (其他的 ESP 差別只在於預設的LED 腳位不同)

參考資源

118 total views, 1 views today

ESP – ESP-12F & ESP8266 & ESP-32 燒錄指南

準備工具

根據晶片以及開發板情況不同,可能需要 3.3V 供電的 USB to TTL,另一種 4 pin 就只提供 5V 供電,使用上要注意

3.3V USB to TTL

DataSheet

Hoyo 使用的 ESP32 模組是包含 Ethernet 的 WT32-ETH01 ,沒有內建 USB to TTL,ESP8266 則是產品化因此無法使用 NodeMCU 這類有內建 USB to TTL 的開發板。

有關如何燒錄上傳 DataSheet 其實都有說明,網路上 Google 的資料大多數都是不合用,例如使用了多餘的腳位控制,或是需要額外的控制電路,有可能是使用場景不同導致。

至少看 Hoyo 的資料可以保障可執行以及線路都是最精簡的

ESP-12F (ESP8266MOD) 燒錄硬體準備

  1. 3.3V 供電
  2. 接地
  3. RX -> TX
  4. TX -> RX
  5. IO0 -> 接地
  6. TTL USB 接上 USB
  7. RST 短接地
  8. 開始燒錄上傳

正常使用,IO0 斷開,RST 短接地重啟

ESP8266MOD 燒錄接線

ESP32 燒錄硬體準備

  1. 5V 供電
  2. 接地
  3. RX -> TX
  4. TX -> RX
  5. IO0 -> 接地
  6. EN 短接地
  7. 開始燒錄上傳

正常使用,IO0 斷開,EN 短接地重啟

WT32-ETH01 正面

ESP32 EN 接地使用按鈕

ESP-12F (ESP8266MOD) 燒錄軟體

圖形介面

ESPTool.py 指令介面

  1. 安裝 Python 3 (Download Python | Python.org)
  2. 安裝 pip
  3. 安裝 serial module
  4. 安裝 pyserial module

安裝 pip

下載 get-pip.py (https://bootstrap.pypa.io/get-pip.py)

安裝 serial & pyserial module

ESPTool.py

上傳

下載

Arduino 的上傳

ESP-12F 和 ESP32 在使用 esptool.py 上並沒有很大的差異

讀取 MAC Address

其他參考資源

Data

107 total views, 1 views today