104,190 total views, 102 views today

ESP8266 應用一:智能插座 .3 DHT-11 溫濕度

終於要把現實世界和數位世界連接了,一開始的現實對象是環境溫、濕度,所以要使用溫、濕度監測器或是說監測模組。

模組一般都是將主功能電子零件加上必要的配套電路成為獨立零件,非電子專業使用會比較方便,Hoyo 使用的模組是 DHT-11

(非業配,賣場內還有另一個是只有監測器,比較便宜可是沒有應用電路)

加入程式庫

為了讀取 DHT11 數據,所以直接用其他大大分享的程式庫是比較快速的方式

從 GitHub 下載 zip 打開 Arduino IDE,草稿檔 → 匯入程式庫 → dht11-master.zip

程式範例 – 從串列埠觀看溫、濕度

 

下圖中的 delay 時間為 200 ,並非上面設定的 2000

ESP8266 DHT11 串列埠輸出

將 DHT11 讀取溫、濕度上傳到主機

先假設你已經有一個可以使用 HTTP API 上傳資料的主機,然後接下來就是如何把資料丟上去,在此假設的規格是使用 GET 傳遞

上傳到其他 IoT 平台 – 以 Ubidots 為例

從 Devices 查看上傳數據

點選單一監測數據可以看到詳細數據

接腳接反會燒壞!

其實電子零件大多是這樣的下場,以前搞音響 DIY 燒的更慘 …

優、缺點

極限值以及準確度是 DHT11 的硬傷,所以在熟悉 DHT11 之後可以選擇更高階的同類產品,例如 DHT2x 系列

143 total views, no views today

CentOS 7 – MySQL 5.6 升級到 MySQL 5.7

為了把自己的主機 MySQL 同步公司的環境,所以必須從 MySQL 5.6 更新到 5.7 ,升級 MySQL 很簡單倒是升級 phpMyAdmin 遇到了一些困難

升級 phpMyAdmin 4.9.1

206 total views, no views today

NanoPi – USB 網路卡 ( WiFi AP 應用 )

USB WiFi

本次測試的 USB WiFi dongle 硬體資訊

NanoPi 有支援驅動,可以掃描 AP

將 wlx??? 網路卡名稱改成 wlan0

AP mode

vi /etc/network/interfaces

啟用

vi /etc/hostapd/hostapd.conf

vi /etc/dnsmasq.conf

啟用

vi /etc/NetworkManager/NetworkManager.conf

啟動

初次使用時,可以使用以下指令顯示執行訊息方便除錯

USB 插入

加入自己的 USB 插入程序

/etc/udev/rules.d/99-usbwifi.rules

/home/wifi_script

完整的 USB WiFi 插入 & 拔出 log 紀錄

實際使用

NanoPi_USB_WiFi

NanoPi_USB_WiFi_AP

NanoPi_USB_WiFi_HTTP

313 total views, no views today

ESP8266 應用一:智能插座 .2 認識 ESP8266 及連上 WiFi

參考

初期只要跟著佑老師的 youtube 影片教學,買一塊 ESP8266 照著做一些實驗就差不多了

Hoyo 是買這個 (NodeMCU 開發板 ESP8266串口WiFi模塊 ESP-12E Lua 物聯網 CP2102 (NOD002)) 因為在台南可以直接去拿比較方便

NodeMcu 腳位圖

NodeMcu 板上 LED 是 D4 (GPIO2),一開始沒有其他硬體配合可以先嘗試控制這個燈號

ESP8266 可控制 LED 燈號

Arduino 開發環境設定

Hoyo 選擇的是 Arduino 開發,所以請到 Arduino 官網下載,初學者建議直接下載安裝檔比較省事

安裝完成開啟先讓 Arduino IDE 支援 ESP8266

檔案 → 偏好設定 → 額外的開發板管理者網址,輸入以下網址

工具 → 開發板 → 開發板管理員,過濾輸入 esp8266 選擇版本安裝,請使用 2.5.0 以後版本

控制板上的 LED 閃爍

第一個程式就是讓上面說的板上 LED 閃爍

儲存後上傳到 ESP8266 執行即可看到閃爍的 LED

連上 WiFi & 讀取網頁

第二步就是連上 WiFi 並且讀取,記得修改成自己 WiFi AP 名稱和密碼

  • WIFI_AP : AP 模式
  • WIFI_STA : Client 模式
  • WIFI_AP_STA : 同時是 AP 也是 Client
  • WIFI_OFF : 關閉

可以打開「序列埠監控視窗」觀察運行結果

346 total views, no views today

Let’s Encrypt + certbot : 免費 SSL (0.40.1)

本文對應版本:0.40.1

下載、安裝

下載後加上執行屬性,裸執行一下讓程式自動更新及補上系統缺少的套件

mod_socache_shmcb.so

將 mod_socache_shmcb.so 註解移除

重新啟動 httpd

安裝證書 by 網站

因為沒有 DNS 權限,先測試了單一網站的安裝,certbot 會自動偵測 apache 設定檔抓取網站,證書存放在 /etc/letsencrypt/live/*

etc/httpd/conf.d/ssl.conf 範例

284 total views, no views today

NanoPi – GPIO 控制外接 LED

 

實體測試裝置長這樣

使用 /sys/class/gpio – shell command

使用 /sys/class/gpio – Python 3

效能實驗

使用以下的 python 的程式測試,迴圈跑 1000 次 led 開關

目前的程式需要 1.16 秒

因為覺得那個 DEBUG.gpio 的輸出很礙眼,所以複製了 gpio.py 然後將所有 logging 輸出刪除,可以得到 0.10 秒

… 所以已經知道訊息輸出會影響效能,那把 print(i) 也移除吧

好吧,我知道 GPIO 原本效能不彰的原因了

速率 & 時間

  • 2400 = 0.000417
  • 9600 = 0.0001
  • 115200 = 0.0000087

194 total views, 1 views today