資料介紹
描述
?
![poYBAGNzbzOAFS-9AA1VZ-i9H7E016.jpg](https://file.elecfans.com/web2/M00/7A/B9/poYBAGNzbzOAFS-9AA1VZ-i9H7E016.jpg)
用于將數據從 Google 表單自動發布到 Adafruit IO 的 Python 腳本。
該程序提供了一個框架,可以輕松地將 Google 表單鏈接到 Adafruit IO 提要,該提要可用于任意數量的項目。該程序不只允許任何人直接訪問您的提要,而是充當公共 Google 表單和私人提要之間的中間件。任何人都可以填寫您的 Google 表單。該程序將定期檢查新提交的表單,審核提交數據以確認數據有效,然后將數據推送到您的 Adafruit IO 提要。
我在本教程中給出的示例使用 Adafruit Matrix Portal 來制作 Marquee Sign。我提出這個想法是為了讓我的學生可以輕松地將文本提交到實驗室的 Matrix Portal。Google 表單要求用戶輸入文本和顏色。該程序確保顏色有效且文本無褻瀆(盡可能無褻瀆)。然后程序將數據發布到 Adafruit IO。Matrix Portal 從 Adafruit IO 下拉此信息以滾動顯示。該代碼可以很容易地適用于任何應用程序。
補給品:
第 1 步:設置環境
Python 3 安裝
如果您尚未安裝 Python,則需要安裝它。轉到https://www.python.org/downloads/并為您的操作系統下載并運行正確的安裝。您需要確保安裝 pip 并將 python/pip 添加到 Path。
Git 項目文件
現在您需要從我的 Github 存儲庫中檢索 Python 腳本和其他文件。您可以安裝 git 客戶端并克隆存儲庫,也可以從瀏覽器下載存儲庫的 zip 文件。
https://github.com/mjdargen/gform2adafruitIO
git clone https://github.com/mjdargen/gform2adafruitIO.git
安裝 Python 包
要運行此程序,您需要安裝以下軟件包:requests、webcolors、adafruit-io、python-dotenv。這些可以通過導航到克隆的存儲庫目錄并運行以下命令來輕松安裝:
pip3 install -r requirements.txt
如果您對任何軟件包有問題,可以將它們降級到這些版本(發布時的最新版本)。這些是我測試的特定版本:python == 3.7.7、requests == 2.24.0、webcolors == 1.11.1、adafruit-io == 2.4.0、python-dotenv == 0.14.0。
第 2 步:設置 Google 表單
創建 Google 表單/Google 表格
首先,您需要創建一個 Google 表單。打開 Google Drive 并創建一個新表單。這是我的這個項目的示例表單的鏈接:https ://forms.gle/MUWWtGKMeH4RmXeq6 。
您需要讓 Google 表單自動發布到 Google 表格。為此,請點擊 Google 表單的“回復”標簽,然后點擊表格圖標(如上圖所示)。這會將您帶到鏈接的電子表格。每當有人提交新表單時,它都會自動顯示在鏈接的 Google 表格中。
將工作表發布到 Python 腳本
完成以下步驟以將 Google 表格發布為 .csv,以便 Python 腳本可以檢索它。
- 轉到“文件-> 發布到網絡”。
- 這將打開如上所示的窗口。選擇“鏈接”選項卡。
- 選擇要發布的工作表:“Form Responses 1”。
- 然后選擇將其發布為“逗號分隔值 (.csv)”。
- 準備好后,單擊發布。將出現一個彈出窗口,詢問您是否確定。單擊“確定”。
- 該窗口現在將顯示指向 .csv 文件的鏈接。
- 您可以在瀏覽器中打開此鏈接,它會下載 .csv 文件,以便您查看。
- 這是我的示例表單發布的.csv:https ://docs.google.com/spreadsheets/d/e/2PACX-1vQ2AwUbx6lsZK-H0WjvcF1Bu2VUlsN4ir8kMD10xSEkl-JkxXKlqLZfnJ5pgyNhYIDYMEOK6Ys4cEYK/pub?gid=1198589603&single=true&output=csv
第 3 步:Adafruit IO 設置
![pYYBAGNzbzWAI4NvAACA2YPN5Sw594.png](https://file.elecfans.com/web2/M00/7B/47/pYYBAGNzbzWAI4NvAACA2YPN5Sw594.png)
Adafruit IO 是一項令人難以置信的云服務,可讓您從許多不同的設備來回推送和拉取數據。在我提供的示例中,我將數據從 Raspberry Pi 推送到 Adafruit IO,而我的 Matrix Portal 將數據從 Adafruit IO 拉回。Adafruit IO 還使您能夠創建儀表板并連接到其他 Web 服務。出于我們的目的,我們將主要關注從 Adafruit IO 上的私人訂閱源發送和檢索數據。
如果您想實現 Matrix Portal Marquee 的具體示例,請在此處遵循本指南:https ://learn.adafruit.com/aio-quote-board-matrix-display/ 。在“為報價板編碼”頁面上,它會逐步指導您如何為您的標志創建提要。
在我的例子中,我創建了兩個提要:一個用于文本(稱為 signtext),一個用于顏色(稱為 signcolor)。創建這兩個提要后,我將它們分配給我創建的名為“矩陣門戶報價”的組。稍后您將需要這些名稱以供參考,因此請記住它們!
--
如果您想將 gform2adafruitIO 用于不同的項目,Adafruit 發布了許多其他有關 Adafruit IO 的有用指南,無論您的具體要求是什么,它們都將為您提供幫助。這是一系列有用的 Adafruit IO 指南:https ://learn.adafruit.com/series/adafruit-io-basics 。
第 4 步:環境變量設置
設置好 Adafruit IO 帳戶后,您應該有一個用戶名和一個密鑰。我將向您展示如何將這些安全地存儲為環境變量,這樣您就不會意外地將這些私人信息發布到網絡上。該程序使用 python-dotenv 包來執行此操作。
要設置環境變量,請在克隆存儲庫的目錄中創建一個名為“.env”的文件。在您喜歡的文本編輯器中打開此文件,并按以下格式提供您的用戶名和密鑰:
ADAFRUIT_IO_KEY=<put_your_adafruit_io_key_here>
ADAFRUIT_IO_USERNAME=<put_your_adafruit_io_username_here>
你們都完成了!Python 腳本將成功地將您的信息導入代碼中。如果您曾經將代碼發布到 GitHub,default.gitignore 文件將自動知道排除您的 .env 文件,這樣您的私鑰就不會與大眾共享!
第 5 步:修改代碼
現在,您需要對代碼進行一些細微的修改,以使其適用于您的特定情況。
更新您的 .csv 文件的 URL。
- 修改變量 CSV_URL 以指向您的 Google 表格發布 .csv 文件的 URL。
- CSV_URL = ""
設置要存儲的最大報價數。
- 修改變量 MAX_QUOTES 以控制要存儲在 Adafruit IO Feed 中的最大報價數
- MAX_QUOTES =
- 如果您指定 10,它將保留 10 個最近的報價/顏色
設置 Adafruit IO feed 的名稱。分組時,feed 的名稱格式為:“group_name.feed_name”。
- TEXT_FEED = 'matrix-portal-quotes.signtext'
- COLOR_FEED = 'matrix-portal-quotes.signcolor'
- 就我而言,我有兩個提要:一個用于文本,一個用于顏色。
- 我在 Adafruit IO 門戶中將它們組合在一起。
如果您將此代碼用于完全不同的項目,您還需要修改 processing() 函數。我的處理函數將表單數據組織成一個帶標簽的字典結構。然后它會檢查以確保顏色有效并且文本沒有褻瀆。您將需要更改 processing() 以滿足您的需求。
第 6 步:執行程序
要查看源代碼,請訪問此 Github 存儲庫。
程序說明
以下是程序每個功能的功能描述:
fetch_form_data()
- 使用 requests 庫下載 Google Sheet 的.csv 文件。
- 將下載的文件與上次檢索的文件進行比較,以查看是否有新的提交數據。
- 如果有新數據,則繼續對其進行處理。否則,程序結束。
加工()
- 將表單數據組織成字典結構。
- 調用 color_check() 處理顏色數據并查看它是否有效。
- 調用 profanity_check() 來處理文本數據并查看它是否沒有褻瀆。
adafruitIOaccess()
- 使用 Rest API 與 Adafruit IO 連接。
- 從文本和顏色提要中提取現有值。
- 將新值添加到這些提要中。
- 如果值超過了值的最大限制,則從這些提要中刪除它們。
更新文件()
- 成功完成所有其他任務后,用當前下載的.csv 覆蓋以前的下載.csv 以供下次執行。
以下是運行代碼的 2 種不同方式的描述。
第一個 if __name__ == "__main__": 選項:
- 程序只執行一次然后存在。非常適合安排腳本運行。
- 我的腳本在 Raspberry Pi 上運行并使用 cron 進行調度。使用此工具來計算調度。
- 下面我將展示如何向 cron 添加任務以安排腳本每 30 分鐘運行一次。
sudo crontab -e
*/30 * * * * /usr/bin/python3 /home/pi/Documents/gform2adafruitIO/gform2adafruitIO.py
第二個 if __name__ == "__main__": 選項:
- 程序永遠在循環中重復執行。執行之間有一個睡眠間隔。
- 通過修改此行設置睡眠間隔(以秒為單位): INTRVL = 1800
- 下面我展示如何調用程序。
python3 gform2adafruitIO.py
第 7 步:Adafruit 矩陣門戶信息
![pYYBAGNzbziADY1QAAE5yjJikSo356.jpg](https://file.elecfans.com/web2/M00/7B/47/pYYBAGNzbziADY1QAAE5yjJikSo356.jpg)
如果您想使用 Adafruit Matrix Portal 運行這個特定的 Marquee Sign 示例,請查看以下鏈接。這些指南將引導您了解如何設置 Matrix 門戶以及如何在 Adafruit IO 中設置提要。
Adafruit Matrix 門戶產品頁面:https ://www.adafruit.com/product/4745
一般 Adafruit 矩陣門戶信息:https ://learn.adafruit.com/adafruit-matrixportal-m4
自定義滾動報價教程:https ://learn.adafruit.com/aio-quote-board-matrix-display
第 8 步:更多項目
更多項目,請訪問我的頁面:
- 使用Adafruit IO的無線警鈴
- 將傳感器數據從Helium設備路由到Google表格
- 帶有Adafruit IO的太陽能氣象站
- 使用Google Assistant和Adafruit IO實現家庭自動化
- 使用Python和JQWidgets控制Adafruit NeoPixels
- 如何將微控制器和adafruit.io儀表板連接到外部應用程序
- 基于Python的實時嵌入式軟件測試腳本總結
- 帶有Adafruit_IO的氣象站監視器源碼 9次下載
- 從Excel到Python數據分析進階指南資源下載 0次下載
- Python學習手冊免費下載 9次下載
- Python學習手冊免費下載 26次下載
- python2與python3到底有什么區別 4次下載
- 如何使用python將txt文件導入到mysql的應用實例 12次下載
- Python的學習資料總結教程 18次下載
- Python人工智能教程讓你從入門到踐 99次下載
- 利用Python腳本登錄到交換機并創建VLAN 606次閱讀
- 使用Python腳本備份華為交換機的配置信息 630次閱讀
- python解析netflow數據到csv的流程詳解 703次閱讀
- 通過Python腳本實現WIFI密碼的自動猜解 3563次閱讀
- 西門子博圖GET_NAME讀取IO設備或DP從站的名稱 3991次閱讀
- 如何解決表單重復提交的問題 1196次閱讀
- 使用Python腳本實現自動化運維任務 1736次閱讀
- Python怎么玩轉JS腳本 1157次閱讀
- 如何通過Python腳本批量采集華為交換機配置 5221次閱讀
- 10個殺手級的Python自動化腳本分享 773次閱讀
- 用Python寫SecureCRT批量登錄/巡檢網絡設備腳本 4647次閱讀
- 一次學會使用Adafruit IO平臺! 4491次閱讀
- 通過Python腳本實現WIFI密碼的暴力破解 6754次閱讀
- Python爬蟲8個常用的爬蟲技巧分析總結 5119次閱讀
- 如何快速學會Python?利用Python進行數據分析 1.1w次閱讀
下載排行
本周
- 1DeepSeek:從入門到精通
- 5.36 MB | 22次下載 | 1 積分
- 2中興通訊的PCB設計規范
- 23.03 MB | 2次下載 | 5 積分
- 3IP6823 支持 qi 認證的無線充電發射控制 SOC
- 1.01 MB | 1次下載 | 免費
- 4IP6824? 全集成QI?無線充電發射控制SOC
- 1.22 MB | 1次下載 | 免費
- 5工程師入門必學的二十個模擬電路
- 0.37 MB | 1次下載 | 1 積分
- 6PESD18VY1BBIF保護二極管規格書
- 4.56MB | 次下載 | 免費
- 774HC4050緩沖器規格書
- 217.58KB | 次下載 | 免費
- 874HC73-Q100雙JK觸發器規格書
- 220.85KB | 次下載 | 免費
本月
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2零死角玩轉STM32F103—指南者
- 26.78 MB | 41次下載 | 1 積分
- 3PIC12F629/675 數據手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 4DeepSeek:從入門到精通
- 5.36 MB | 22次下載 | 1 積分
- 5PIC16F716 數據手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 6GD32F4xx用戶手冊
- 14.49MB | 14次下載 | 免費
- 7dsPIC33EDV64MC205電機控制開發板用戶指南
- 5.78MB | 8次下載 | 免費
- 8STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935124次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73813次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論