資料介紹
描述
?

用于將數(shù)據(jù)從 Google 表單自動發(fā)布到 Adafruit IO 的 Python 腳本。
該程序提供了一個框架,可以輕松地將 Google 表單鏈接到 Adafruit IO 提要,該提要可用于任意數(shù)量的項目。該程序不只允許任何人直接訪問您的提要,而是充當公共 Google 表單和私人提要之間的中間件。任何人都可以填寫您的 Google 表單。該程序?qū)⒍ㄆ跈z查新提交的表單,審核提交數(shù)據(jù)以確認數(shù)據(jù)有效,然后將數(shù)據(jù)推送到您的 Adafruit IO 提要。
我在本教程中給出的示例使用 Adafruit Matrix Portal 來制作 Marquee Sign。我提出這個想法是為了讓我的學(xué)生可以輕松地將文本提交到實驗室的 Matrix Portal。Google 表單要求用戶輸入文本和顏色。該程序確保顏色有效且文本無褻瀆(盡可能無褻瀆)。然后程序?qū)?shù)據(jù)發(fā)布到 Adafruit IO。Matrix Portal 從 Adafruit IO 下拉此信息以滾動顯示。該代碼可以很容易地適用于任何應(yīng)用程序。
補給品:
第 1 步:設(shè)置環(huán)境
Python 3 安裝
如果您尚未安裝 Python,則需要安裝它。轉(zhuǎn)到https://www.python.org/downloads/并為您的操作系統(tǒng)下載并運行正確的安裝。您需要確保安裝 pip 并將 python/pip 添加到 Path。
Git 項目文件
現(xiàn)在您需要從我的 Github 存儲庫中檢索 Python 腳本和其他文件。您可以安裝 git 客戶端并克隆存儲庫,也可以從瀏覽器下載存儲庫的 zip 文件。
https://github.com/mjdargen/gform2adafruitIO
git clone https://github.com/mjdargen/gform2adafruitIO.git
安裝 Python 包
要運行此程序,您需要安裝以下軟件包:requests、webcolors、adafruit-io、python-dotenv。這些可以通過導(dǎo)航到克隆的存儲庫目錄并運行以下命令來輕松安裝:
pip3 install -r requirements.txt
如果您對任何軟件包有問題,可以將它們降級到這些版本(發(fā)布時的最新版本)。這些是我測試的特定版本:python == 3.7.7、requests == 2.24.0、webcolors == 1.11.1、adafruit-io == 2.4.0、python-dotenv == 0.14.0。
第 2 步:設(shè)置 Google 表單
創(chuàng)建 Google 表單/Google 表格
首先,您需要創(chuàng)建一個 Google 表單。打開 Google Drive 并創(chuàng)建一個新表單。這是我的這個項目的示例表單的鏈接:https ://forms.gle/MUWWtGKMeH4RmXeq6 。
您需要讓 Google 表單自動發(fā)布到 Google 表格。為此,請點擊 Google 表單的“回復(fù)”標簽,然后點擊表格圖標(如上圖所示)。這會將您帶到鏈接的電子表格。每當有人提交新表單時,它都會自動顯示在鏈接的 Google 表格中。
將工作表發(fā)布到 Python 腳本
完成以下步驟以將 Google 表格發(fā)布為 .csv,以便 Python 腳本可以檢索它。
- 轉(zhuǎn)到“文件-> 發(fā)布到網(wǎng)絡(luò)”。
- 這將打開如上所示的窗口。選擇“鏈接”選項卡。
- 選擇要發(fā)布的工作表:“Form Responses 1”。
- 然后選擇將其發(fā)布為“逗號分隔值 (.csv)”。
- 準備好后,單擊發(fā)布。將出現(xiàn)一個彈出窗口,詢問您是否確定。單擊“確定”。
- 該窗口現(xiàn)在將顯示指向 .csv 文件的鏈接。
- 您可以在瀏覽器中打開此鏈接,它會下載 .csv 文件,以便您查看。
- 這是我的示例表單發(fā)布的.csv:https ://docs.google.com/spreadsheets/d/e/2PACX-1vQ2AwUbx6lsZK-H0WjvcF1Bu2VUlsN4ir8kMD10xSEkl-JkxXKlqLZfnJ5pgyNhYIDYMEOK6Ys4cEYK/pub?gid=1198589603&single=true&output=csv
第 3 步:Adafruit IO 設(shè)置

Adafruit IO 是一項令人難以置信的云服務(wù),可讓您從許多不同的設(shè)備來回推送和拉取數(shù)據(jù)。在我提供的示例中,我將數(shù)據(jù)從 Raspberry Pi 推送到 Adafruit IO,而我的 Matrix Portal 將數(shù)據(jù)從 Adafruit IO 拉回。Adafruit IO 還使您能夠創(chuàng)建儀表板并連接到其他 Web 服務(wù)。出于我們的目的,我們將主要關(guān)注從 Adafruit IO 上的私人訂閱源發(fā)送和檢索數(shù)據(jù)。
如果您想實現(xiàn) Matrix Portal Marquee 的具體示例,請在此處遵循本指南:https ://learn.adafruit.com/aio-quote-board-matrix-display/ 。在“為報價板編碼”頁面上,它會逐步指導(dǎo)您如何為您的標志創(chuàng)建提要。
在我的例子中,我創(chuàng)建了兩個提要:一個用于文本(稱為 signtext),一個用于顏色(稱為 signcolor)。創(chuàng)建這兩個提要后,我將它們分配給我創(chuàng)建的名為“矩陣門戶報價”的組。稍后您將需要這些名稱以供參考,因此請記住它們!
--
如果您想將 gform2adafruitIO 用于不同的項目,Adafruit 發(fā)布了許多其他有關(guān) Adafruit IO 的有用指南,無論您的具體要求是什么,它們都將為您提供幫助。這是一系列有用的 Adafruit IO 指南:https ://learn.adafruit.com/series/adafruit-io-basics 。
第 4 步:環(huán)境變量設(shè)置
設(shè)置好 Adafruit IO 帳戶后,您應(yīng)該有一個用戶名和一個密鑰。我將向您展示如何將這些安全地存儲為環(huán)境變量,這樣您就不會意外地將這些私人信息發(fā)布到網(wǎng)絡(luò)上。該程序使用 python-dotenv 包來執(zhí)行此操作。
要設(shè)置環(huán)境變量,請在克隆存儲庫的目錄中創(chuàng)建一個名為“.env”的文件。在您喜歡的文本編輯器中打開此文件,并按以下格式提供您的用戶名和密鑰:
ADAFRUIT_IO_KEY=<put_your_adafruit_io_key_here>
ADAFRUIT_IO_USERNAME=<put_your_adafruit_io_username_here>
你們都完成了!Python 腳本將成功地將您的信息導(dǎo)入代碼中。如果您曾經(jīng)將代碼發(fā)布到 GitHub,default.gitignore 文件將自動知道排除您的 .env 文件,這樣您的私鑰就不會與大眾共享!
第 5 步:修改代碼
現(xiàn)在,您需要對代碼進行一些細微的修改,以使其適用于您的特定情況。
更新您的 .csv 文件的 URL。
- 修改變量 CSV_URL 以指向您的 Google 表格發(fā)布 .csv 文件的 URL。
- CSV_URL = ""
設(shè)置要存儲的最大報價數(shù)。
- 修改變量 MAX_QUOTES 以控制要存儲在 Adafruit IO Feed 中的最大報價數(shù)
- MAX_QUOTES =
- 如果您指定 10,它將保留 10 個最近的報價/顏色
設(shè)置 Adafruit IO feed 的名稱。分組時,feed 的名稱格式為:“group_name.feed_name”。
- TEXT_FEED = 'matrix-portal-quotes.signtext'
- COLOR_FEED = 'matrix-portal-quotes.signcolor'
- 就我而言,我有兩個提要:一個用于文本,一個用于顏色。
- 我在 Adafruit IO 門戶中將它們組合在一起。
如果您將此代碼用于完全不同的項目,您還需要修改 processing() 函數(shù)。我的處理函數(shù)將表單數(shù)據(jù)組織成一個帶標簽的字典結(jié)構(gòu)。然后它會檢查以確保顏色有效并且文本沒有褻瀆。您將需要更改 processing() 以滿足您的需求。
第 6 步:執(zhí)行程序
要查看源代碼,請訪問此 Github 存儲庫。
程序說明
以下是程序每個功能的功能描述:
fetch_form_data()
- 使用 requests 庫下載 Google Sheet 的.csv 文件。
- 將下載的文件與上次檢索的文件進行比較,以查看是否有新的提交數(shù)據(jù)。
- 如果有新數(shù)據(jù),則繼續(xù)對其進行處理。否則,程序結(jié)束。
加工()
- 將表單數(shù)據(jù)組織成字典結(jié)構(gòu)。
- 調(diào)用 color_check() 處理顏色數(shù)據(jù)并查看它是否有效。
- 調(diào)用 profanity_check() 來處理文本數(shù)據(jù)并查看它是否沒有褻瀆。
adafruitIOaccess()
- 使用 Rest API 與 Adafruit IO 連接。
- 從文本和顏色提要中提取現(xiàn)有值。
- 將新值添加到這些提要中。
- 如果值超過了值的最大限制,則從這些提要中刪除它們。
更新文件()
- 成功完成所有其他任務(wù)后,用當前下載的.csv 覆蓋以前的下載.csv 以供下次執(zhí)行。
以下是運行代碼的 2 種不同方式的描述。
第一個 if __name__ == "__main__": 選項:
- 程序只執(zhí)行一次然后存在。非常適合安排腳本運行。
- 我的腳本在 Raspberry Pi 上運行并使用 cron 進行調(diào)度。使用此工具來計算調(diào)度。
- 下面我將展示如何向 cron 添加任務(wù)以安排腳本每 30 分鐘運行一次。
sudo crontab -e
*/30 * * * * /usr/bin/python3 /home/pi/Documents/gform2adafruitIO/gform2adafruitIO.py
第二個 if __name__ == "__main__": 選項:
- 程序永遠在循環(huán)中重復(fù)執(zhí)行。執(zhí)行之間有一個睡眠間隔。
- 通過修改此行設(shè)置睡眠間隔(以秒為單位): INTRVL = 1800
- 下面我展示如何調(diào)用程序。
python3 gform2adafruitIO.py
第 7 步:Adafruit 矩陣門戶信息

如果您想使用 Adafruit Matrix Portal 運行這個特定的 Marquee Sign 示例,請查看以下鏈接。這些指南將引導(dǎo)您了解如何設(shè)置 Matrix 門戶以及如何在 Adafruit IO 中設(shè)置提要。
Adafruit Matrix 門戶產(chǎn)品頁面: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的無線警鈴
- 將傳感器數(shù)據(jù)從Helium設(shè)備路由到Google表格
- 帶有Adafruit IO的太陽能氣象站
- 使用Google Assistant和Adafruit IO實現(xiàn)家庭自動化
- 使用Python和JQWidgets控制Adafruit NeoPixels
- 如何將微控制器和adafruit.io儀表板連接到外部應(yīng)用程序
- 基于Python的實時嵌入式軟件測試腳本總結(jié)
- 帶有Adafruit_IO的氣象站監(jiān)視器源碼 9次下載
- 從Excel到Python數(shù)據(jù)分析進階指南資源下載 0次下載
- Python學(xué)習手冊免費下載 9次下載
- Python學(xué)習手冊免費下載 26次下載
- python2與python3到底有什么區(qū)別 4次下載
- 如何使用python將txt文件導(dǎo)入到mysql的應(yīng)用實例 12次下載
- Python的學(xué)習資料總結(jié)教程 18次下載
- Python人工智能教程讓你從入門到踐 99次下載
- 利用Python腳本登錄到交換機并創(chuàng)建VLAN 606次閱讀
- 使用Python腳本備份華為交換機的配置信息 630次閱讀
- python解析netflow數(shù)據(jù)到csv的流程詳解 703次閱讀
- 通過Python腳本實現(xiàn)WIFI密碼的自動猜解 3563次閱讀
- 西門子博圖GET_NAME讀取IO設(shè)備或DP從站的名稱 3991次閱讀
- 如何解決表單重復(fù)提交的問題 1196次閱讀
- 使用Python腳本實現(xiàn)自動化運維任務(wù) 1736次閱讀
- Python怎么玩轉(zhuǎn)JS腳本 1157次閱讀
- 如何通過Python腳本批量采集華為交換機配置 5221次閱讀
- 10個殺手級的Python自動化腳本分享 773次閱讀
- 用Python寫SecureCRT批量登錄/巡檢網(wǎng)絡(luò)設(shè)備腳本 4647次閱讀
- 一次學(xué)會使用Adafruit IO平臺! 4491次閱讀
- 通過Python腳本實現(xiàn)WIFI密碼的暴力破解 6754次閱讀
- Python爬蟲8個常用的爬蟲技巧分析總結(jié) 5119次閱讀
- 如何快速學(xué)會Python?利用Python進行數(shù)據(jù)分析 1.1w次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網(wǎng)絡(luò)安全從業(yè)者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規(guī)格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規(guī)格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設(shè)計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論