『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1257|回复: 3

[新奇玩法] 问了新bing一个问题:比较esphome、arduino和tasmota。

[复制链接]

14

主题

250

帖子

1998

积分

金牌会员

Rank: 6Rank: 6

积分
1998
金钱
1743
HASS币
50
发表于 2023-2-15 12:25:31 | 显示全部楼层 |阅读模式
今天获得了新bing的试用,问了个问题:比较esphome、arduino和tasmota。
bing回答:
根据网上的一些信息123,esphome和arduino和tasmota的比较的答案如下:

esphome、arduino和tasmota都是可以用来为ESP8266和ESP32开发板编写和上传固件的工具,但它们有以下几个主要区别:123
esphome使用YAML语言编写配置文件,而arduino使用C++语言编写代码,tasmota使用C语言编写代码。YAML语言相对而言更简洁、易读、易写,而C++语言和C语言相对而言更灵活、强大、复杂。123
esphome可以与Home Assistant无缝集成,而arduino和tasmota需要通过MQTT或其他协议与Home Assistant通信。esphome可以通过Home Assistant的界面来安装、管理和更新设备,而arduino和tasmota需要通过IDE或其他工具来操作设备。123
esphome提供了丰富的组件和传感器的支持,而arduino和tasmota需要自己编写或引用库来实现功能。esphome可以通过简单的配置来实现复杂的逻辑和控制,而arduino和tasmota需要自己编写或修改代码来实现功能。123
esphome和tasmota都可以很容易地在设备之间切换,只需要上传对应的.bin文件即可。而arduino需要使用USB线或其他方式来连接设备,然后通过IDE来刷写固件。12
esphome的响应速度比tasmota的更快,特别是当设备数量较多时,esphome的原生API比tasmota的MQTT更稳定和高效。而arduino的响应速度则取决于代码的优化和通信的协议。2
您对esphome和arduino和tasmota的比较有什么疑问吗?
回复

使用道具 举报

14

主题

250

帖子

1998

积分

金牌会员

Rank: 6Rank: 6

积分
1998
金钱
1743
HASS币
50
 楼主| 发表于 2023-2-15 12:29:35 | 显示全部楼层
另一个问题:3.2寸ili9341屏幕连接到esp32,请编写esphome代码,实现用屏幕上的一个触摸按钮,控制一个继电器开关。bing回答:
根据网上的一些信息123456,3.2寸ili9341屏幕连接到esp32,请编写esphome代码,实现用屏幕上的一个触摸按钮,控制一个继电器开关。的答案如下:

首先,需要配置ili9341屏幕的相关参数,如spi引脚、分辨率、旋转角度等。1
然后,需要配置esp32的触摸引脚,如触摸阈值、唤醒阈值等。5
接着,需要配置继电器的相关参数,如gpio引脚、初始状态等。4
最后,需要配置屏幕上的一个触摸按钮,如位置、大小、颜色、文本等,并设置其按下和松开的动作,如切换继电器的状态等。16
以下是一个可能的esphome代码示例:

esphome:
  name: esp32_ili9341
  platform: ESP32
  board: esp32dev

# Configure the ili9341 display
display:
  - platform: ili9341
    model: TFT 3.2
    cs_pin: GPIO15
    dc_pin: GPIO2
    reset_pin: GPIO4
    led_pin: GPIO5
    clk_pin: GPIO18
    mosi_pin: GPIO23
    miso_pin: GPIO19
    resolution: 320x240
    rotation: 0
    id: my_display

# Configure the esp32 touch pad
binary_sensor:
  - platform: esp32_touch
    pin: GPIO32
    threshold: 1000
    name: "Touch Button"
    id: touch_button
    on_press:
      - display.page.show: touch_button_page
      - component.update: my_display
    on_release:
      - switch.toggle: relay

# Configure the relay
switch:
  - platform: gpio
    pin: GPIO12
    name: "Relay"
    id: relay
    restore_mode: RESTORE_DEFAULT_OFF

# Configure the touch button on the display
display:
  - id: my_display
    pages:
      - id: touch_button_page
        lambda: |-
          it.rectangle(100, 80, 120, 80, COLOR_WHITE);
          it.print(110, 100, id(font), COLOR_BLACK, TextAlign::CENTER, "Touch");
          it.print(110, 120, id(font), COLOR_BLACK, TextAlign::CENTER, "Button");
这段代码基本有效,等我试试看。
3.2寸ili9341屏幕这个连接到esp32,请编写esphome代码,实现用屏幕上的一个触摸按钮,控制一个继电器开关。

回复

使用道具 举报

14

主题

250

帖子

1998

积分

金牌会员

Rank: 6Rank: 6

积分
1998
金钱
1743
HASS币
50
 楼主| 发表于 2023-2-15 12:33:27 | 显示全部楼层
根据网上的一些信息¹²³,如何添加更多的触摸按钮?的答案如下:

- 如果您使用的是触摸屏,您可以使用touchscreen binary sensor组件来设置屏幕上的虚拟按钮,指定其位置、大小、名称、图标等,并设置其按下和松开的动作。¹
- 例如,如果您想在屏幕的左上角添加一个触摸按钮,可以使用以下代码:¹

```yaml
binary_sensor:
  - platform: touchscreen
    name: "Touch Button 1"
    id: touch_button_1
    x_min: 0
    x_max: 50
    y_min: 0
    y_max: 50
    on_press:
      - ...
    on_release:
      - ...
```

- 如果您使用的是esp32的触摸引脚,您可以使用esp32 touch binary sensor组件来设置触摸引脚,指定其引脚号、阈值、名称、图标等,并设置其按下和松开的动作。
- 例如,如果您想使用GPIO33作为一个触摸引脚,可以使用以下代码:

```yaml
binary_sensor:
  - platform: esp32_touch
    name: "Touch Button 2"
    id: touch_button_2
    pin: GPIO33
    threshold: 1000
    on_press:
      - ...
    on_release:
      - ...
```

- 您可以根据您的需要添加更多的触摸按钮,只要您有足够的触摸屏区域或触摸引脚。¹
- 您也可以使用button组件来创建一个虚拟的按钮,不需要任何硬件,只需要指定其名称、图标等,并设置其按下和松开的动作。²
- 例如,如果您想创建一个虚拟的按钮,可以使用以下代码:²

```yaml
button:
  - platform: template
    name: "Virtual Button"
    id: virtual_button
    on_press:
      - ...
    on_release:
      - ...
```

您对添加更多的触摸按钮有什么疑问吗?
回复

使用道具 举报

1

主题

46

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
金钱
358
HASS币
0
发表于 2023-12-11 22:13:28 | 显示全部楼层
我一直用arduino  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-8 03:46 , Processed in 0.164511 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表