您的位置:

包含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、物联网平台端设备信息查看

再次前往物联网平台的设备信息页面,若设备运行正确,此时应该可以看到设备名右侧的状态由“未激活”变为“在线”。选中“实时刷新”,可以看到数据实时从设备上报到物联网平台,设备上云成功。

包含esp32教程python的词条

2022-11-11
包含python使用笔记24的词条

2022-11-21
包含python知识点1的词条

2022-11-13
python方法笔记,python基础教程笔记

2022-11-20
python基础笔记整理(python基础教程总结)

2022-11-12
包含pythonjsondump的词条

本文目录一览: 1、【Python】浅谈python中的json 2、Python用json模块时怎么才能用dump存数据时自动换行呢 3、python 用json.dumps处理字典后如何还原? 4

2023-12-08
包含python对比json的词条

本文目录一览: 1、用python依次比较2个文件夹内的JSON文件的差异? 2、【Python】浅谈python中的json 3、python3,如何对比2个结构一样的json? 用python依次

2023-12-08
python个人学习笔记1(python笔记总结)

2022-11-11
包含python程序算例之使用类的词条

2022-11-08
包含python岗笔试的词条

2022-11-18
python画图笔记(python画图作业)

2022-11-10
包含拼python教程视频教程的词条

2022-11-17
python笔记第六天,python第六周笔记

2022-11-21
包含java基础笔记day1的词条

2022-11-20
python的用法笔记本(笔记本学python)

2022-11-16
包含python基础知识day4的词条

2022-11-09
包含python详解json模块的词条

本文目录一览: 1、python的json模块 2、Python模块的几种类型简介 3、【Python】浅谈python中的json python的json模块 json.load不是什么文件都能打开

2023-12-08
包含python实现海龟绘图的词条

2022-11-08
Python Padx:用Python快速打造自己的代码笔记

2023-05-12
python学习笔记0(0基础Python)

2022-11-16