phyphox通過藍牙反控ESP32的技術(shù)細節(jié)
打住。前面一直在研究如何把ESP32等開發(fā)板采集的數(shù)據(jù)傳到Phyphox里,于是Phyphox成為數(shù)據(jù)處理之后的表現(xiàn)層,讓實驗者在手機上看到實驗的結(jié)果;而另一方面,手機本身也是攜帶眾多的傳感器的,例如Android自動支持十幾種傳感器,為什么不能反過來把手機作為一個巨大的多功能傳感器呢? 答案是可能的。Phyphox BLE庫也支持從手機傳感器把數(shù)據(jù)傳給ESP32,再送給電腦來處理,若是在電腦上做個程序界面,幾乎沒有什么是實現(xiàn)不了的了。 ESP32從Phyphox手機傳感器獲取數(shù)據(jù)和普通的由ESP32向手機Phyphox傳送數(shù)據(jù)的實驗創(chuàng)作步驟與思路不太相同,比較麻煩,但好過直接用藍牙創(chuàng)作實驗。仍然方便一些。ESP32端從手機Phyphox獲取傳感器數(shù)據(jù)的原理,是先在Arduino IDE里面編寫ino,然后燒錄到ESP32,運行起來,等待Phyphox來連接。 在phyphoxBle.cpp里,能見到PhyphoxBLE::read()函數(shù),它讀傳感器數(shù)據(jù)然后把地址給藍牙,然后藍牙把這塊指定長度的內(nèi)存數(shù)據(jù)接收過來處理。 而在Phyphox里面,我們需要自己去編寫.phyphox文件,指定藍牙為output,指定為output的藍牙有input口,這樣在phyphox editor里編寫了phyphox實驗后,手機就成為十幾種傳感器的聚合體了。 這是一個用Phyphox檢測手機所在的環(huán)境里光線強弱的實驗:如果光照比較弱,ESP32會自動把連接在IO26腳上的高亮二極管點亮,而當環(huán)境光照比較強時,ESP32自動熄滅LED。 這個應(yīng)用場景是顯然的——打點計時器有個“先接通電源,后松開紙帶”的事兒,Phyphox輕松可實現(xiàn)了,甚至可以使用phyphox來開發(fā)智能家居,把手機放在床頭,晚上要去洗手間的時候,睜開眼睛四周黑魆魆一片不知暗得多深,于是拿起手機、打開phyphox,測不含g的加速度,搖一搖,原來暗處關(guān)閉的LED亮起來了。 .ino文件: #include <phyphoxBle.h> |
|
來自: 新用戶5228KeDY > 《待分類》