發表文章

目前顯示的是 9月, 2021的文章

MPU-6050&webServer網頁顯示-ESP32

圖片
 MPU-6050&webServer網頁顯示-ESP32 實驗目標: 此次實驗要把實時量測的xyz值顯示於網頁上。 MPU-6050簡介 MPU-6050 IMU (慣性測量單元)是一個 3 軸加速度計和 3 軸陀螺儀傳感器。加速度計測量重力加速度,陀螺儀測量旋轉速度。此外,該模塊還測量溫度。該傳感器非常適合確定移動物體的方向。 MPU-6050 是一個帶有 3 軸加速度計和 3 軸陀螺儀的模組。 陀 螺儀- 用於測量旋轉速度 (rad/s),這是角度位置沿 X、Y 和 Z 軸(滾動、俯仰和偏航)隨時間的變化。這使我們能夠確定物體的方向。 加 速度計- 測量加速度它可以感應重力 (9.8m/s2) 等靜態力或振動或運動等動態力。  MPU-6050  測量 X、Y 和 Z 軸上的加速度。理想情況下,在靜態物體中,Z 軸上的加速度等於重力,並且在 X 和 Y 軸上應為零。 加 速度計- 可以使用三角法計算橫滾角和俯仰角。但無法計算偏航。 接線 須匯入的程式庫 Adafruit_MPU6050 Adafruit_Sensor ESPAsyncWebServer 程式碼 #include   <Arduino.h> //包含 MPU-6050 傳感器所需的庫:Adafruit_MPU6050 和 Adafruit_Sensor。 #include   <Adafruit_MPU6050.h> #include   <Adafruit_Sensor.h> #include   <WiFi.h> #include   <ESPAsyncWebServer.h> //wifi帳密 const   char  * ssid  =  "CTK" ; const   char  * password  =  "ctk674011" ; Adafruit_MPU6050   mpu ; AsyncWebServer   server ( 80 ); //html const   char   indexHtml []  PROGMEM  =  R"===(   <html> <head>     <meta cha

MPU-6050加速度-陀螺儀-溫度傳感器-ESP32

圖片
 MPU-6050加速度-陀螺儀-溫度傳感器-ESP32 實驗目標: MPU-6050 IMU(慣性測量單元)是一個 3 軸加速度計和 3 軸陀螺儀傳感器。加速度計測量重力加速度,陀螺儀測量旋轉速度。此外,該模塊還測量溫度。該傳感器非常適合確定移動物體的方向。 MPU-6050簡介 MPU-6050 是一個帶有 3 軸加速度計和 3 軸陀螺儀的模組。 陀 螺儀- 用於測量旋轉速度 (rad/s),這是角度位置沿 X、Y 和 Z 軸(滾動、俯仰和偏航)隨時間的變化。這使我們能夠確定物體的方向。 加 速度計- 測量加速度它可以感應重力 (9.8m/s2) 等靜態力或振動或運動等動態力。  MPU-6050 測量 X、Y 和 Z 軸上的加速度。理想情況下,在靜態物體中,Z 軸上的加速度等於重力,並且在 X 和 Y 軸上應為零。 加 速度計- 可以使用三角法計算橫滾角和俯仰角。但無法計算偏航。 接線 須匯入的程式庫 Adafruit_MPU6050 Adafruit_Sensor Adafruit_SSD1306 -後半段會用到 程式碼1 使用範例並上傳 #include   <Arduino.h> //包含 MPU-6050 傳感器所需的庫:Adafruit_MPU6050 和 Adafruit_Sensor。 #include   <Adafruit_MPU6050.h> #include   <Adafruit_Sensor.h> //創建一個名為 mpu 的 Adafruit_MPU6050 對象來處理傳感器。 Adafruit_MPU6050   mpu ; void   setup () {    Serial . begin ( 115200 );   //初始化 MPU-6050 傳感器。    if  (! mpu . begin ()) {      Serial . println ( "Sensor init failed" );      while  ( 1 )        yield ();   }    Serial . println ( "Found a MPU-6050 sensor" ); } void   loop () {   //使用當前讀數獲取新的傳

Blynk控制adafrit_Neopixels燈條-ESP32

圖片
 Blynk控制adafrit_neopixels燈條-ESP32 \ 接線 將 RGB LED 燈條連接到 ESP32 或 ESP8266 非常簡單。您需要將   5 V   施加到  VCC  引腳, GND  到  GND ,並將  GPIO 5 連接到  IN (數據)引腳。我們將數據引腳連接到  GPIO 5 。 Blynk App的設置 Blynk 是一個可以在 Android 和 IOS 設備上運行的應用程序,以使用我們的智能手機控制任何物聯網設備。我們可以創建自己的圖形用戶界面來設計 IoT 應用程序 GUI。我們之前將 Blynk 與 ESP32 一起使用,並使用 Blynk 構建了許多其他基於物聯網的項目。 在設置之前,從 Google Play 商店下載 Blynk 應用程序(IOS 用戶可以從 Apple Store 下載)並使用您的電子郵件 ID 和密碼註冊。 創建一個新項目: 安裝成功後,打開應用程序並單擊“新建項目”。然後它會彈出一個新的屏幕,我們需要在其中設置項目名稱、電路板和連接類型等參數。對於此項目,選擇設備為“ESP32 Dev Board”,連接類型為 Wi-Fi,然後單擊“創建”。 成功創建項目後,我們將在註冊郵件中收到一個 Authenticate ID。保存身份驗證 ID 以供將來參考。 創建圖形用戶界面: 在 Blynk 中打開項目,單擊“+”號,它將顯示許多小部件。在我們的例子中,我們需要一個被列為“zeRGBa”的 RGB 顏色選擇器和一個用於改變 LED 燈條操作模式的按鈕。 在小部件中設置參數: 將小部件拖動到項目後,現在設置其參數,用於將控制值的顏色和模式發送到 ESP32。 點擊 ZeRGBa,我們將看到一個名為 ZeRGBa 設置的屏幕。然後將輸出選項設置為“虛擬引腳”並將引腳設置為“V2”,如下圖所示。

紅外線遙控器控制LED-ESP32

圖片
 紅外線遙控器控制LED-ESP3 紅外接收器模塊使用 VS1838 光電二極管紅外接收器。它成本低且易於使用。 引腳: 它有 3 個引腳,即: 1. G - 接地引腳。 2. V - 電源電壓。 3. S——為紅外接收信號引腳。 實驗1: 接收按鍵值 先匯入 IRremote.h 上傳此範例 #include   <IRremote.h> int   RECV_PIN  =  15 ; IRrecv   irrecv ( RECV_PIN ); decode_results  results ; void   setup (){      Serial . begin ( 115200 );      irrecv . enableIRIn ();  // 啟動接收器 } void   loop () {      if  ( irrecv . decode (& results )) {          Serial . println ( results . value );          irrecv . resume ();  // 接數下一個按鍵值     }      delay ( 100 ); }

MQTT-Node-RED控制二軸云台-ESP32

圖片
 MQTT-Node-RED控制二軸云台-ESP32 伺服馬達對於微控板玩家一定是再熟悉不過,也是入門必學的元件之一,只是特別要注意如果要控制2個以上的伺服馬達,一定要使用外接電源或者PCA9685。 伺服馬達有很多款,小型常用的就屬SG-90,它是塑膠齒輪,還有一種是金屬齒輪 SG-90規格 工作電壓:4.8V. 轉矩:1.8kg-cm 運轉速度:0.1秒∕ 60度 轉動角度:最大90° 脈衝寬度範圍:500~2400µs. MG90S規格 金屬銅齒、空心杯電機、雙滾珠軸承 產品型號: MG90s . 扭力:2.0kg(4.8v) 運轉速度:0.11s(4.8v) 轉動角度:最大90°/180° 舵機類型:數字舵機 此次實驗以MG-90為主 要控制伺服馬達有兩種方式,一種是利用PWM,另一種是使用現有的庫包來控制,本次實驗以庫包為主 首先安裝   ESP32 Arduino Servo Library 接線方式 GND -> ESP32  GND  pin; Power -> ESP32  VIN  pin; Signal ->  GPIO 13  (or any PWM pin). 進行實驗 #include   <ESP32Servo.h>   Servo   myservo ;   int   pos  =  20 ; const   int   pin  =  12 ;   void   setup (){    Serial . begin ( 115200 );    myservo . attach ( pin ,  500 ,  2400 ); }   void   loop (){    for  ( pos = 20 ;  pos <= 160 ;  pos += 3 ){      myservo . write ( pos );      delay ( 100 );   }    for  ( pos = 160 ;  pos >= 20 ;  pos -= 3 ){      myservo . write ( pos );      delay ( 100 );   } }