包含esp32教程python的詞條

本文目錄一覽:

Python下Pywin32的使用教程

你可以直接到lib的site-packages下面的win32目錄下,有一個demos。另外幾個win32開頭的目錄里也有demos子目錄。進去看他們寫好的例子。

幾個簡單的教程:

使用

查詢句柄

# 根據類名及標題名查詢句柄,

hwnd = win32gui.FindWindow(“Tfrm_YzzPlayer”,”葉子豬手游模擬器”)

# 查找指定句柄的子句柄,後兩個參數為子類的類名與標題,如果沒有或不確定,可以寫None

hwnd = win32gui.FindWindow(hwnd,None,”sub_class”,”sub_title”)

修改窗口大小

# 沒有直接修改窗口大小的方式,但可以曲線救國,幾個參數分別表示句柄,起始點坐標,寬高度,是否重繪界面 ,如果想改變窗口大小,就必須指定起始點的坐標,沒果對起始點坐標沒有要求,隨便寫就可以;如果還想要放在原先的位置,就需要先獲取之前的邊框位置,再調用該方法即可

win32gui.MoveWindow(hwnd,20,20,405,756,True)

前台後台

# 指定句柄設置為前台,也就是激活

win32gui.SetForegroundWindow(hwnd)

# 設置為後台

win32gui.SetBkMode(hwnd, win32con.TRANSPARENT)

esp32 vscode lauch 設置

第一步:安裝 VSCode C/C++ 擴展

1.在應用商店裡搜索 C++

2.安裝C/C++ IntelliSense, debugging, and code browsing

第二步:安裝 VSCode ESP-IDF 擴展

1.在應用商店裡搜索 Espressif

2.安裝 Develop and debug applications for Espressif ESP32, ESP32-S2 chips with ESP-IDF (帶樂鑫圖標)

第三步:配置ESP-IDF 擴展

1.按 F1 或Ctrl+Shift+P 打開命令面板

2.輸入 ESP-IDF: Configure ESP-IDF extension

加載初始設置時間較長,耐心等待

3.根據實際情況選擇不同的配置方式

Express: IDF 版本 配置Python環境,擴展將安裝IDF

Advanced: 手動配置已安裝的開發環境

Using Existing Setup : 使用擴展檢測出的環境

配置完成後顯示:All settings have been configured. You can close this window.

第四步:創建項目模板,檢測設置

1.按 F1 或Ctrl+Shift+P 打開命令面板 輸入ESP-IDF:Create project 或按Ctrl+E+C

2.選擇工程創建目錄

3.選擇模板類型

第五部:設置工作區的json文件

在settings.json文件中添加以下內容

“terminal.integrated.shell.windows”: “cmd.exe”,

“terminal.integrated.shellArgs.windows”: [“/k”, “c:\\esp\\esp-idf\\export.bat”],

“terminal.integrated.shell.linux”: “/bin/bash”,

“terminal.integrated.shellArgs.linux”: [“–init-file”, “~/esp/esp-idf/export.sh”, “-i”],

“terminal.integrated.shell.osx”: “/bin/bash”,

“terminal.integrated.shellArgs.osx”: [“–init-file”, “~/esp/esp-idf/export.sh”, “-i”],

“files.associations”: {undefined

“*.md”: “markdown”,

“*.mdx”: “tdx”,

“stdio.h”: “c”

},

可以在VSCode 終端中正常使用idf的各種命令。

第六步:編譯工程

可以使用ESP擴展下的各個按鈕完成項目的串口選擇、項目配置、Full Clearn、編譯、下載、監視

也可以使用命令行方式:

1.按Ctrl+` (~按鍵的位置)打開終端(第一次運行時擴展會有提示,選擇允許 其實質就是運行~/esp/esp-idf/export.sh)

2.選擇終止終端

3.重新打開終端 會看到export.sh運行的結果

Go to the project directory and run:

idf.py build

4.運行各種idf命令

第七部:下載程序並監測程序運行

1. 按Select Device Port 按鈕 或運行 ESP-IDF:Device configuration命令

按提示選擇/dev/ttyUSB1作為下載口

2.編譯完成後,可使用下載按鈕進行程序下載。此時會出現提示:

PermissionError: [Errno 13] Permission denied: ‘/dev/ttyUSB1’

原因:

$ ls -l /dev/ttyUSB*

crw-rw—- 1 root dialout 188, 0 2月 3 11:21 /dev/ttyUSB0

crw-rw—- 1 root dialout 188, 1 2月 3 11:21 /dev/ttyUSB1

發現ttyUSB* 設備屬於root用戶 dialout 用戶組,當前用戶不屬於dialout用戶組

解決方案:

(1).執行以下命令

$sudo chmod 666 /dev/ttyUSB*

修改ttyUSB設備權限為其它用戶可讀可寫。

缺點:電腦重啟後,又會出現這種問題,還要重新設置

(2).為了能讓普通用戶也能使用串口,可以增加udev規則來實現

$sudo vim /etc/udev/rules.d/70-ttyusb.rules

增加如下內容:

KERNEL==”ttyUSB[0-9]*”,MODE=”0666″

保存,重新插入USB轉串口,普通用戶就能搞定了

缺點:該方法會讓所有的普通用戶都具有訪問這些串口設備的權限,存在一定的安全隱患

(3).將目標用戶加入dialout用戶組,可以使用以下任意一個命令

$sudo usermod -aG dialout 目標用戶名

或:

sudo gpasswd –add 目標用戶名 dialout

重啟系統即可

第八部:跟蹤調試程序

1.按 OpenOCD Server 按鈕 輸出提示:

❌ Error: libusb_open() failed with LIBUSB_ERROR_ACCESS

❌ Error: no device foun

按照 文檔解釋做如下操作:

(1). 將~/.espressif/tools/openocd-esp32/v0.10.0-esp32-20200709/openocd-esp32/share/openocd/contrib/

目錄下的 60-openocd.rules 拷貝至 /etc/udev/rules.d/ 目錄下

(2).確保當前用戶屬於 plugdev 用戶組。 提示:運行 groups 命令可以查看當前用戶所屬的用戶組

(3).重啟系統

2.配置Debug 環境

參考:

註:該文檔中的模板有坑。

問題:

使用 ESP-IDF Debug Adapter 配置時出現如下提示:

pygdbmi.gdbcontroller.NoGdbProcessError: gdb process has already finished with return code: 127

按照 esp_debug_adapter 說明文檔 在~/.vscode/extensions/espressif.esp-idf-extension-0.6.1/esp_debug_adapter/ 目錄下

$pip install -r requirements.txt

問題依然存在 暫無解決思路

使用 Microsoft C/C++ extension to debug 配置時出現如下提示:

error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

實質是系統中沒有python2.7的庫,解決:

$ sudo apt update

$ sudo apt upgrade

$ sudo apt install libpython2.7

問題解決

同時也解決了使用 ESP-IDF Debug Adapter 配置時出現的問題 故是否需要pip install …… 不能確定

在使用 Microsoft C/C++ extension to debug 配置時 會提示出現異常,不用理會可正常跟蹤調試。

有時會提示

Error: couldn』t bind tcl to socket: Address already in use

則證明 剛剛啟動的 進程未被終止。

解決辦法:

a).查看當前活動進程

netstat為顯示網絡相關信息 a(all:默認顯示所有,如果加了其他選項此項不生效) n(number:以數字形式顯示) t(僅僅顯示tcp連接),p(process:顯示該項是由哪個程序建立起來的)

$ sudo netstat -antp

b). 強制殺死它(假設進程號為3560,-9為強制殺死)

$ sudo kill -9 3560

Debug正常運行時,狀態欄由藍色變為棕色。

附:scode的各個json文件

c_cpp_properties.json

======================================

{undefined

“configurations”: [

{undefined

“name”: “ESP-IDF”,

“compilerPath”: “${default}”,

“cStandard”: “c11”,

“cppStandard”: “c++17”,

“includePath”: [

“${config:idf.espIdfPath}/components/**”,

“${config:idf.espIdfPathWin}/components/**”,

“${workspaceFolder}/**”

],

“browse”: {undefined

“path”: [

“${config:idf.espIdfPath}/components”,

“${config:idf.espIdfPathWin}/components”,

“${workspaceFolder}”

],

“limitSymbolsToIncludedHeaders”: false

}

}

],

“version”: 4

}

settings.json

======================================

{undefined

“terminal.integrated.shell.windows”: “cmd.exe”,

“terminal.integrated.shellArgs.windows”: [“/k”, “c:\\esp\\esp-idf\\export.bat”],

“terminal.integrated.shell.linux”: “/bin/bash”,

“terminal.integrated.shellArgs.linux”: [“–init-file”, “~/esp/esp-idf/export.sh”, “-i”],

“terminal.integrated.shell.osx”: “/bin/bash”,

“terminal.integrated.shellArgs.osx”: [“–init-file”, “~/esp/esp-idf/export.sh”, “-i”],

“files.associations”: {undefined

“*.md”: “markdown”,

“*.mdx”: “tdx”,

“stdio.h”: “c”

},

“C_Cpp.clang_format_style”: “Visual Studio”,

“editor.formatOnSave”: false,

“[cpp]”: {undefined

“editor.quickSuggestions”: true

},

“[c]”: {undefined

“editor.quickSuggestions”: true

},

“C_Cpp.intelliSenseEngine”: “Tag Parser”,

//配置下載接口

“idf.port”: “/dev/ttyUSB1”,

//配置下載方式

“idf.flashType”: “UART”,

//openOcd配置,根據開發板確定

“idf.openOcdConfigs”: [

//新版建議用「board/XXX」 配置

“interface/ftdi/esp32_devkitj_v1.cfg”,

“target/esp32.cfg”

]

}

launch.json

======================================

{undefined

// Use IntelliSense to learn about possible attributes.

// Hover to view descriptions of existing attributes.

// For more information, visit:

“version”: “0.2.0”,

“configurations”: [

{undefined

“type”: “espidf”,

“name”: “ESP_Debug”,

“request”: “launch”,

“debugPort”: 43474,

“logLevel”: 2,

//模板中有坑的地方,模板內容為 “mode”: “manual”,

//這樣不能自動啟動 Debug Adapter

“mode”: “auto”,

“initGdbCommands”: [

“target remote :3333”,

“symbol-file ${workspaceFolder}/build/${command:espIdf.getProjectName}.elf”,

“set remote hardware-watchpoint-limit 2”,

“mon reset halt”,

“flushregs”,

“thb app_main”,

“c”

],

“env”: {undefined

“PATH”: “${env:PATH}:${config:idf.customExtraPaths}”

}

},

{undefined

“name”: “GDB”,

“type”: “cppdbg”,

“request”: “launch”,

“MIMode”: “gdb”,

“miDebuggerPath”: “${command:espIdf.getXtensaGdb}”,

“program”: “${workspaceFolder}/build/${command:espIdf.getProjectName}.elf”,

“windows”: {undefined

“program”: “${workspaceFolder}\\build\\${command:espIdf.getProjectName}.elf”

},

“cwd”: “${workspaceFolder}”,

“environment”: [{ “name”: “PATH”, “value”: “${config:idf.customExtraPaths}” }],

“setupCommands”: [

{ “text”: “-enable-pretty-printing”,

“ignoreFailures”: true },

{ “text”: “file ‘${workspaceFolder}/build/${command:espIdf.getProjectName}.elf'”},

{ “text”: “target remote :3333” },

{ “text”: “set remote hardware-watchpoint-limit 2”},

{ “text”: “mon reset halt” },

{ “text”: “thb app_main” },

{ “text”: “flushregs” }

//{ “text”: “c”}

],

“externalConsole”: false,

“logging”: {undefined

“engineLogging”: true

}

}

]

}

tasks.json 這個文用系統生成的即可 略

————————————————

版權聲明:本文為CSDN博主「FuShaofeng」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:

esp32關閉沒用外設

硬件準備

ESP32開發板一套

1、一分鐘上雲體驗

打開「支付寶」掃描下圖二維碼

在案例詳情中,點擊「立即體驗」

是不是感覺挺神奇的,手摸一摸就能在手機上顯示摸了哪幾個引腳。

只需要以下幾步

2、物聯網平台開發

整個過程包含以下4個步驟:

1、開通公共實例

2、創建產品(設備模型)

3、定義產品功能(物模型)

4、創建設備及獲取三元組

2.1、開通公共實例

對於第一次使用物聯網平台的讀者,需要開通實例以使用物聯網平台的功能。這裡可以使用免費的公共實例進行開發。在物聯網平台中,左上角選擇「華東2-上海」,點擊「公共實例」,即可開通。開通後點擊「公共實例」,即可進入控制台進行產品創建。

2.2、創建產品(設備模型)

進入公共實例控制台,點擊「創建產品」按鈕,即可進入新建產品頁面。

進入新建產品頁面,設定「產品名稱」,這裡我們命名為「nodemcu32S」,讀者也可以根據自己的喜好來命名。在「所屬品類」中,選擇「自定義品類」。

產品的節點類型選擇「直連設備」,數據格式選擇「ICA標準數據格式」,檢驗類型和認證方式選擇默認設定即可。開發者可根據自己的需求在「產品描述」頁面添加針對此產品的描述。

對於ESP32等搭載Wi-Fi的設備而言,聯網方式選擇「Wi-Fi」。

點擊「確認」按鈕,即可完成產品創建。

點擊「前往定義物模型」

2.3、定義產品功能(物模型)

開發者可以使用準備好的物模型文件來進行快速導入。點擊左上角「快速導入」,選擇物模型文件並上傳,就能夠生成案例對應的物模型。

生成後的效果如下:

定義好物模型後,需要發佈物模型上線,並發佈產品,以使變更生效。

產品及其物模型創建完成後就可以創建這個產品的設備了。

2.4、創建設備及獲取三元組

點擊左側欄中「設備」,在篩選框中選擇需要添加的產品,點擊「添加設備」,這裡我們命名為「test_device」,開發者可以根據自己的喜好來命名。

開發者也可以選擇「批量添加」,一次性添加多個設備,並聲稱隨機的DeviceName。

生成的設備如下:

點擊前往「產看」按鈕,就可以看到此設備的詳細信息了。

點擊左上角的「查看」按鈕,就能看到設備的三元組信息了。

三元組是物聯網設備與雲端關聯的唯一標識符,在設備端連到雲端的時候會使用三元組信息和雲端進行鑒權,鑒權通過之後雲端會認為設備已激活並上線。

3、設備端開發

在進行下一步之前請確保ESP32開發環境已經搭建完畢。詳情請參考「ESP32快速開始」的說明。

3.1、創建解決方案

如下圖所示,打開VSCode之後再新建一個基於helloword的python工程,設定好工程名稱(「test_demo」)及工作區路徑之後,硬件類型選擇ESP32,點擊立即創建,創建一個Python輕應用的解決方案。

將腳本壓縮包解壓後,複製該文件夾下的所有文件,覆蓋”test_demo”工程目錄下,main.py文件:

Python腳本的詳細說明請參考腳本內嵌的文字注釋。

修改路由器名稱及密碼

修改工程里main.py中wifiSsid和WifiPassword的值為讀者實際要鏈接的路由器名稱及密碼(請注意名稱和密碼都需要放在””符號中間)。

# Wi-Fi SSID和Password設置

wifiSsid = “請填寫您的路由器名稱”

wifiPassword = “請填寫您的路由器密碼”

修改完成後get_wifi_status函數中的wlan.connect(wifiSsid,wifipassword)語句就會連接讀者自己設定的路由器。

修改設備端三元組

# 物聯網平台相關的key和serect定義

ProductKey = ‘ProductKey’

DeviceName = ‘DeviceName’

DeviceSecret = ‘DeviceSecret’

點擊「部署運行」,等待程序運行。

3.2、物聯網平台端設備信息查看

再次前往物聯網平台的設備信息頁面,若設備運行正確,此時應該可以看到設備名右側的狀態由「未激活」變為「在線」。選中「實時刷新」,可以看到數據實時從設備上報到物聯網平台,設備上雲成功。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/236947.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:02
下一篇 2024-12-12 12:02

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論