我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195


數位寫入是最基礎的Arduino課程,用來指定某腳位輸出高電壓(HIGH=3.3V)或低電壓(LOW=0)。通常我們必須先告訴ESP32要使用那一個腳位,是用作輸入偵測,還是輸出以開啟某個裝置(例如LED),語法則是

  • pinMode(腳位,模式);//宣告腳位模式語法腳位是腳位編號,模式則有作為輸入INPUT或輸出OUTPUT,都是大寫
  • digitalWrite(腳位,電位);//數位寫入語法,腳位是腳位編號,電位則有HIGH或LOW都是大寫,也可以寫1或0

這裡要注意的是ESP32的腳位(如下圖,腳位解說可參閱本文:第一篇 ESP32 Arduino開發環境架設),除了灰色系統用之外,GPIO34-39僅能提供INPUT,另外有些腳位則是有特殊用途,因此筆者會先避開

  • TXRX:GPIO1、3
  • I2C:GPIO21、22
  • SPI:GPIO5、18、19、23

image
                                                      ▲ESP32編號腳位圖

一、ESP32+LED線路佈置

ESP32不像arduino把插孔預留在主板上,而是腳位向下,因此為了方便起見,多會將ESP32插入麵包板中(如下圖),方式是將ESP32的USB插孔朝下,麵包板的編號1朝下,數字多的朝上。

將ESP32腳位對準後,完整用力的壓入麵包板中,避免接觸不良。

image
                               ▲ESP32插入麵包板的方式與位置

再加上ESP32-S的腳位是寫在下方,一旦插入麵包板就無法看到腳位,為了方便起見,會指定所有學生插入相同的位置,參考下圖,不過這樣就會變成實際GPIO編號與麵包板序號不同,例如你可能會說將LED長腳插入GPIO4,學生可能會以為是右側4號,也就是GPIO15,這個很常發生。因此腳位圖,是非常好用的。

我們先準備一個LED,LED的口訣是「長正短負」,也就是長腳接正極,短腳接負極(在arduino中負極可視為GND=接地),這次我們要用GPIO15作為練習,因此我們將它長腳插入GPIO15(麵包板右側4號),短腳插入右側藍色線的位置,這裡預設是要作為GND,因此最後我們再拿一根公對公杜邦線將GND(麵包板右19)引入右側藍色線的位置,這樣整個右側藍色都是GND。

如此便算是設定好本次練習的線路,接下來就可來寫程式。

image
                        ▲ESP32 LED練習接線圖

二、程式撰寫

這次我們來練習LED最常見的範例叫做Blink,也就是閃耀,我們希望它亮一秒後,暗一秒,不斷的重複,
開啟Arduino IDE後,寫入以下程式,相關說明都註解在程式內。


void setup() {

文章標籤

夜市 小霸王 發表在 痞客邦 留言(0) 人氣()

我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195


架構好ESP32的開發環境後(http://t.ly/O3jqD),就可以開始寫程式,一般來說除了一開始的helloworld之外,arduino有很多感測及輸出模組(塊),依據難度可以暫時分成以下幾個類型,以後會依序介紹。

  1. 數位輸出:供電就會啟動,不需要任何控制,例如:LED、Relay、錄放音等,LED也可作為類比輸出pwm
  2. 數位感測:這類感測器只會提供兩個選項:HIGH(高電壓)、LOW(低電壓),例如振動感測、人體感測器HC-SR501、觸摸感測器TTP223B,有人經過時會給HIGH,沒人時會給LOW。
  3. 類比感測:這類項目比較多,例如火焰大小、水位、雨滴、土壤、氣體mq2,這類感測可以提供一個0-4095之間的數值,例如水位感測的數值為100,代表該處有一點點水,若回覆4095則是代表水已經滿了,因此類比感測能提供變化較多的數值提供使用者作為參考。
  4. 類比輸出:蜂鳴器、伺服馬達、DC馬達等,在ESP32中類比輸出pwm稍微複雜些,可以引入analogWrite的lib,或者直接寫ledcSetup控制。
  5. I2C類感測器:例如1602LCD、MPU-6000陀螺儀加速器。
  6. SPI模塊:高速傳輸設備,例如SD卡、RC522 RFID、TFT顯示器等。
  7. UART模塊:源自於RS232,例如BLE藍芽通訊,也可以用來讓兩個arduino傳輸資料
  8. 其他特殊類:例如WIFI網路、聲音、影像,這類較為複雜的傳感器,需要透過特殊的函式庫來讀取資訊。

這裡我們先從最簡單的HelloWorld開始吧。

HelloWorld

先了解Arduino的程式結構,主要分成Setup()與Loop(),Setup用來做初始設定,Arduino只會執行一次,然後就會執行Loop,Loop就是迴圈,會不斷重複的執行,一般要做什麼重複感測(例如每1分鐘感測一次溫濕度),都會放在Loop這裡。

image

通常我們第一個程式是標準HelloWorld,用以檢測開發環境是否正常、晶片有沒有故障之類。而這隻程式暫時沒有用到Loop,我們僅須寫在Setup中。

HelloWorld程式會用到第一個物件Serial:序列通訊,用以將Arduino的資訊傳輸到開發工具的序列視窗,如果你常寫程式的話就是Log除錯的功能,將獲得的資料顯示出來,主要是Arduino沒有程式中斷點(Breakpoint)功能,所以Serial非常重要,每一隻程式幾乎都會用到。

Serial.begin(115200);//代表以胞率115200啟動序列通訊,另外一個常見的胞率是9600,兩者速度對人類來說是幾乎一樣的,這裡建議先用115200。
Serial.println("Hello World!");//代表在訊列視窗中顯示HelloWorld並換行,另外一個語法是Serial.print(),這樣的寫法是印出資料後不換行。
delay(1000);//delay代表休息,1000=1000ms=1秒,所以這句代表休息一秒
整個程式的意思將HelloWorld每秒印在序列視窗一次,重複執行不停止。

image
點選上傳程式按鈕後,ESP32要注意需要在畫面出現.....____......____.....時
按住ESP32右下側按鈕(BOOT或標示為IO0)不放,直到畫面跳開
如果太晚放開,要在燒錄完畢後,按一下左側RESET重開機以開始工作  

image

image

完成程式上傳後,點選開啟序列視窗按鈕,可以看到每秒不斷出現的Hello World,若無顯示任何資訊,請先檢查胞率設定是否相同。

文章標籤

夜市 小霸王 發表在 痞客邦 留言(0) 人氣()

我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195


因朋友的需求,所以做了一個網路控制的mp3播放器,控制方式是使用web的url讀取內部指令,其實我也做過藍芽跟紅外線的,晚點再整理一下。

一、材料準備

  1. ESP32:詳細說明請參考網址 https://youyouyou.pixnet.net/blog/post/119410732,(露天搜尋https://t.ly/p7A6M)
  2. Dfplayer mini mp3:在露天搜尋"Dfplayer",另外還有一款mp3-TF-1xP,其結構功能是完全一樣的
    image
  3. Speaker:露天搜尋"Arduino 喇叭 歐姆",網路常見的是8歐姆,也可以買更大的
    image
  4. 記憶卡:依照需要購買適合大小的記憶卡,記得最高支援32G,太大不支援

二、接線,請參考下圖

  1. RX接在GPIO13,編號可以在程式內更改,本次使用esp32的硬體序列,而以往的經驗ESP32的軟體序列似乎有點問題。
  2. TX這裡我沒接,功能是可以查詢mp3 player的狀態,因為我沒有用到所以沒接
  3. speaker可不分正負極
    image

 

三、複製mp3到記憶卡中

  • 依照規定,先在記憶卡中建立一個名稱為mp3的資料夾,再將需要播放的mp3檔案放入,檔案必須更改為000x.mp3
    image

四、寫入ESP32程式

1.下載函式庫並完成安裝: https://github.com/DFRobot/DFRobotDFPlayerMini

2.複製程式如下,並請記得修改第5-6行的wifi連線資訊

五、展示

執行方法很簡單,就是在網址列輸入要播放的mp3檔案,例如輸入「 http://192.168.1.133/?mp3=4; 」代表要播放第四首歌,其中尾巴的「;」不可省略,此處為作為判斷結尾用。
image

若輸入mp3=0;則代表停止播放的意思

文章標籤

夜市 小霸王 發表在 痞客邦 留言(8) 人氣()

【2/10開始,限量早鳥優惠】,👉 https://reurl.cc/Qpy6k0

🎯七大理由必須擁有【智能觸控超短焦投影機】

1️⃣將任何平面變身為23吋觸控螢幕
2️⃣300流明高亮度,不必關燈也能看清畫面
3️⃣造型時尚,跳脫傳統投影機死板造型
4️⃣輕巧便攜帶著走,重量不到1kg
5️⃣替代觸控平板,低藍光,漫反射光線,保護眼球健康
6️⃣超短焦光學投影,離牆50公分即能投影80吋影像
7️⃣內建Android系統,無須連結設備,輕鬆下載海量APP

【輕鬆享受未來科技-募資早鳥優惠折扣省萬元】
【簡單三個步驟,搶先預購早鳥優惠】
1.選擇購買方案
2.提前註冊帳號,預備登入
3.信用卡預備好

➤➤限量搶購,數量有限
👉
https://reurl.cc/Qpy6k0
如想得知最優惠的訊息請隨時鎖定臉書粉絲團與官方網站
Youtube :
https://youtu.be/x_eVXXMuHxg
官方網站 : https://www.pointdidi.com/ FB
粉絲團 :
https://www.facebook.com/ppointdidi/

夜市 小霸王 發表在 痞客邦 留言(0) 人氣()

我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195


之前用YOLO的測試時,在純CPU狀況下以webcam做影像物件辨識,以intel i7, 16G檢測800*600的大小,大概每秒2-4張

不過如果影像是來自ESP32CAM的串流視訊,一樣800*600的大小,會變慢到每秒1張。

若你沒有GPU做加速,但也想要加快檢測速度,可以改用tiny版,速度可以快10倍左右,但是檢測的效果會比較差。
修改的方法很簡單,先下載這個壓縮檔,內部包含兩個檔案,下載網址:https://t.ly/JvKz5

  1. yolov3-tiny.cfg
  2. yolov3-tiny.weights

將上述檔案放置在yolo同一個資料夾中,並修改程式的第30,31行的內容如下:

modelConfiguration = "yolov3-tiny.cfg"
modelWeights = "yolov3-tiny.weights"

image

接下來是測試狀況

1.Yolo標準版效能與測試結果:以我的電腦來說,標準版的檢測大概每秒3張,而檢測效果非常好
就算是只有一隻手,她都能判斷出這是人。

image

2.Yolo Tiny版效能與測試結果:大約每秒30張,只有手的時候就檢測不出來是人,甚至手機如果螢幕沒打開的狀況,她也認不出來是手機。

image

總而言之,要選yolo標準版跟tiny版,視需要而定,需要快不需要準確度,可以選tiny版,如果需要準確,可以選標準(可是會掉格...那還不是一樣)

下次來使用GPU加強物件辨識。


文章標籤

夜市 小霸王 發表在 痞客邦 留言(0) 人氣()

學校買了兩台Zenbo,想想如何來應用,看過很多場所雖然買了這類的機器人,卻只會使用內建的服務
問問天氣、問問名子這種無聊極致的問題,既然買了就要用他來展示學校的空間特色。

Zenbo Junior開發的三種模式

一、預設模式:開機後預設啟動,會出現可愛的臉,也可辨識一些基本語音。

  • 能辨識語音指令包括以下所列
    image
    image
    image

二、Zenbo實驗室:https://zenbolab.asus.com/

  • 實驗室可利用拖曳方式建立程式碼,
  1. chrome為開發模式,cmd執行,開啟chrome

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-running-insecure-content

"C:\Program Files\Google\Chrome\Application\chrome.exe" --allow-running-insecure-content

  1. 開啟https://zenbolab.asus.com/(如有需要,請建立帳號)
  2. 將Zenbo開啟並連上網路,注意,開發電腦必須與Zenbo連上同一個區域網路。
  3. 開啟Zenbo的實驗室APP,觀察IP位址。
    image
  4. 將電腦與Zenbo連線,輸入
    image
  5. 連線後,開始撰寫程式。
  6. 程式完成後,可直接點選執行。
  7. 本界面也是由Python撰寫,因此也可參考其程式碼,點選右上角,可切換積木模式或程式碼模式。
    image

三、Python開發模式

  1. 先至Zenbo SDK下載Python SDK及範例程式:
    SDK:https://zenbo.asus.com/developer/documents/Python-SDK-Getting-Started/Setup-PyZenbo
    範例程式:https://zenbo.asus.com/developer/tools/
  2. 開啟Python(本次使用VScode),執行python setup.py install以安裝Pyzenbo模組
    image
  3. 開啟hello.py後執行,即可聽到Zenbohello
文章標籤

夜市 小霸王 發表在 痞客邦 留言(1) 人氣()

我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195


我開發的程式很多元,雖然都是半調子,但是還能混口飯吃。我開發專案時,通常會混用這些工具,一般前端client會用.net開發windows或b4a開發Android界面,中介層使用IIS HTML、asp.net做資料接取及API,後端常用MySQL資料庫。這樣做速度最快,開發也最穩定。

一、物聯網開發工具:

  1. arduino ide,IoT開發工具:https://youyouyou.pixnet.net/blog/post/119383183

二、網頁及視窗程式開發:

  1. VS.net 2017或2019 社群免費版,大名鼎鼎宇宙最肥開發工具組,全部安裝要你210G,請斟酌安裝開發模組:https://youyouyou.pixnet.net/blog/post/119683104
  2. IIS express,網頁伺服器,如果作業系統是Server版本,請直接使用IIS Server:https://me1237guy.pixnet.net/blog/post/62600393
  3. Github版本控制工具:https://github.com/

三、人工智慧:

  1. anaconda,可建立虛擬環境,用來隔離不同專案:https://www.anaconda.com/distribution/
  2. VScode,可以視為微軟.net簡易版,可跨平台開發多種程式,包括python:https://code.visualstudio.com/

四、資料庫(MSSQL或MySQL安裝一套即可):

  1. Tableau線上即時分析軟體,可對資料庫即時圖形化資料,用來嚇唬人特別有用: https://www.tableau.com/zh-tw
  2. SQL develop,微軟佛心提供的完整版免費SQL Server(但不可作為商業用途):https://www.microsoft.com/zh-tw/sql-server/sql-server-downloads#
  3. SQL Management,SQL Server視覺化管理平台:https://docs.microsoft.com/zh-tw/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
  4. MySQL,免費全能的資料庫,唯一的缺點是跟VS.net語法有點不太相容: https://dev.mysql.com/downloads/
  5. MySQL Cluster,叢集資料庫: https://youyouyou.pixnet.net/blog/post/119326123

五、Android與iOS開發:

  1. Android Studio,android開發工具,記得要開啟設定,下載最新版開發核心版本及模擬器: https://developer.android.com/studio
  2. Java SDK,Java 開發工具,但是好像分成13版跟8版,似乎目前還是8版為主,連結為我的備份:https://t.ly/OdM9l
  3. B4a android快速開發工具: https://www.b4x.com/b4a.html
  4. B4i iOS快速開發工具: https://www.b4x.com/b4i.html
  5. Virtual Box虛擬機器,如果要開發iOS,一定需要一台MAC電腦,此時可以用虛擬機器來做: https://youyouyou.pixnet.net/blog/post/120149406

六、Unity 3D互動:

  1. Unity,可製作3D、VR、AR等互動,目前我還是以2018.2.8f為主: https://unity3d.com/get-unity/download/archive

七、流程圖工具:

  1. Visio超好用的啦

夜市 小霸王 發表在 痞客邦 留言(0) 人氣()

我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195


電子紙是一種最新的顯示裝置,大家也許都有聽過,操作方式雖然跟LCD、TFT差不多,但是電子紙最重要的特性就是用電量很少,而且在無電的狀態下,會保持最後一次顯示的內容,還有就是螢幕180可視,不像LCD, TFT可能只有120度,因此適合用來需要長期顯示,但改變次數不多的環境,例如貨價標籤、一些不常改變的告示、名牌等(我暫時先想到這些)。

今天拿到的是最新的產品,以電子紙平常不耗電的特性,僅用手機的NFC就可以改變電子紙的內容,廠商也提供搭配的APP,只要手機支援NFC就可以立即改變內容。而且過程完全不需用到任何電池,非常適合難以接電的地方,例如貨架、廁所這類(還是想不到很多適用環境)。

無源電子紙

開箱後,先看看外觀,感覺簡潔厚實,也沒有任何接口,應該可以作成防水,現在這款應該是沒做防水。

外觀

 

接下來看看如何更新內容,還有效果如何。
1.首先到微雪網站下載APP(目前僅有Android),網址: http://www.waveshare.net/wiki/4.2inch_NFC-Powered_e-Paper

下載後直接安裝APP,開啟後如以下畫面

Screenshot_2020-01-03-10-40-30-505_waveshare.feng.nfctag Screenshot_2020-01-03-10-40-48-444_com.android.settings  Screenshot_2020-01-03-14-42-05-232_waveshare.feng.nfctag
首頁 需要開啟NFC功能喔 首頁畫面

2.先拿預設的微雪電子圖形來測試(畫面有點模糊...),先選好圖形後,手機靠近電子紙約2-5cm內後,手機就會開始傳輸,大約5秒即可完成圖形上傳。

4.2inch-NFC-Powered-e-Paper-02 Image1
選好圖形 顯示結果

 

3.接下來馬上自拍一張照片來測試看看,因為只有黑白的,所以這個....有點像遺照,建議各位以後不要用自拍

Screenshot_2020-01-03-10-48-53-970_waveshare.feng.nfctag image
先拍好照片 上傳照片

 

4.作成QRcode看看好不好用,先把LINE的QRcode複製下來,用小畫家加上文字。用掃描器確認過是可以掃出來的。

Image4 Screenshot_2020-01-03-10-58-23-088_waveshare.feng.nfctag IMG_20200103_105854
先編好圖形 在APP中調整一下大小 QRcode還不錯

 

5.來做名牌看看,例如做一個評審牌,一樣先在小畫家做好再上傳,不過其實APP裡面也有打字的功能,只是我不太會操作。

namecard IMG_20200103_150332
在小畫家先做好名牌 如果只有文字看起來很不錯

 

6.來做價格標籤看看,一樣先做好價格標籤的圖形,再上傳上去即可看到結果,這裡要注意,如果是實物照片,建議顏色要深一點,不然會不清楚。

上傳過程

 

文章標籤

夜市 小霸王 發表在 痞客邦 留言(1) 人氣()

image

由於個人有開發iOS APP的需求,因此需要一台MAC電腦xcode進行編譯,但是你也知道MAC電腦貴森森,而且我也從心裡討厭APPLE的東西,所以後來就一直在找如何用在VirtualBox安裝MacOS的方式,Google到高人的文章後發現真的可以,就開始實做,並把過程紀錄如下。

參考資料: https://www.geekrar.com/install-macos-mojave-on-vmware/

1.請先自行安裝統VirtualBox主程式及延伸工具組(extension pack)
網址:https://www.virtualbox.org/wiki/Downloads

 

2.下載MaxOS Catalina版本作業系統的虛擬硬碟檔,並解壓縮
(這是網路下載的,原始網址:
https://www.geekrar.com/install-macos-mojave-on-vmware/ )
網址:https://t.ly/AmgLp

 

3.下載VirtualBox Boot Image開機用虛擬硬碟檔,並解壓縮
網址:https://t.ly/gDLmv

 

4.建立虛擬機器:macOS Catalina(名稱可自行修改,但建議先用這個,因為後面的cmd指令已經寫好)

 

5.選擇使用剛剛步驟2下載的Catalina的虛擬磁碟檔案為主硬碟檔

 

6.完成建立虛擬機器後,進入虛擬機器的設定部份,依照需求提高記憶體及處理器個數
建議記憶體4G以上,但不要超過記憶體總量1/2,CPU可選1/2,例如8CPU電腦,可選4CPU。

文章標籤

夜市 小霸王 發表在 痞客邦 留言(4) 人氣()

寫app最快的方法當然是用webview包裝,不過最近android升級為API 28以後,已經不允許明碼傳輸,如果你的webview還用無加密http協定就會出現:

Cleartext HTTP traffic to xxx not permitted

報錯訊息,兩個方法可以解決,一是宣告app允許無加密傳輸,或者就是把自己的網站改為https協定。在這裡四個步驟,很快就能升級網站為ssl加密。

  1. 申請網站dns名稱
  2. 申請網站ssl服務
  3. 安裝openssl將ssl憑證crt改為pfx格式
  4. 設定iis的ssl通信協定

1.申請網站dns名稱

這裡我們利用交通大學提供的免費dns服務:https://nctu.me/

申請方式非常簡單,還中文界面,因此我就不說明太多。

2.申請ssl服務、3.安裝openssl將ssl憑證crt改為pfx格式、4.設定iis的ssl通信協定

這部份完全參考這篇文章:

http://tech.smallya.net/2016/07/07/%E4%BD%BF%E7%94%A8-ssl-for-free-%E7%94%A2%E7%94%9F-lets-encrypt-ssl-%E6%86%91%E8%AD%89%E4%B8%8A%E5%82%B3%E7%B5%A6-iis-%E7%AB%99%E5%8F%B0%E4%BD%BF%E7%94%A8/

在上述free ssl申請網址輸入自己步驟1完成的網址後,下載檔案放置到iis中的.wellknow資料夾中(關於「.wellknow」資料夾要如何在windows中建立,可以參考:https://blog.miniasp.com/post/2017/01/01/Create-gitignore-editorconfig-from-Windows-Explorer

隊很懶....網路資源很多,現在的知識可以透過其他人的知識累積,踏在前人的肩膀上,就看你願不願意跨出那一步。


文章標籤

夜市 小霸王 發表在 痞客邦 留言(0) 人氣()