發表文章

GPS模組測試-GPS6MV2

圖片
  GPS模組測試-GPS6MV2 介紹: 基本上,GPS(全球定位系統)接收器通過計算它們與許多衛星的距離來工作。它們經過預先編程,可以在任何給定時間了解 GPS 衛星的位置,然後使用眾所周知的三邊測量過程計算地球上的位置。地平線上方的衛星越多,您的 GPS 裝置就越能準確地確定您所在的位置。 工作: 電源:2.7V 至 3.6V 默認波特率:9600 bps 電流消耗:45mA。 多達 22 顆衛星在 50 個頻道跟踪 每秒最多更新 5 個位置,水平位置精度為 2.5m。 導航靈敏度:高達 -161 dBm 導航更新率:1Hz 配備外接天線和內置 EEPROM。 接口:RS232 TTL,串行波特率 4800-230400(默認 9600) 工作溫度:-40°C~85°C 通信協議:UBX 二進制、RTCM 和標準 NMEA 輸出:要了解這些句子中每個數據字段的含義,您可以在此處查閱 NMEA 數據。 接線方式: GPS 模塊將由 3.3V 電源供電。它使用 4pins 接頭上可用的 TX 和 RX 引腳通過串行通信與 ESP32 通信。下圖顯示了本教程中使用的電路原理圖。 將 GPS 模塊的 VCC 引腳連接到 ESP32 3.3V 引腳。 將 GPS 接地引腳連接到 ESP32 接地引腳。 現在,將 GPS 模塊的 RX 引腳連接到 ESP32 的 TX 引腳。同樣,將 GPS 模塊的 TX 引腳連接到 ESP32 的 RX 引腳(ESP32 的 RX 和 TX 引腳在軟件中定義)。 GPS模組接線引腳 程式碼: #include <SoftwareSerial.h> SoftwareSerial ss(16, 17); //Rx, Tx void setup() { Serial.begin(115200); ss.begin(9600); } void loop() { while (ss.available()>0) { byte gpsData=ss.read(); Serial.write(gpsData); } }

mpu6050螺陀儀+3D物件(node-red)-esp32

圖片
 mpu6050螺陀儀+3D物件(node-red)-esp32

天氣預報顯示+mqtt+dashboard

圖片
 天氣預報顯示+mqtt+dashboard-專題作品(1) 我的構想是資訊完全由公開資訊API抓取下來,分成兩個部份顯示 一個是在node-red dashboard由網頁顯示出來 另一個是在TFT顯示器顯示出來 先來看看node-red的dashboard顯示畫面如下: 包含了 日期 AQI空氣品質 七日預報(我只截取了一整天每3小時的預報) PM2.5 溫濕度 TFT顯示

st7735-TFT測試-使用TFT-eSPI庫載入圖片(3)-ESP32

圖片
  st7735-TFT測試-使用TFT-eSPI庫載入圖片(3)-ESP32 接線 ( 更正 :               SCL-->ESP32(D18)               SDA-->ESP32(D23) 1. 首 先到此下載程式庫: https://github.com/Bodmer/TFT_eSPI   並上傳至ArduinoIDE的library 2. 這 裡有幾個設定必須要更改成和自己使用的顯示屏一樣型號的設置 <C:\Users\<用戶名>\Documents\Arduino\libraries\TFT_eSPI>,用同樣的方法找到庫文件,並打開<User_Setup.h>文件, 當我們打開<User_Setup.h>文件後,需要對文件中的內容進行簡單的修改即可使用,修改的目的主要是為了和我們選擇的屏幕驅動型號相匹配 文件,打開後按照下圖內容進行修改,在眾多的驅動文件中,選擇驅動ST7735,其他用不到的註釋掉,如果你使用的屏幕是其他類型的驅動也可以根據自己的驅動進行選擇 <E:\blairan\arduino\portable\sketchbook\libraries\TFT_eSPI>,並打開<User_Setup.h>文件,如果沒有專用的查看軟件的話可以使用最普通的記事本打開 接著設置屏幕顯示的顏色和屏幕的尺寸大小,我們設置屏幕的寬度為128,屏幕顏色有RGB和BGR兩種類型,什麼是RGB和BGR呢,你可以把它簡單的理解為紅綠藍的排列順序 接下来是SPI引脚的设置,按照下图中的引脚设置即可 // For ESP32 Dev board (only tested with GC9A01 display) // The hardware SPI can be mapped to any pins #define TFT_MOSI 23 // In some display driver board, it might be written as...

st7735-TFT測試-點陣圖形(2)-ESP32

圖片
  接線 ( 更正 :               SCL-->ESP32(D18)               SDA-->ESP32(D23) 1. 首 先到此下載程式庫: https://github.com/adafruit/Adafruit-ST7735-Library.git   並上傳至ArduinoIDE的library 2 .安裝 Adafruit_GFX 更改腳位 選擇對應的型號

st7735-TFT測試-使用範例檔(1)-ESP32

圖片
                                        st7735-TFT測試 ST7735-TFT TFT我一直以來有點響往制作天氣時鐘之類的運用,但找了很多教學都有點含糊, 所以也一直不知如何下手,而且聽說有很多庫都停更了。今天翻出買了一陣子的 TFT,型號是ST7735,早上就弄了一陣子,中午才找到合適的庫。 我參考了這裡的教學: https://www.youtube.com/watch?v=qHJAYjCqAok&list=WL&index=39 接線 ( 更正 :              SCL-->ESP32(D18)              SDA-->ESP32(D23) 1.首先到此下載程式庫: https://github.com/adafruit/Adafruit-ST7735-Library.git 2.安裝Adafruit_GFX 然後匯入AdruinoIDE,使用"範例" 依照上圖選擇範例檔 腳位的設定 選取對應的型號 選取ESP32板子型號 序列埠選取 上傳

MQTT-DashBoard+溫濕度+OLED-ESP32

圖片
MQTT-DashBoard+溫濕度+OLED-ESP32 先看一下demo 手機APP上的顯示 DashBoard上的顯示 前言 因為整個流程有點複雜,所以我把它寫成流程圖比較容易理解。 當時我的構想是想做天氣時鐘,試過用時鐘模組顯示時間,但因為模組 本身時間並不精準,所以只好取值用公開API來經過樹莓派的Broker的推送 讓ESP32訂閱topic,後來發現要讓時間和溫濕度不要以輪替的方式在OLED 上顯示,只好在ESP32用上DHT11讓其偵測溫濕度,本來有嚐試用按鈕來 切換時間和溫濕度,但有點麻煩,所以就只先全顯示在一個0.96的OLED 然後手機APP上也訂閱樹莓派的MQTT,另外在DashBoard增加一個開關來 控制ESP32上的LED。   接線圖 樹莓派Node-RED 開始之前 先備妥樹莓派上所須的軟硬體 安裝 Mosquitto broker (如果沒玩過樹莓派,請連結 這裡 安裝樹莓派系統和 如 何使用SSH和VNC鏡像 ) 安裝   Node-RED installed    和  Node-RED Dashboard 在樹莓派上。 備註:安裝Node-RED時若出現錯誤訊息改用下面所附下載    bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered) 接下來先測試BMP280是否可正常測溫度和壓力-請參考之前的紀錄( 點我傳送 )。 先來看一下整個發送原理比較容易理解自己要學的重點在哪裡 此次實驗我只寫從ESP32發送數據到樹莓派的Mosquitto代理接收/發送 然後通過MQTT通信協議去控制ESP32發送數據到Node-RED,其實我覺 得和ThingSpeak很類似,只是使用Node-RED更能客製化。 看一下這張圖 Node-Red配置 DashBoard配置檔-- https://github.com/blairan/esp32.git 手機端MQTTapp設定 原則上注意Topic要和NODE-RED上的一致才能訂閱和推送的到 payload是NODE-RED裡開關的控制項 程式碼 ...