目前分類:ESP32(Arduino) (97)

瀏覽方式: 標題列表 簡短摘要

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


ESP32CAM感測超音波後傳Line通知

請做好準備工作:

1.先要有一個ESP32CAM:可參考本賣場:https://www.ruten.com.tw/item/show?21910115309507,有CH340或CP2102可選,CH340測試可參考本篇:https://youyouyou.pixnet.net/blog/post/120556711

2.安裝環境並測試自己的ESP32CAM:可參考本文:https://youyouyou.pixnet.net/blog/post/119383183

完成上述準備工作後,接下來設定LINE帳號

3.Line Notify權杖(密碼):請參考本篇文:https://youyouyou.pixnet.net/blog/post/120275932

4.ESP32CAM安裝超音波並測試:

將ESP32CAM與超音波連接,

超音波 ESP32
VCC VCC
Trig GPIO15
Echo GPIO14
GND GND

由於ESP32CAM的電壓輸出只有3.3V,因此要記得購買3.3V的超音波,筆者有誤用5V超音波導致無法感測的經驗。

測試超音波狀況


int TrigPin =15;//發出聲波
int EchoPin =14;//接收聲波
float CM_Value;
void setup(){
  Serial.begin(115200);
  pinMode(TrigPin, OUTPUT);
  pinMode(EchoPin, INPUT);

文章標籤

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

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


今天介紹如何透過.net framework來播放ESP32-CAM的video stream,咦?為什麼需要這麼搞缸用到.net?ESP32本身就有網站可以做Stream Server,為何還需要用PC來接?

其實也是,如果你只是需要播放即時影像當作監視器來用,這樣就差不多了,不過本篇所談要透過.net來承接影像,最大的優勢是「你可以完全掌控影像」,因此後續要做智慧辨識、即時錄影、肢體分析等等,就變成在PC或Server來做,相形之下都會簡單許多。畢竟你要讓一個記憶體只有4M的MCU來做類神經運算或openpose等人工智慧分析也太強人所難。.

本教學之結果呈現如下圖,可承接多個ESP32-CAM之來源進行直播及分析

本範例我們分成以下幾個部份來說明:

一、在PC上安裝VS.net 2017
二、在ESP32-CAM上安裝Video Stream Server
三、撰寫.net串流程式並測試結果
四、對影像進行錄製


一、在PC上安裝VS.net 2017
本部份請參閱之前的文章「 ESP32-CAM 自動拍照並上傳伺服器(http file post)

二、在ESP32-CAM上安裝Video Stream Server
本部份請參閱之前的文章「 ESP32-CAM(ardunio)拍照auto take picture、串流stream及物件辨識object detection
露天搜尋ESP32-CAM: https://goods.ruten.com.tw/item/show?21910115309507
完成後,在序列通訊窗查看ESP32-CAM所取得的IP,其中要注意的是這次要用的是stream的串流網址,因此選擇「http://192.168.x.x:9601/stream」這個網址,先記起來下個步驟會用到。

三、撰寫.net串流程式
本部份將介紹如何建立.net串流的部份,分成7個步驟

文章標籤

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

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


ESP32什麼都好,但是PWM是一個問題,傳統UNO可以用analogWrite簡單的實現類比輸出,像是讓LED慢慢亮起,或者發出不同頻率的蜂鳴器等,但是ESP32沒有analogWrite的功能。

一開始我幾乎沒用到PWM所以也沒差,後來有學生問如何用RGB LED才發現我不會,google一下才發現原來是用LEDchannel參閱:「 https://randomnerdtutorials.com/esp32-pwm-arduino-ide/ 」,依據規格書ESP32合計有16個LEDchannel,只是我沒用過這麼多,曾經測試一顆RGB LED用了三個LEDchannel沒問題,就沒測試更多的時候會不會運作。

程式的部份主要分成三個:1.設定頻道LEDchannel、2.附加到PIN腳、3.決定輸出大小。

1.設定頻道LEDchannel屬性

ledcSetup(LEDChannel, freq, resolution);
//LEDChannel設定為0-15(自己猜的),不同輸出要設定到不同頻道,例如RGB LED就要開三個頻道分別管理R、G、B
//freq輸出頻率,建議值5000 Hz
//resolution代表輸出解析度,例如8代表0-255,10代表0-1023

2.附加到PIN腳

ledcAttachPin(ledPin, LEDChannel);
//ledPin代表腳位,看你把設備接在哪個腳位上面
//LEDchannel代表步驟1所宣告的LEDchannel,也就是說把設定好的LEDchannel屬性附加到某個腳位上

3.決定輸出大小。

ledcWrite(LEDChannel, dutyCycle);
//將LEDchannel輸出dutyCycle的值。

以下範例程式將使接在Pin16的LED逐漸亮起並熄滅,本範例複製於 https://randomnerdtutorials.com/esp32-pwm-arduino-ide/


// the number of the LED pin
const int ledPin = 16;  // 16 corresponds to GPIO16

文章標籤

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

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


繼上篇:ESP32-CAM(ardunio)拍照auto take picture、串流stream及物件辨識object,能拍照並存檔,這次要介紹如何將照片上傳到特定的伺服器,本篇文章使用上傳方式是目前最常用的http post,相當多API都使用這類方式,當然另外有其他方式待以後在介紹。

要完成本篇文章,請依序完成以下主題

完成以上測試後,就可以進行以下內容,以下內容主要分成一、ESP32-CAM端及二、伺服器接收端,ESP32-CAM拍照後,將檔案以HTTP POST方式上傳到伺服器,因此你必須準備一台電腦並安裝web服務,以下分別介紹

一、ESP32-CAM部份

ESP32-CAM主要進行拍照存檔並上傳,拍照可定時拍照,或像「ESP32-CAM(ardunio)拍照auto take picture、串流stream及物件辨識object」以人體感測進行拍照,本範例簡單起見,採用每30秒定時拍照。範例程式放在本篇最後方,請注意,須修改以下內容:

  1. 第66-67,請修改成自己的wifi設定的SSID與密碼
  2. 第68-69,請修改成自己的web server的IP(或DNS)與接收照片的html檔案的URL。
  3. loop(1211-1220)區塊中,目前以30s自動拍照,若有需要可以刪除第1213及1219的if區塊註解。
  4. 本文主要多了一隻副程式「wifisendfile」進行檔案上傳,wifisendfile需要三個參數,分別是檔案位置與名稱、上傳伺服器IP以及接收照片的HTML檔案位置。

二、伺服器接收端

伺服器的實做,有很多選擇,可以用linux+PHP或者windows+IIS+APS.net等等,由於本人比較熟悉.net平台,因此以下介紹如何利用asp.net來接收ARDUINO傳來的檔案。

  1. 首先電腦必須安裝IIS或IIS express,安裝流程可參閱: http://charlesbc.blogspot.com/2011/01/iis-express_16.html
  2. .net安裝開發環境,目前包括VS.net 2017或2019,都有社群免費版可以選擇,下載網址: https://visualstudio.microsoft.com/zh-hant/downloads/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=button+cta&utm_content=download+vs2019&rr=https%3A%2F%2Fdocs.microsoft.com%2Fzh-tw%2Fvisualstudio%2Finstall%2Finstall-visual-studio%3Fview%3Dvs-2019

    安裝時,請至少選擇以下幾個模組,其餘您自行斟酌是否需要安裝,VS.net是一個宇宙最肥沒有之一的開發平台,安裝時請注意自己的硬碟空間

    完成安裝後,啟動VS.net主程式,並開啟本地端IIS站,就可進行下一步。



     
  3. ASP檔案接收的程式部份,由於本人已經是old school了,就以最擅長的vb.net寫範例程式。

        Private Sub default_Load(sender As Object, e As EventArgs) Handles Me.Load
            '0檔案上傳處理

文章標籤

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

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


ESP32-CAM是ESP32為主版並外掛相機,ESP32本身就已經內建WIFI跟藍芽,而ESP32-CAM竟然還加了相機給你,而這樣的東西竟然不到三百台幣,這樣的好東西當然要發揮他最大效能。
ESP32-CAM is an extended dev board based on ESP32 which already built-in WIFI and BT4.0. Additionally, ESP32-CAM combines ESP32 and OV2640, and only costs about US 7$.

ESP32介紹: http://youyouyou.pixnet.net/blog/post/119410732 
ESP32-CAM介紹: http://youyouyou.pixnet.net/blog/post/119383183

本次要介紹的主題是當作門禁,透過人體感測器,感測到活動時自動拍照,並存在SD卡中。
This post introduces how to use ESP32-CAM and PIR(SR501) as a surveillance camera and will take pictures to save to sd card when people active.

一、ESP32-CAM環境架設(ESP32-CAM Arduino IDE environment setup)
二、材料準備及接線(Material prepare )
三、程式撰寫(Source code)
四、程式上傳並測試(Upload and test)


一、ESP32-CAM環境架設(ESP32-CAM Arduino IDE environment setup)

關於環境架設,請參考這篇前作ESP32-CAM介紹: http://youyouyou.pixnet.net/blog/post/119383183,依照步驟完成環境安裝並測試。
About ESP32-CAM arduino IDE environment setup, you can follow this post.

二、材料準備及接線(Material prepare )

本次須準備的材料包括

  1. ESP32-CAM dev board主版,這次本人使用廣角鏡頭,視野真的變得很廣,露天搜尋: https://goods.ruten.com.tw/item/show?21910115309507
  2. USB-TTL(本人使用Prolific USB-to-Serial TTL: http://youyouyou.pixnet.net/blog/post/119643042 ,但個人不推這款)
  3. 人體感測器(SR501)

接線方式

  1. 先依照上圖將USB TTL與ESP32-CAM連接,紅->5V、黑->GND、白->U0T、綠->U0R。connect USB TTL to ESP32-CAM by this table.
    USB TTL ESP32-CAM
    5V
    GND
    U0T
    U0R
  2. 將人體感測器與ESP32-CAM連接,VCC->5V或3.3V、OUT->IO13、GND->GND。connect SR501 to ESP32-CAM by this table.
    SR-501 ESP32-CAM
    VCC 5V或3.3V
    OUT IO13
    GND GND
  3. 另外準備一條母母杜邦線,燒錄時,需要將ESP32-CAM的GND->IO0對接,燒錄完後拆除。you also need a line for connecting GND and IO0 while uploading.

三、程式撰寫(Source code)

文章標籤

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

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


「esp32-cam sd card」的圖片搜尋結果

假設你有一個ESP32-CAM,但是你可能暫時用不到CAM的部份,而要用內建的SDcard (以下簡稱TF)來紀錄溫濕度等資訊,可以參考本篇文章

另外使用本公司所開發的Matrix板,其TF卡一樣使用SPI,完全可以相通。

image

首先準備一張TF卡,測試過可讀取32G以下的記憶卡,64G讀不到,放入卡槽之後,執行以下原始檔,進行讀寫測試

本原始檔包含以下幾個副程式,功能列表如下,請注意的是「/」代表根目錄,不可省略:

函數 功能
listDir(SD_MMC, "/", 0); 列出SD卡中的所有目錄
createDir(SD_MMC, "/mydir"); 建立一個名稱為mydir的目錄
removeDir(SD_MMC, "/mydir"); 刪除一個名稱為mydir的目錄
writeFile(SD_MMC, "/hello.txt", "Hello "); 在hello.txt中寫入"Hello"
appendFile(SD_MMC, "/hello.txt", "World!\n"); 在hello.txt中附加"World!\n"
readFile(SD_MMC, "/hello.txt"); 讀取hello.txt並顯示
renameFile(SD_MMC, "/hello.txt", "/foo.txt"); 更名hello.txt->foo.txt檔案
deleteFile(SD_MMC, "/foo.txt"); 刪除foo.txt
testFileIO(SD_MMC, "/test.txt"); 測試執行效率

原始碼如下

 

 

關於ESP32-CAM可以參考本文: http://youyouyou.pixnet.net/blog/post/119383183

ESP32-CAM露天搜尋: https://goods.ruten.com.tw/item/show?21910115309507

https://github.com/v12345vtm/CameraWebserver2SD/blob/master/CameraWebserver2SD/CameraWebserver2SD.ino
This post referred to this git. I just trimed cam and wifi part.
本文參考

 


文章標籤

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

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


目前我已經全面改用新款CP210x的USBTTL,這款不僅穩定,而且驅動程式與ESP32是完全相同的。建議大家採用。

如果拿到PL2302的線,建議直接丟垃圾桶

區別的方式:這款式粉紅外殼的,讀者如果在網路購買,記得要問清楚賣家,是不是搭配粉紅外殼的CP210x USBTTL喔。

21910115309507_182

 


ESP32-CAM使用Prolific USB-to-Serial TTL( PL-2303HX

有人介紹我有款USB-TTL非常便宜,我打了電話,結果真的很便宜,但是出問題了。

還好,只是驅動程式不合而已(這款太舊了,難怪很便宜)

正確的驅動方式如下

1.首次安裝
插上Prolific USB到電腦的USB後,點選我的電腦/右鍵/管理,然後選擇裝置管理員會出現該裝置,名子正確,但是前面有驚嘆號,而且此時無法寫入資料

2.移除預設驅動

移除裝置,並選擇刪除驅動程式

 

文章標籤

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

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


Arduino儲存資料除了用SD卡外,最重要的就是用網路上傳到雲端儲存,目前最流行的還是以Thingspeak,優點是方便,缺點是如果要自己分析這些資料時比較麻煩,此外也可以參考之前的文件:Arduino存入Mysql資料使用ESP32可以直接存入mysql,不過這樣要自己架伺服器,如果說能存入google sheet那不用自己架站,也可以很快分析自己的資料。

本案例以說明如何使用ESP32將DHT11溫濕度存入IFTTT中以下簡要說明步驟

一、申請IFTTT
二、建立Applet webhook服務
三、測試服務
四、Arduino程式碼


一、申請IFTTT服務: https://ifttt.com/

這是一個網路IoT非常流行的服務,負責幫你導向做一些反應(我也不知道如何解釋),例如溫度超過100度,就做什麼反應,很多人可以用來搭配LINE訊息或者gmail等
IFTTT的意思是If This Then That的縮寫

首先進入網站後,進行註冊,建議直接使用Google帳號。

註冊過程本處省略。


二、申請Webhook服務:

Webhook意思是web掛勾,可以解釋成一種不同網路服務之間的連鎖反應,hook就是虎克船長的手,可以用來勾東西,申請這個的意思是,當我們把資料送到IFTTT時,讓IFTTT做一些判斷後再幫我們把資料轉到其他地方去,本例就是利用hook轉送到google sheet中。

1.點選左上角的my applet後,點選右方的new applet

2.點選大藍色+this圖塊

文章標籤

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

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


本篇已有更新版,敬請參閱:https://youyouyou.pixnet.net/blog/post/120275917

 

 

Arduino存入資料庫很有多方法,目前常見的還是以http get或post方式,例如php或asp.net,或者第三方轉接的例如IFTTT。

今天簡單介紹如何直接存入mysql的方法,其實沒什麼大工程,用Mysql library而已。個人比較不建議這種方式,畢竟這樣等於是把mysql放到Internet中,反之如果透過http get post修改或新增資料,權限跟內容由web程式控制,有較高的安全性。

以下以二個部份說明

一、環境設定:安裝mysql及wokbench

二、程式開發:在Arduino IDE中撰寫程式


一、環境設定

為了測試是否可行,以下介紹安裝相關測試軟體,mysql最大的好處是,他是免費的,執行效能也不差,另外就是workbench,這是懶人的福音,如果你跟我一樣,對cmd界面不熟悉,你一定要安裝workbench,他提供你完整的mysql圖形界面操作模式,真心推薦。

1.安裝mysql伺服器,安裝方式網路非常多介紹,請自行google,或參考這篇: https://jerrynest.io/windows-mysql-installer/ ,下載的網址: https://dev.mysql.com/downloads/installer/ ,題外話,如果你想用cluster版,可參考本人本篇文章: http://youyouyou.pixnet.net/blog/post/119326123

2.安裝workbench,下載網址: https://www.mysql.com/products/workbench/ 

3.將workbench連線到mysql資料庫,這個步驟的目的在於開放使用者可進行遠端登入,讓arduino以遠端更新資料庫資料

開啟workbench,一般都會建立一個連線是直接連線到本機端mysql,直接打開即可。

開啟後,要調整使用權限,你可以建立一個新的使用者,或者修改root使用者由原本的localhost改為%,代表該使用者可以從網路上任何地點連進資料庫來進行修改。

要注意的是,你若是用新建使用者,那記得要去調權限Administrative Roles跟能使用的資料庫Schema Privileges。

文章標籤

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

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


本篇新版文章請參閱:第十六篇 ESP32 藍芽BLE連線:即時通訊與語音指令

ESP32是個好東西(可參閱這篇文ESP32 Arduino開發環境架設),今天來說明一下如何用手機的藍芽進行簡單的通訊與控制

範例影片: https://www.youtube.com/watch?v=hUC-MHM_P04&feature=youtu.be&t=215

首先準備器材
1.ESP32:NodeMCU-ESP32s(露天搜尋: https://goods.ruten.com.tw/item/show?21848118800764
2. 2個繼電器
3. 一個USB風扇
4. 一個LED檯燈
5. Android手機,並安裝這個APP: Arduino Bluetooth Control(由於新版不相容,請下載我備份的舊版APP:https://t.ly/YRWpD) ,其他APP不是不行,而是這個APP有支援語音命令,真的很好玩。
alt text

在這裡還是要強調一下,ESP32個人推NodeMCU-ESP32s,為什麼?因為這顆有5V,其他大部分ESP32只有3.3V,這時你要推relay就推不動了。

很快的說明原理,透過藍芽傳送字元來控制腳位,例如手機透過藍芽傳送字元"1",ESP32收到以後就開啟GOIP4->HIGH,而這個動作就是透過繼電器將風扇開啟,其餘都是相同的方式,以下分成幾個步驟簡要說明如何做

手機藍芽指令 ESP32動作 動作結果
1 GPIO4->HIGH 開啟風扇
2 GPIO4->LOW 關閉風扇
3 GPIO16->HIGH 開啟電燈
4 GPIO16->LOW 關閉電燈

一、接線與架設
準備好ESP32以後,將繼電器接在GPIO16與GPIO4上(其他也可以,主要是配合我的程式碼),然後接風扇與檯燈分別接在兩個繼電器上。其架構如下圖,也就是將透過兩個繼電器來控制兩個電器。

alt text

二、撰寫程式碼

ESP32藍芽的程式碼撰寫非常簡單,比arduino+HC05簡單多了,首先少了接線,再來改名子也不用AT模式,也不用指定胞率,學過ESP32藍芽以後,你會覺得相認恨晚(應該沒那麼誇張)。

文章標籤

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

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


請注意此篇內容已過時,請參閱新的內容:https://youyouyou.pixnet.net/blog/post/120080436

iBeacon 技術規格文件

露天賣場: https://goods.ruten.com.tw/item/show?21828335470340

一、    基本規格
A:NRF51822 Beacon
51822-iBeacon 無線模組採用Nordic 高性能無線SOC 晶片NRF51822 開發。是一種針對藍牙低功耗應用的完整的低成本、低功耗設計。NRF51822 集成有高性能低功耗CortexM0 微控制器內核,並支援藍牙應用的BLE4.0 協定。模組配置獨立的燒錄介面,方便使用者程式設計調試。配有按鍵,長按可控制模組廣播和休眠,手機APP可修改模組參數。
1.    廠牌:Radioland
2.    型號:NRF51822 Beacon
3.    外型:直徑24mm*厚度4.5mm
4.    工作電壓:1.8V ~ 3.6V
5.    輸出功率:-20dbm~4dbm
6.    記憶體:256KB Flash 和16KB SRAM
7.    距離:>30m

二、    安裝與開機
1.打開外殼:請找到外殼邊緣吊環口對面,有一個缺口的地方,用指甲插入後,即可上下扳開

2.安裝電池:使用CR2032電池,正面朝上
 

文章標籤

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

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


腳位:腳位36根,扣除系統使用約10根,還有約26根可用,腳位說明如下圖

1582304623-1199237558_n
這裡特別說明,如果你用過ESP8266系列產品,你會發現8266最大的問題是他的類比只有1個,而ESP32則有18個ADC,也就是說有18個腳位是不分數位類比,直接使用analogRead或digitalRead就可以分別做類別或數位讀取,光這點優勢你就可以換掉ESP8266了。

  • 18 x Analog-to-Digital:可接類比或數位感測(粉紅色標示)
  • 3 x SPI interfaces(MOSI,MISO,SCK,SS):高速資料傳輸 SD card, TFT, RFID(藍色標示)
  • 3 x UART interfaces:藍芽、相機(不限腳位編號)
  • 2 x I2C interfaces(SDA,SCL) and I2S interfaces:LCD、氣壓、陀螺儀(GPIO 21,22)
  • 16 x PWM output channels:數位輸出也可類比輸出(不限定腳位編號,但需要宣告channel)
  • 2 x Digital-to-Analog Converters (DAC):不太需要用
  • 10 x Capacitive sensing GPIOs:提供觸控電容(棕色標示)
  • GPIO 34,35,36,39:Input only(不能作為輸出腳位)
  • GPIO 0,6,7,8,9,10,11:系統用,勿使用(淺灰色標示)
  • GPIO 18:重開機

還有一些個人遇到的問題(不清楚原因,但會搞死你)

  • 1. DHT11不可以用GPIO 5、26
  • 2. GPIO 12, 2燒錄時不可接任何裝置,請空接,燒錄完成後,再接回,否則會上傳失敗。
  • 3.WiFi啟動後,2,4,12,13,14,15,25,26,27僅能數位讀取,不可類比

也可以參考本人的ESP32 Youtube教學頻道

.IDE安裝:

3.1 IDE工具下載: 請至https://www.arduino.cc/en/Main/Software網站下載,筆者比較建議直接下載免安裝檔(如下圖:Windows ZIP for non admin install),解壓縮後直接可用,因為這樣的程式可以帶著走,不需要安裝,未來電腦更新或升級也可以直接開啟,甚至放在USB都可以使用。
下載後,直接解壓縮到C:D:底下都可以使用,整個路徑建議不要有任何中文。

image

此處選擇Just Download,另外一個選項則是捐獻Arduino基金會。
image

下載完成後,找到下載的壓縮檔,選擇解「壓縮所有檔案」,直接將壓縮檔解壓縮到C:\或D:\跟目錄下,例如筆者常放在C:\之下。
image
 
等候3~5分鐘解壓縮完畢之後,我們可以在C:\Arduino1.8.x下找到主程式Arduino.exe,這樣主程式就算安裝完畢,接下來準備安裝ESP32開發核心。

image

3.2 安裝ESP32核心程式:由於ESP32是Arduino相容並非Arduino原廠產品,因此必須在Arduino IDE中安裝ESP32核心程式,這樣才可使用Arduino IDE寫ESP32。

文章標籤

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

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


請注意:1.本篇"程式碼"部份已經過時,請勿再使用,但理論及應用部份可以參考。

2. Beacon相關設定可以參考本篇:常見ibeacon規格與python 程式碼

Beacon (iBeacon)大概最近幾年流行起來,主要是apple公司在推,用來做室內定位的,有人會問apple為什麼要推這東西(其實沒有人問)

「ibeacon」的圖片搜尋結果

主要是因為apple想掌控所有人的行蹤當作行為資料分析用途(apple或google都一樣),這些公司會利用手機去分析人類的行為,例如利用GPS掌控你的所有行蹤了解你的生活方式,以利廣告能夠更精準的推撥到你身上,但是呢他們發現主要的交易行為在室內發生,但是一旦人走入室內(例如百貨公司,美食街...等),他們卻反而失去GPS信號無法判斷你的位置,也就難以抓到相關的消費行為資料,因此想到一個方法,就是在室內推藍芽基站,就可以在室內獲取你的行蹤,當然也可以透過藍芽來推撥廣告訊息,而要達成這個目的,beacon就這樣誕生。

所以說,beacon就是藍芽發射器Bluetooth,不停得對所有裝置廣播訊息,手機上的APP或裝置接收到這個訊息就會做出對應的功能,例如跳出廣告或者紀錄位置等。

也就是說,從此以後,室內室外,你都無所遁形,你的行為完全被掌控了。不過我是沒差啦,反正無名小卒

圖片1.jpg

Beacon在商業上的角色定位:偵測使用者位置,並給予廣告

 

今天要介紹如何利用Arduino ESP32來擷取beacon訊號,並做「簡易」定位判斷。以下簡要說明步驟

一、Beacon簡要說明與設定
二、ESP32簡要說明
三、ESP32 Beacon範例程式檔
四、RSSI簡易定位


一、Beacon簡要說明與設定

首先你需要至少一個beacon,一個ESP32,一台安裝Arduino IDE的PC或MAC

文章標籤

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

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


ESP32-CAM是一個ESP32基礎的開發版,除了ESP32本身內建WIFI及藍芽BLE之外,再加上OV2640兩百萬畫素相機模組、TF卡、閃光燈模組,所組成的開發版。

送你這麼多東西,價格卻想像不到的便宜。露天賣場:https://goods.ruten.com.tw/item/show?21910115309507

以下為ESP32-CAM外觀及規格。

另外還需要準備一個USB TTL工具,我是採用CH340 (HW-597)模組,露天賣場:https://goods.ruten.com.tw/item/show?21618647811364

如果你用的是另一款 Prolific USB-to-Serial TTL ,請參考這篇的驅動安裝: https://youyouyou.pixnet.net/blog/post/119643042

以下說明ESP32-CAM video stream server的步驟

一、安裝Arduino IDE
二、安裝USB TTL及驅動程式
三、連接USBTTL及ESP32-CAM
四、修改範例程式
五、ESP32-CAM stream 效能評估:包括stream效能以及臉部辨識效能評估


一、安裝Arduino IDE

1.首先至下載arduino IDE

至原廠網站下載最新開發套件ESP32-CAM需要最新的核心程式,建議下載1.8.8最新版(update 20210327 最新版為1.8.13),此外我建議使用zip file選項,解壓縮即可使用,不需要安裝,未來電腦更新或升級也可以直接開啟,甚至放在USB都可以使用。

下載後,直接解壓縮到C:D:底下都可以使用,建議不要使用中文目錄。

文章標籤

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


提供一個wificlient使用multipart上傳檔案的函數
由於arduino受限於記憶體及晶片效率問題,要做影像分析太強人所難,何況arduino應該定位在資料收集器,而資料分析則需要仰賴雲端,以下的函數以http post 的 multipart方式提供檔案上傳,請先連上WIFI,並依照需求修改關鍵字部份。
相片上傳後,可以作為例如入侵偵測、臉部分析、影像分析等等各種不同用途。上傳接收部份可用php或aspx,這部份參考資料很多,請自行開發

參考資料:
1.https://github.com/adjavaherian/solar-server/blob/master/lib/Poster/Poster.cpp
2.https://forum.arduino.cc/index.php?topic=348012.0
3.http://cassiopeia.hk/wificam/


文章標籤

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

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


A good and cheap solution for arduino to take picture.
簡易的arduino拍照方案 最近臉部辨識已經有一些成果,因此研究如何用arduino拍照然後辨識主人來開門之類的指令,但是發現arduino拍照其實有很大的問題,wemos D1裝OV7670後,pin腳幾乎用完無法再接SD卡,最後搜尋到PTC06串口攝影機(NT$400-600之間),2 pin有TX RX即可拍照。 複製arduino程式碼後在D1執行卻發現拍照的結果都失敗,檔案錯誤無法讀取,但是在UNO上卻是正常,比對兩者拍照的檔案才發現,在ESP8266及ESP32會在jpg標頭的部份產生誤差,因此必須觀察才可決定要如何處理。
NodeMcu ESP-32s接法:
SD卡接法:
//MOSI   - pin 23
//MISO  - pin 19
//CLK(SCK) - pin 18
//CS   - pin 5
PTC06接法:
//TX - pin12 //RX - pin13 程式碼 ------------------------------------------------------------------------------------------------------------------------------------- // Note:
// 1. SD must be formated to FAT16
// 2. As the buffer of softserial has 64 bytes, so the code read 32 bytes each time
// 3. Please add the libaray to the lib path
//****************************
//SD card attached to SPI bus as follows:
//MOSI - pin 23
//MISO - pin 19
//CLK(SCK)- pin 18

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

ESP32有內建的harwareserial喔,不要再用這個了~

This is a great solution about using Softwareserial.h in ESP32 board. There is an error "fatal error: avr/interrupt.h: No such file or directory" in softwareserial.cpp when you compiler the code. if you have the same problem, fellow the instructions:

1.download espsoftwareserial library on github: https://github.com/jdollar/espsoftwareserial/
2.modify softwareserial.cpp code, see post https://www.reddit.com/…/softwareserial_working_for_esp32a…/  
2.1)
extern "C" {
#include "esp32-hal-gpio.h" }  
2.2)add these codes below
#define MAX_PIN 15
#ifdef ICACHE_FLASH
#define ICACHE_FLASH_ATTR __attribute__((section(".irom0.text")))
#define ICACHE_RAM_ATTR __attribute__((section(".iram.text")))
#define ICACHE_RODATA_ATTR __attribute__((section(".irom.text")))
#else
#define ICACHE_FLASH_ATTR
#define ICACHE_RAM_ATTR
#define ICACHE_RODATA_ATTR
#endif /* ICACHE_FLASH */
#define GPIO_STATUS_W1TC_ADDRESS 0x24
-------------------------------------------------
Ok that's all, enjoy it.


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