在Espressif-IDE中使用Wokwi仿真ESP32
陈拓 2023/10/17-2023/10/19
1. 概述
在Espressif-IDE v2.9.0版本之后可直接在IDE中使用Wokwi模拟器。
1.1 什么是 Wokwi 模拟器?
Wokwi 是一款在线电子模拟器,支持模拟各种开发板、元器件和传感器,例如乐鑫产品 ESP32。 Wokwi 提供基于浏览器的界面,您可以通过这种简单直观的方式,即可快速编写一个 IoT 项目。
网址https://wokwi.com/
1.2 Wokwi和Espressif-IDE是如何集成并工作的?
如果选择使用乐鑫开发板基于ESP-IDF构建IoT应用,Espressif-IDE可以为您提供开发环境。您可以在IDE中构建、烧录、监控或调试IoT应用;但若想查看串口输出还需要通过ESP32开发板,此时使用Wokwi模拟器更加快速便捷,可免去使用开发板。
Espressif-IDE提供Wokwi集成插件,允许IDE通过websocket与Wokwi服务器进行通信,以此来实现烧录IDE中构建的.bin 文件。根据IDE提供的目标芯片和项目ID,Wokwi服务器在系统浏览器中为指定目标启动模拟器。因此在与模拟器通信的同时,您也可在IDE控制台查看串口监视器输出。

2. 在Espressif-IDE中使用Wokwi模拟器
2.1 安装Espressif-IDE
见《ESP32集成开发环境Espressif-IDE安装 – Windows》
https://blog.csdn.net/chentuo2000/article/details/133931499?spm=1001.2014.3001.5501
2.2 安装 Wokwi 服务器
https://github.com/MabezDev/wokwi-server/

- 下载wokwi-server
从发布页面下载为您的平台预先构建的可执行文件。
https://github.com/MabezDev/wokwi-server/releases

![]()
提示:
如果访问github超时或者下载速度慢,可以试试用Watt Toolkit加速,网址:
https://steampp.net/

Watt Tookit可以从Microsoft Store直接安装:

- 解压wokwi-server

这就算安装好了。
2.3 设置环境变量
在Eclipse CDT中构建环境变量。
- Peferences > C/C++ > Build > Environment


- Add…
添加WOKWI_SERVER_PATH为Wokwi服务器wokwi-server.exe的可执行路径

F:\esp\wokwi-server.exe

OK

Apply
Apply and Close
2.4 使用Wokwi模拟器配置一个新的运行启动配置(Launch Configuration)。
- New Launch Configguration…


- Next

- 选择项目

- OK

- 在https://wokwi.com/esp32中选择一个Wokwi项目并添加项目的项目ID
Wokwi项目的ID可以在URL中找到。
在https://wokwi.com/esp32中找一个可用的项目,对于我们这个例子任何一个项目都可以,因为我们不用任何外部元件,我们就用下面这个没有外都元件的项目:

点开该项目:

从URL中我们可以知道,项目的ID为305569599398609473
- 最终如下创建Launch Configuration

点击Apply,再点击Finish

2.5 启动Wokwi模拟器
- 从IDE工具栏中,单击“启动”按钮以启动Wokwi模拟器


- 点击Proceed
在默认浏览器中(我的默认浏览器是Microsoft Edge)将会看到运行中的Wokwi模拟器:

有关Wokwi模拟器的中文说明见:
https://docs.wokwi.com/zh-CN/

参考文档
- 如何在Espressif-IDE中使用Wokwi模拟器
https://blog.csdn.net/espressif/article/details/130563663?spm=1002101.3001.6650.4
相关文章:
在Espressif-IDE中使用Wokwi仿真ESP32
陈拓 2023/10/17-2023/10/19 1. 概述 在Espressif-IDE v2.9.0版本之后可直接在IDE中使用Wokwi模拟器。 1.1 什么是 Wokwi 模拟器? Wokwi 是一款在线电子模拟器,支持模拟各种开发板、元器件和传感器,例如乐鑫产品 ESP32。 Wokwi 提供基于浏…...
vue3里面vant组件的标签页使用?
一、绑一个v-model事件 二、让activeName的初始为0也就是默认是显示第一个标签页的下标 三、给标签页下面的东西进行一个判断 想让哪个优先显示就把哪个判断作为初始值存入...
【CSS】使用 CSS 实现一个宽高自适应的正方形
1. 利用 padding 或 vw <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><metaname"viewport"content"widthdevice-width, initial-scale1.0"><title>Document</title><st…...
Java Stream流详解
Stream API主要提供了两种类型的操作:中间操作 和 终止操作。 中间操作 中间操作是返回一个新的流,并在返回的流中包含所有之前的操作结果。它们总是延迟计算,这意味着它们只会在终止操作时执行,这样可以最大限度地优化资源使用。…...
localforage-本地存储的优化方案
前言 前端本地化存储算是一个老生常谈的话题了,我们对于 cookies、Web Storage(sessionStorage、localStorage)的使用已经非常熟悉,在面试与实际操作之中也会经常遇到相关的问题,但这些本地化存储的方式还存在一些缺陷…...
自学SLAM(4)《第二讲:三维物体刚体运动》作业
前言 小编研究生的研究方向是视觉SLAM,目前在自学,本篇文章为初学高翔老师课的第二次作业。 文章目录 前言1.熟悉 Eigen 矩阵运算2.几何运算练习3.旋转的表达4.罗德里格斯公式的证明5.四元数运算性质的验证6.熟悉 C11 1.熟悉 Eigen 矩阵运算 设线性⽅程 …...
C++:容量适配器(栈、队列、优先级队列)
目录 1.容器适配器 4.1 什么是适配器 4.2 STL标准库中的容器适配器 2.stack的使用 2.1 STL库中对stack的实现 3.queue的使用 3.1 STL库中对queue的实现 4.priority_queue使用 4.1模拟实现 priority_queue 5.deque 的简介 1.容器适配器 4.1 什么是适配器 适配器是一种…...
Java-IO流
文章目录 Java-IO流文件字节流文件字符流File类缓冲流转换流打印流数据流对象流 Java-IO流 JDK提供了一套用于IO操作的框架,为了方便我们开发者使用,就定义了一个像水流一样,根据流的传输方向和读取单位,分为字节流InputStream和…...
04、Python 爬取免费小说思路
目录 Python 爬取免费小说思路代码解析爬取东西基本的四行代码:user-agent安装模块从 bs4 导入 BeautifulSoup ,查询某个标签开头的数据筛选遍历获取小说的章节名称每章小说的链接获取请求网址的响应获取小说的内容筛选内容整理内容爬取下载到指定文件夹完整代码:Python 爬取…...
【前端vue面试】vue2
目录 computed和watchv-show和v-ifkey 的重要性v-for 和 v-if 不能一起使用!click的event修饰符事件修饰符表单项修饰符 父子组件通讯生命周期父子组件生命周期顺序 $nextTickslot 插槽动态组件异步组件keep-alivemixin computed和watch computed 有缓存࿰…...
自然语言处理---Transformer机制详解之GPT模型介绍
1 GPT介绍 GPT是OpenAI公司提出的一种语言预训练模型.OpenAI在论文<< Improving Language Understanding by Generative Pre-Training >>中提出GPT模型.OpenAI后续又在论文<< Language Models are Unsupervised Multitask Learners >>中提出GPT2模型.…...
【论文阅读】点云地图动态障碍物去除基准 A Dynamic Points Removal Benchmark in Point Cloud Maps
【论文阅读】点云地图动态障碍物去除基准 A Dynamic Points Removal Benchmark in Point Cloud Maps 终于一次轮到了讲自己的paper了 hahaha,写个中文的解读放在博客方便大家讨论 Title Picture Reference and prenotes paper: https://arxiv.org/abs/2307.07260 …...
2023年传媒行业中期策略 AIGC从三个不同层次为内容产业赋能
基本面和新题材共振,推动传媒互联网行情上涨 AIGC 概念带动,传媒板块领涨 A 股 2023 年第一个交易日(1 月 3 日)至 6 月 2 日,申万传媒指数区间涨幅高达 48.38%,同时期沪深 300 跌幅为 0.25%,…...
iOS上架App Store的全攻略
iOS上架App Store的全攻略 第一步:申请开发者账号 在开始将应用上架到App Store之前,你需要申请一个开发者账号。 1.1 打开苹果开发者中心网站:https://developer.apple.com/ 1.2 使用Apple ID和密码登录(如果没有账号则需要注册…...
操作系统——多个类别产品的生产者-消费者问题(王道视频p33、课本ch6)
1.问题解剖——得到的是 1个“互斥信号量” 3个“同步信号量” 其中特别注意,对于盘子plate可以清空的设计4个对象的,但是只用这一个同步信号量就可以实现 2.代码—— 3.由于这里的同步信号量的初值都是1,所以,即使不设置互斥信…...
uniapp(uncloud) 使用生态开发接口详情5(云公共模块)
1.uniCloud官网 云对象中云公共模块: 网站: https://uniapp.dcloud.net.cn/uniCloud/cf-common.html // 官网介绍 cloudfunctions├─common // 云函数公用模块目录| └─hello-common // 云函数公用模块| ├─package.json| └─index.js // 公用模块代码࿰…...
Oracle数据中如何在 where in() 条件传参
一、问题场景描述 在sql 条件中,如何在 where in()中想传入参数,如果直接 where in(:seqList),当传入单个值,seqList: ‘80’ 是没问题的,但是初入多个值时,seqList: ‘80,90’ ,因缺少单引号&…...
Python:函数篇(每周练习)
编程题: Python第四章作业(初级) (educoder.net) 题一:无参无返回值函数 def print_hi_human(): # 函数名用小写字母print("人类,你好!")if __name__ __main__:print_hi_human() 题二&#…...
为Element Plus封装业务组件FormDialog,将所有需要填写表单的弹窗组件封装,方便快速配置
使用FormDialog组件能够对表单弹窗进行快速配置,不用每次单独写弹窗表单业务组件,快速实现表单弹窗业务功能。 调用页面demo.vue validateRules.js引用 <script setup lang"ts"> import FormDialog from /components/FormDialog/index…...
ubuntu 设置和取消代理
背景 因为国内环境限制,在 linux 上安装一些软件的时候,因为限制就安装不了, 此时就可以通过设置代理的方式来规避这种问题,下面是具体的设置方式 步骤 sudo vim /etc/profile.d/proxy.sh添加以下内容到文件中 export http_pro…...
如何快速上手Kaf:从零开始的Kafka集群管理教程
如何快速上手Kaf:从零开始的Kafka集群管理教程 【免费下载链接】kaf Modern CLI for Apache Kafka, written in Go. 项目地址: https://gitcode.com/gh_mirrors/ka/kaf Kaf是一款用Go语言编写的现代Apache Kafka命令行工具,它提供了简洁高效的方式…...
多智能体市场(Multi-Agent Marketplace):未来的应用分发新形态
多智能体市场(Multi-Agent Marketplace):未来的应用分发新形态 引言:迎接智能体经济的新纪元 在技术发展的历史长河中,我们见证了多个应用分发范式的革命性变迁:从早期的软件商店到移动应用生态,再到如今的SaaS平台。每一次变革都重新定义了软件的创建、分发和消费方式…...
网络基石——深入解析STP协议中BPDU报文的选举逻辑与实战配置
1. 为什么需要STP协议? 想象一下你住在一个小镇上,所有房子都用双向道路连接。如果每条路都保持畅通,邮递员送信时可能会陷入无限循环——从A路出发绕一圈又回到起点。这就是早期交换网络面临的广播风暴问题:当交换机之间形成物理…...
磁力链接转种子文件:3分钟掌握终极转换方案
磁力链接转种子文件:3分钟掌握终极转换方案 【免费下载链接】Magnet2Torrent This will convert a magnet link into a .torrent file 项目地址: https://gitcode.com/gh_mirrors/ma/Magnet2Torrent 你是否曾经收藏了宝贵的磁力链接,却在需要时发…...
别再只用Z-score了!用Python的statsmodels.robust.mad()做异常值检测,对离群点更鲁棒
别再只用Z-score了!用Python的statsmodels.robust.mad()做异常值检测,对离群点更鲁棒 金融风控系统中,一个微小的异常交易可能隐藏着欺诈风险;工业传感器网络中,一个突变的温度读数可能预示着设备故障。传统Z-score方法…...
K8s压力测试实战:从HPA动态扩缩容到资源优化
1. 为什么需要K8s压力测试? 当你把业务迁移到Kubernetes集群后,最怕遇到什么情况?我猜一定是半夜被报警叫醒,发现服务因为流量激增而崩溃。去年我们团队就经历过一次,促销活动带来的流量是平时的20倍,HPA&…...
Gopher360:5分钟实现游戏手柄控制PC的终极指南
Gopher360:5分钟实现游戏手柄控制PC的终极指南 【免费下载链接】Gopher360 Gopher360 is a free zero-config app that instantly turns your Xbox 360, Xbox One, or even DualShock controller into a mouse and keyboard. Just download, run, and relax. 项目…...
告别iOS版本适配噩梦:Chameleon框架的智能依赖管理方案
告别iOS版本适配噩梦:Chameleon框架的智能依赖管理方案 【免费下载链接】chameleon Color framework for Swift & Objective-C (Gradient colors, hexcode support, colors from images & more). 项目地址: https://gitcode.com/gh_mirrors/ch/chameleon …...
庖丁解牛:从BootROM到FSBL的ZYNQ启动全景解析
1. ZYNQ启动流程全景概览 当你按下ZYNQ开发板的电源按钮时,这块看似普通的芯片内部正在上演一场精密的"交响乐"。作为嵌入式开发者,理解从BootROM到FSBL的完整启动链条,就像掌握了一把打开ZYNQ潜能的金钥匙。我用过不下二十款ZYNQ系…...
Aria2 RPC接口任意文件写入漏洞实战剖析
1. Aria2 RPC接口安全风险全景扫描 Aria2作为一款轻量级多协议下载工具,凭借其高效的下载性能和灵活的RPC接口设计,在开发者群体中广受欢迎。但很多运维人员可能不知道,默认配置下的Aria2 RPC服务就像敞开着大门的保险库,我曾在企…...

