2022年2月24日 星期四

IOT物聯網─ESP32-S用雲端Google試算表紀錄數據真簡單

 IOT物聯網─ESP32-S用雲端Google試算表紀錄數據真簡單

以前用ThingSpeak來記錄IOT的數據很好用,但是免費版只能大約每日8000筆資料,也就是頂多每15秒上傳一份資料,對於老師們也許不敷使用,所以如果可以用自己的Google試算表紀錄,那就更好了

  1. 硬體:ESP32-S+感測器蒐資料(本例用DHT11溫濕度計接在GPIO4)
  2. 平台:使用BlocklyDuino+吉哥積木

系統拆解就三件事:

  1. (開Google表單)在Google上開啟試算表標示好欄位並將網址、工作表名稱複製記錄起來,並開啟共用編輯權限
  2. (物聯網設備上網)ESP32-S要上網連接到無線AP
  3. (寫傳送資料程式)使用吉哥積木的物聯網分類下的Google試算表積木,ID就是網址內試算表的ID、工作標籤名稱設定一致、時間標記與傳接儲存的資料給他即可

開始實作囉

安裝BlocklyDuino+吉哥積木,請參考以下網址

如何安裝吉哥自製積木

Google試算表處理

先上網登入Google進入雲端硬碟,新增試算表

將工作表上的標籤、欄位名稱設定好


設定共用編輯權限為可以編輯

複製網址內的表單的ID,就是”https://docs.google.com/spreadsheets/d/中間這一串/edit#gid=0”

ESP32-S要上網連接到無線AP


找到吉哥提供的Google試算表積木



寫Google試算表積木程式如下



ID就是網址內試算表的ID:2的部分
工作標籤名稱設定一致:3的部分
時間標記與傳接儲存的資料給他即可:4、5的部分


燒錄完程式,ESP32-S重新上電開機,你的雲端試算表就會開始收到資料囉

記得程式內要有等待時間,還有不用要拔掉電,以免你的試算表爆炸!




2022年2月23日 星期三

IOT物聯網─ESP32-S用LINE通知原來這麼簡單

IOT物聯網─ESP32-S用LINE通知原來這麼簡單

  1. 硬體:ESP32-S+感測器蒐資料(本例用DHT11溫濕度計接在GPIO4)
  2. 平台:使用BlocklyDuino+吉哥積木

系統拆解就三件事:

  1. 在電腦上進入Line Notify網站設定權杖
  2. ESP32-S要上網連接到無線AP
  3. 使用Line Notify積木填入權杖與要發送的資訊即可

開始實作囉


安裝BlocklyDuino+吉哥積木,請參考以下網址

如何安裝吉哥自製積木

在電腦上進入Line Notify網站設定權杖

進入line notify網站,登入你的line帳號,網址:https://notify-bot.line.me/zh_TW/

登入後點選你的名子內的個人頁面

在左下角點選發行權杖
設定這個通知服務的名稱日後判斷增刪服務用,然後搜尋點下方你要通知的群組或個人,按發行
將系統出現的權杖複製起來即可

ESP32-S要上網連接到無線AP

打開你的BlocklyDuino,開始撰寫ESP32-S上網的程式
先連接你可用的Wifi輸入SSID名稱與密碼


使用Line Notify積木填入權杖與要發送的資訊即可

使用法蘭斯或吉哥積木中的LINE通知積木
貼上剛剛的權杖與想通知的訊息內容
就可以將想傳送的資訊傳送給LINE群組中
請記得要等待一段時間不然你的LINE會爆掉...







燒錄完程式,ESP32-S重新上電開機,你的手機就會開始收到訊息囉

號外:OSEP也有LINE通知功能,也是超簡單









2022年2月22日 星期二

motoduino ESP32-S 物聯網套件測試-02測試OLED是否可以正常工作

motoduino ESP32-S 物聯網套件測試-02測試OLED是否可以正常工作

任何感測器和元件使用我都指導孩子遵循這樣的原則:
先了解再測試,先觀察再使用

慧手科技的imoto ESP32 I/O擴充板上有很聰明的OLED擴充插座,腳位是設計剛好的,OLED(SSD1306)直接插上去即可,不用認腳位,唯一要注意,若是你使用了OLED且另外還有設備會用SDA(GPIO21)、SCL(GPIO22)這兩個I2C腳位,設備的位置指定不能衝突。


OLED的接線與位置選用

而OLED(SSD1306)是I2C介面,一般也是使用G/V/SDA/SCL的I2C腳位,在位置的選擇上則是要看OLED背面的跳線電阻的位置,如下圖,這片OLED的位置跳線電阻是在0x3C這個位置,所以在寫程式時,只要使用這片OLED就要指定這個位置即可

程式積木

在Blockly的介面,OLED的選項在顯示器的選項下,只要點選小箭頭即可出現OLED(SSD1306)
於是我們寫了一小段測試程式如下,而OLED的用法是先將要顯示的內容、位置決定好之後,記得要“顯示“才會動作,在這套積木裡面,未設定前無法使用中文(後面說明),所以如果你有輸入中文的部會直接跳過,請先用英文測試
然後就可以正確顯示閃爍的內容

OLED的顯示位置

在OLED的排版上,這片的尺寸有0.66~1.54吋,解析度都是128x64點,座標的決定是(行,列)
,原點是左上角(0,0),右下角是(128,64),而英文字的定位點是字串的左下角,而字的大小由程式決定(內定10pt)

不過英文字每行之間最好留5pt因為英文單字某些會下延伸


OLED的繪圖

繪圖也都能正常顯示,要記得使用顯示積木

OLED的中文顯示

如果要使用中文,得先設定中文的字型積木,但是因為ESP32S的記憶體不足以容納所有的中文字,所以要使用中文需要慧手提供的方式處理如下:
原則上就是先在str.txt 檔加上您會用到的中文文字,然後按照下方步驟,用powershell 建立字型檔,有興趣的朋友可以試試!未處理前只有少數中文字可以呈現。

中文的使用:
先在"文件/arduino/libraries/u8g2” 資料夾,修改str.txt, 將需要顯示的中文字先輸入到文件檔案內,存檔離開


然後在檔案總管中,make_cht_font.ps1上按右鍵,以PowerShell執行,(make_cht_font.ps1, 會將要顯示的中文字檔,建立一個 C 程式檔)

執行後會產生新的 u8g2_font_unifont.c,使用到的中文字檔後,重新在motoBlockly編譯上傳後,即可顯示中文


終於可以正常顯示中文囉!

2022年2月10日 星期四

motoduino ESP32-S 物聯網套件測試-01測試ESP32設備是否正常工作與motoduino_IOT介面是否正常

 motoduino ESP32-S 物聯網套件測試-01

一拿到設備最先要做甚麼?當然是測試軟硬體有沒有問題

ESP32-S的主板各種形式多家晶片型號眾多,要先確認軟體能用和燒錄選項型號的對應關係,所以最簡單的就是接上設備開啟軟體,寫一個最簡單的內建燈光閃爍的程式,直接燒錄測試

所以經過我們的系統拆解後有幾件事:

  1. 確認軟體平台是否可以正常使用,我們用的是motoduino慧手科技的網頁版motoblockly_IOT。
  2. 燒錄的時候參數,包含基板型號選項與PORT接口。
  3. 燒錄的時候的程序。
  4. 硬體是否能正常運作

測試開始

我們到motoduino的網展點選左邊的積木後會進入寫程式的平台頁面

網址google 慧手科技或motoduino就能找到:https://www.motoduino.com/


在右上角選取板子為ESP32,順便看一下林老闆這個平台支援了眾多板子燒錄,但是ESP32板子選項只有一塊,所以選它就對了,沒別的好選,重點是你自己採買的時候要買對ESP32-S,或是直接找慧手科技購買就不會買錯。選好型號後左邊的積木會閃一下更換成ESP32可用的積木。
然後將microUSB接上你的ESP32-S,記得要上CH340或是CP2102的驅動,看你買的主板用的是哪個版本,然後寫最簡單的閃燈程式,ESP32內建的LED燈位置在GPIO2所以你將腳位指定到第2腳即可

切換到ESP32的頁籤準備燒錄,在這之前請注意要先安裝broker,下載位置在這朵雲上
安裝後並保持broker開啟


接下來確認一下右邊是選ESP32,PORT它會自動找,有問題再自行設定即可,然後點選紅色箭頭燒錄,並按下確定

然後你會看到broker跳出一堆資訊,主畫面就會顯示燒錄完畢,如果有任何失敗,broker內的資訊就能提供你判斷再除錯


接下來你就能看到你的ESP32,在電源燈旁有另一顆燈在閃爍,表示大成功沒問題

額外BOUNS!

順便提一下,剛剛發現慧手這塊ESP32的擴充板的擴充針腳供電,可以用JUMP挑選由主板供電3.3V,或是外接電供應5V,真是聰明的做法,這樣就可以共用之前ARDUINO那一堆萬用感測器囉!而且外部供電馬達類舵機和燈條比較不會有電流不足帶不動的問題。太讚了。



反省:

物聯網主板型號眾多、
寫程式平台控制軟體眾多,
3.3V和通用型5V感測器銜接問題...等等,害我一直猶豫不前 現在看來這樣的組合應該可以簡單無痛的開始,真棒 感謝 Motoduino 慧手科技 Lin Sam 看來之前受到的挫折和陰影就是因為買錯ESP-32S主板

接下來就要進入感測器的使用囉
然後才是進到物聯網和其他服務


學習跟教學一樣都需要系統拆解
拆解過後小任務目標單一較簡單
如果你覺得平常教學或學習很難
試試運算思維系統拆解超級強大