發表文章

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

MQTT&node-RED控制二軸云台-mpython

圖片
 MQTT&node-RED控制二軸云台-mpython 承接 使用PWM控制伺服馬達-micropython 這篇,透過node-red加入mqtt訂閱主題控制二軸云台 有一些感想紀錄下來,我發現其實像mqtt或者wifi連網,大都是固定一個寫法,其它不同的模組分為讀取數值或用數值受控制的元件,只要套用上去就可以。 首先主要是被控制的伺服馬達,所以先把它測試一下,參考這篇( 點我 ) 測試好之後,就可以開始加入wifi和mqtt了,但因為我用的是樹莓派建立的MQTT,所以這陪分前提是要有樹苺派,如何在樹苺派上建立Node-RED和MQTT,可以參考這篇( 點我 )。

使用PWM控制伺服馬達-micropython

圖片
 使用PWM控制伺服馬達-micropython 伺服電機可以從 0 度旋轉到 180 度,但最多可以旋轉 210 度,具體取決於製造。可以通過將適當寬度的電脈衝應用到其控制引腳來控制這種旋轉程度。伺服每 20 毫秒檢查一次脈衝。 1 ms(1毫秒)寬度的脈衝可以將伺服旋轉到0度,1.5ms可以旋轉到90度(中位),2 ms脈衝可以將其旋轉到180度。 接線方式 GND -> ESP32  GND  pin; Power -> ESP32  VIN  pin; Signal ->  GPIO 13  (or any PWM pin).

使用AdafriutIO-dashboards控制Neopixel燈條—mpython

圖片
使用AdafriutIO-dashboards控制Neopixel燈條—mpython  原本是打算使用Nord-RED或直接網頁控制,但還沒搞的很懂 尤其寫網頁的部份,偶然在網路上搜到原來Adafruit也有出Dashboards 但是好像只能試用30天,但是沒關係,多認識一點不同的平台也很好 先到這裡註冊 - https://io.adafruit.com/ 接下來,我們在 Adafruit IO 中為 NeoPixels 的顏色創建 三個“ 紅色 ”、“ 藍色 ”和“ 綠色 ”。 然後點進去剛創建好的群組裡,接著下個步驟 最後,我們調整塊的設置。每個 RGB 值都是一個從 0 到 255 的整數。我們相應地配置滑塊。完成後,點擊“CREATE  BLOCK”。 API的key和username 程式的部份 from   machine   import   Pin from   neopixel   import   NeoPixel from   time   import   sleep import   network import   urequests   as   requests import   ujson # Wifi credentials wifi_ssid  =  "C--" wifi_password  =  "c----------" # Adafruit IO authentication aio_key  =  "aio_iaRV12GqVjk*************" username  =  "bl-----" headers  = { 'X-AIO-Key' :  aio_key ,  'Content-Type' :  'application/json' } # Don't forget the NeoPixels! np...

WS2812B燈條實作-miropython

圖片
 WS2812B燈條實作-miropython 在miropython有一個內建的RGB燈條的程式庫,可以很方便的拿來運用 但我發現我灌最近新的mpython系統時,沒有支援了,不過沒關係,可以 找一下這個庫把它手動上傳到板子上。 neopixel.py程式庫在此下載- neopixel.py https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/blob/main/neopixel.py 並上傳到板子後 將 RGB LED 燈條連接到 ESP32 或 ESP8266 非常簡單。您需要將   5 V 施加到 VCC 引腳, GND 到 GND ,並將 GPIO 5 連接到 IN (數據)引腳。我們將數據引腳連接到 GPIO 5 。 from   machine   import   Pin ,  sleep import   neopixel import   time n  =  8   #燈條數 p  =  5   #GPIO np  =  neopixel . NeoPixel ( Pin ( p ),  n ) while   True :    for   i   in   range ( n ):      np [ i ] = ( 100 ,  45 ,  230 )      time .sleep_ms( 30 )      np . write ()    for   j   in   range ( n ):      np [ j ]=( 10 , 130 , 50 )      time .sleep_ms( 60 )  ...

MQTT-Node-RED顯示超音波測距數據+控制LED-micropython

圖片
 MQTT-Node-RED顯示超音波測距數據+控制LED-mpython

DC直流馬達測試-micropython

圖片
ESP32-DC直流馬達測試 直流馬達是微控板常常在用的元件,最常搭配的是L298N 驅動裝置,因為如果把馬達直接接上微控板會導致燒掉 L298N驅動板 OUT1:直流電機A+端子 OUT2:直流電機 A – 端子 OUT3:直流電機B+端子 OUT4:直流電機 B – 端子 這裡要特別注意的地方 在底部,您有一個帶有 +12V、GND 和 +5V 的三接線端子。  一般用18650電池二~三顆供電的話接+12V和GND,如果要 額外接微控板例如esp32或arduino,在+5V和GND就是往外 供電給微控板的5V。 注意:如果供電超過12V,需要去掉跳線,給+5V端供電5V。 使能(Enble)引腳 如果您向使能 A 引腳發送 HIGH 信號,則電機 A 已準備好以最大速度進行控制; 如果向使能 A 引腳發送 LOW 信號,則電機 A 關閉; 如果發送PWM信號,則可以控制電機的速度。電機速度與占空比成正比。但是, 請注意, 對於小占空比,電機可能不會旋轉 ,並發出持續的嗡嗡聲。

MQTT Publish + Node-RED + BMP280-micropython

圖片
 MQTT Publish + Node-RED + BMP280 參考文獻- https://randomnerdtutorials.com/micropython-mqtt-publish-bme280-esp32-esp8266/ 這次實作是使用MQTT發送BMP280的數據到樹莓派上的Node-RED儀錶版上 我是參考這篇文章- https://randomnerdtutorials.com/esp32-mqtt-publish-subscribe-arduino-ide/ 所以會使用類似的程式碼手法來完成項目。 開始之前先備妥樹莓派上所須的軟硬體 安裝 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更能客製化。 看一下這張圖(此次我所做的實驗是下圖的下方那個ESP32發送的部份)