發表文章

目前顯示的是 8月, 2023的文章

由Python程式來存取Google sheets (試算表)

圖片
 可以在Raspberry Pi上讀取TMP102的温度值後, 我想要把温度值存放在那裡? 存在本機的檔案上, 網路上已有現成Python程式, 放在MQTT Server, 以前就玩過。想到放到Google 試算表應該也不錯, 以前也沒試過, 不如來試試! 首先找到這一貼文 Reading and writing to Google Spreadsheets using Python , 此文言簡意賅, 只有3個步驟就做完, 文章印出來也只要2頁! 但是第一個步驟因為要操作 Google API Console , 而這個網頁看來操作方式有些修改過了, 所以照著做會有些困難。自己摸索一陣時間後, 才弄清楚! 其實網路上討論這個部份的貼文不少,  【Python 網頁爬蟲 #1】設定 google sheet API 並取得 json 金鑰,讓我們的資料能同步更新至雲端 google sheet 表格 (內含完整圖片說明) 這篇貼文就很詳細, 文章是去年寫的, 還算新, Google API Console的操作界面和現在的一致。另外,  How to Read and Write Google Sheets Data Using Python 這篇貼文在設定Google Cloud Console部份, 描述的更詳細, 而且Python程式部份使用不同的套件。還有一篇陳濤半年前寫的 [筆記] 使用 pygsheets 記錄實驗數據到 google sheet 也很不錯, 特別是把Python pygsheets套件的幾個常用操作點出, 值得看一下。 我就不重複講了, 只提幾個重點: ===  步驟 1 === 1. 要先建專案  2. 在建好的專案裡, 啟用2個API。Google Drive API, Google Sheets API (有些文章只提到要啟用Google Sheets API, 那就要看你之後的程式的寫法, 我因為後面Python程式有用到, 所以要這2個都啟用) 3. 建立憑證 (有3個可以選: API, OAuth ID, 服務帳戶。要選服務帳戶, 建完後會得到一個電子郵件地址, 類似 xxx@xxx.iam.gserviceaccount.com ) 4. 針對這個服務帳戶, 建立金鑰, 並下載其JSON檔案 (命名為creds.json

How to add (and remove) Tmp102 sensor to Raspberry Pi 4

圖片
(註: 此圖截自SparkFun文章:  Python Programming Tutorial: Getting Started with the Raspberry Pi , 本文的接線方式和此相似, 只是GND接到Pin 9, 而不是Pin 6, 因為Pin 6被散熱風扇佔走! ) 將TMP102温度感測器連接到Raspberry Pi (R-pi), 之後就可以利用R-pi來監測環境温度。只是簡單的把環境温度記錄到log檔, 或者儲存到雲端讓人們隨時可透過網路查詢; 或者加上觸發條件在温度高於或低於特定值時可進行通知的動作。這些都是可以做的。本文先嘗試踏出第一步, 將TMP102接上R-pi, 讓系統可以存取其感測到的温度值, 也讓我們可以寫Python程式來存取温度值。 Raspberry Pi temperature sensor using TMP102 這篇貼文, 其實就在說明如何將TMP102連接到R-pi, 但因為Raspberry Pi出來很多年了, 出的板子種類也很多(2, 3, 4, Zero, Zero 2, etc), 同樣的在其上跑的OS也很多, 有官方的Raspberry Pi OS, Ubuntu, Freebsd, 等等。所以, 這文章以現在來說,有一些需要小修改的地方。 本文針對Raspberry Pi 4B, 使用官方Raspberry OS 64bit的環境,嘗試加入TMP102,基於以上所提文章做一些補充。 先進行以下設定: 1. Enable I2C $ sudo raspi-config 選3 Interface Options 然後選I5 I2C, 接下來會問你要enable I2C嗎? 選是. 往下記得重開機! 2. 安裝以下套件: $ sudo apt-get install lm-sensors   (出現一些問題, 但不用管它!) $ sudo apt-get install i2c-tools ================== 硬體接線 ================== TMP102模塊上的4支腳(VCC, SDA, SCL, GND), 分別接到Raspberry Pi GPIO的(1,3,5,9), 如上圖, 都在上面左方, 我打勾的4個腳位。記得接線前, 先把Raspberry Pi關機,

reject=403 4.7.0 TLS handshake failed (2)

 reject=403 4.7.0 TLS handshake failed 這個訊息總是會出現在我們sendmail的log檔, 之前找到msn.com網域的信, 其實是寄到outlook.com網域去的。這次是另一個類似的案例: # mailq Warning: Option: AuthMechanisms requires SASL support (-DSASL)                 /var/spool/mqueue (1 request) -----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient----------- 3781ZYIW045303   164044 Tue Aug  8 09:35 <>                  (Deferred: 403 4.7.0 TLS handshake failed.)                                          <bounce-833_HTML-127233725-9424761-700                 Total requests: 1 在mailq裡面看到一封寄不出去的信, 之前查過, 知道這應該是寄到我們合法使用者的廣告信, 收到使用者信箱後, 自動彈回的收到回條! (bounce-xxx...) 我們要求sendmail自動重送queue裡的信, 來看看問題何在? # sendmail -v -q Warning: Option: AuthMechanisms requires SASL support (-DSASL) Running /var/spool/mqueue/3781ZYIW045303 (sequence 1 of 1) <bounce-833_HTML-127233725-9424761-7002400-1004@bounce.email.savills-asia.com>... Connecting to inbound.s6.exacttarget.com. via esmtp... 220 orionsmtp-172.s6.exacttarget.com ESMTP Postfix