條碼/二維碼 報到/打卡/登錄系統實作 mBlock5+BrainGO+QRcodeScanner+ESP8266+GoogleSheet

本系統主要分為三個部分:
第一:建立IFTTT及GoogleSheet。
第二:條碼/二維碼掃碼後,利用IFTTT將卡片資料登錄至GoogleSheet中。
第三:以mBlock5積木程式去讀取GoogleSheet中已登錄之資料,進行資料分析、畫面呈現及語音播報。

第一:建立 IFTTT及 GoogleSheet。

  1. 請參考站內文章 建立IFTTT程序:如果收到網址要求,則將資料寫入Google試算表
  2. 打開試算表,清空第二列以後的資料,僅留下第一列,並在試算表的 I1 欄位,輸入 =COUNTA(A1:A2)
  3. 以瀏覽器送出網址要求https://maker.ifttt.com/trigger/googlesheet2/with/key/dGxxxxxxxx_g4?value1=1&value2=2,測試是否會新增一列,且I1欄位顯示為2。

第二:條碼/二維碼掃碼後,利用 IFTTT將卡片資料登錄至 GoogleSheet中。

一、硬體線路

BrainGO(Arduino) D3 <-> UTXD ESP8266(ESP-12)
BrainGO(Arduino) D2 <-> URXD ESP8266(ESP-12)
BrainGO(Arduino) V+ <-> VIN ESP8266(ESP-12)
BrainGO(Arduino) GND <-> GND ESP8266(ESP-12)

BrainGO(Arduino) Rx <-> Tx QR Code Scanner
BrainGO(Arduino) Tx <-> Rx QR Code Scanner
BrainGO(Arduino) V+ <-> V+ QR Code Scanner
BrainGO(Arduino) GND <-> GND QR Code Scanner

※請勿必確定ESP8266或其它wifi模組處於可接受AT命令的模式,才能接受BrainGO指令連線wifi。

二、mBlock5積木程式

1.開啟mBlock5

2.加入延伸集

物聯網nodemcu、Bar/QR code scanner、URL encode decode

3.積木程式

請修改wifi積木中的SSIDwifi密碼、你的wifi模組鮑率事件名稱IFTTT公鑰,本例中的我使用的ESP8266鮑率為115200,ESP8266的Tx接至BrainGO的D3、ESP8266的Rx接至BrainGO的D2,事件名稱為googlesheet2。

4.上傳並測試

上傳後,使用Bar/QR code掃描器去掃條碼或二維碼,再去檢查一下是否讀入的資料有被紀錄到google試算表內。傳送時間,約需5秒。

※若測試沒有問題,則BrainGO只要有供電就可以運作了,無需再連接電腦的USB了。

第三:以mBlock5積木程式去讀取GoogleSheet中已登錄之資料,進行資料分析、呈現及語音播報。

一、修改Google試算表

1.設定共用 – 知道連結的使用者 – 編輯者 – 複製連結

2.將共用連結貼到下列的程式積木中

二、mBlock5積木程式

1.積木圖片

2.積木程式

3.修改連接到共用工作表積木

如果貼上的期用連結沒問題的話,按下綠旗執行,就會看到「己連結到Google工作表」的連結成功提示,如下圖。

4.修改變數清單中「編號」及「姓名」的內容,編號應和條碼內容一致,姓名可依實際匯入,登錄時間不用理會。

附錄:

[ 實用] QRExplore,快速生成QRCode 的網 … – 無聊詹軟體資訊站

建立IFTTT程序:如果收到網址要求,則將資料寫入Google試算表

IFTTT Applet : IF THIS WEBHOOKS THEN THAT GOOGLE SHEETS

例如:
在瀏覽器上輸入 https://maker.ifttt.com/trigger/googlesheet2/with/key/dGxxxxxxxx_g4?value1=1&value2=2 送出後,就會將value1=1&value2=2新增到Google試算表的最後一列。

一、連接IFTTT官方網站

官方網址:https://ifttt.com/
請自行註冊或登入。

二、按Create新增Applet

三、按一下 If This 的 ( Add )

四、輸入web搜尋,點選Webhooks

五、選擇Receive a web request


六、Event Name 本文以googlesheet2為例,按下Create trigger.

七、按下Then That 的 ( Add )

八、輸入google搜尋,點選「Google Sheets」

九、點選Add row to spreadsheet

十、填入試算表資料:

  1. Spreadsheet name 可以指定Google試算表的檔名,如果原目錄內沒有的會自動新。
  2. Formatted row 按原預設值的意思是新增資料列時,會建立發生時間、事件名稱、資料值1、資料值2、資料值3。
  3. Drive folder path 指定檔案在雲端硬碟中的位置。
  4. 修改完成後,請按下Create action.

十一、請按下Continue.

十二、按下Finish完成。

十三、點選如下圖中的Webhooks圖示

十四、點選 Documentation

十五、測試

輸入你設定的Event name (googlesheet2),value1輸入1,value2輸入2,並按下Test it. 如果成功,就會看到圖中綠色區域的文字Event has been triggered.

成功囉!

讓我們去檢查一下檔案看看吧!

一、請登入你設定的google帳戶之網路碟碟。

二、果然,在google雲端硬碟內,我們先前設定的路徑 IFTTT/MakerWebhooks/googlesheet2中,被新增了一個檔名為我們事先指定的 IFTTT_Maker_Webhooks_Events2 試算表。

三、檢查檔案內容,被新增了一列,第一欄是時間、第二欄是事件名稱、第三欄是資料1、第四欄是資料2。

四、成功囉!

建議參閱:IFTTT 物聯網應用

使用BrainGO + ESP8266(ESP-01為例) 連上WIFI 並藉由 IFTTT 傳送資料到 google試算表

一、接線

BrainGO(Arduino) Rx 3 <-> UTXD ESP8266(ESP-01)
BrainGO(Arduino) Tx 2 <-> URXD ESP8266(ESP-01)
外接電源 (Arduino) 3.3V <-> CH_PD ESP8266(ESP-01)
外接電源 (Arduino) 3.3V <-> VCC ESP8266(ESP-01)
BrainGO(Arduino) GND <-> GND ESP8266(ESP-01)
注意,BrainGO沒有3.3V輸出,要外接3.3V的電壓,不然ESP-01會燒毀。
若改接 NodeMCU 、ESP32等無線模組,則模組的VIN或5V,可直接接BrainGO的V+腳位,或Arduino的5V腳位。

二、mBlock5積木

注意:積木的Tx和Rx和我理解的相反!原作者的意思是,ESP-01的Tx接3,Rx接2。
若改用NodeMCU或ESP32等其它模組,請修正鮑率為115200。

三、結果

要注意會有資料漏登的問題。

關於IFTTT的設定建議參閱本站文章
IFTTT 物聯網應用

Follow by Email