如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter

该项目旨在指导如何在 WIZnet 以太网 HAT、IFTTT 和 Micropython 的帮助下将 Rpi Pico 连接到 Twitter

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第1张图片

转发: How to Connect Raspberry Pi Pico to Twitter using Ethernet HAT and IFTTT


项目介绍

1. 介绍

为了继续我在上一个项目中开始的 micropython 之旅,这次我决定尝试使用 WIZnet 以太网 HAT 和 Micropython 连接 Raspberry Pi Pico 和 Twitter。

由于 WIZnet 以太网 HAT 设计为与 Raspberry Pi Pico 引脚兼容,因此连接这些板非常简单。 有关该板的更多详细信息,请参阅文档页面和 YouTube 视频

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第2张图片

Pico 引脚 说明
GPIO16 连接到 W5100S 上的 MISO
GPIO17 连接到 W5100S 上的 CSn
GPIO18 连接到 W5100S 上的 SCLK
GPIO19 连接到 W5100S 上的 MOSI
GPIO20 连接到 W5100S 上的 RSTn
GPIO21 连接到 W5100S 上的 INTn

请注意,可以使用 W5100S-EVB-Pico 或 W5500-EVB-Pico 板复制该项目。 在这种情况下,您可以通过“自定义 Micropython 固件”跳过第三步。

2. 设置 IFTTT

FTTT(或 If This,Then That)充当连接 Raspberry Pi Pico 和 Twitter 的桥梁。 这是一项免费服务,有助于集成各种数据服务。 我将创建一个响应 webhook 的小程序,将数据发送到 IFTTT。 随后,IFTTT 会将这些数据包含在发送给 Twitter 的消息中。

(a) 访问 IFTTT,创建帐户并登录

(b) 单击“创建”按钮

(c) 单击“添加”按钮创建触发事件。

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第3张图片

(d) 搜索“webhook”并单击该图块

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第4张图片

(e) 选择“接收网络请求”

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第5张图片

(f) 创建事件名称并按“创建触发器”按钮

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第6张图片

(g) 现在配置了“If”,现在让我们设置“Then That”。 点击“添加”

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第7张图片

(h) 在搜索栏中输入“Twitter”,然后单击该图标

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第8张图片

(i) 选择“发布推文”

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第9张图片

(j) 输入您的 Twitter 帐户(确保正确)。 自定义您的推文文本,按“添加成分”添加变量

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第10张图片

(k) 单击“继续”按钮

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第11张图片

(l) 查看小程序,切换按钮以选择接收通知,然后单击“完成”按钮

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第12张图片

(m) 访问 webhook 页面并点击“文档”按钮

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第13张图片

(n) 复制帖子链接。

https://maker.ifttt.com/trigger/{event}/json/with/key/YOUR API KEY HERE

删除/json,将 {event} 更改为您的触发器名称(在我的例子中为“post-tweet”)并插入您的 API 密钥。

https://maker.ifttt.com/trigger/post-tweet/with/key/YOUR API KEY HERE

3. 定制 Micropython 固件

由于我使用的是 Raspberry Pi Pico,基本的 Micropython 固件没有 WIZNET5K 库。 因此我需要构建一个包含该库的固件。

免责声明:这是我第二次使用Micropython,可能有更好、更简单的方法将网络库添加到Pico。 以下变更自 2023 年 7 月起生效。

(a)克隆 micropython 存储库

(b) 导航到“ports/rp2/boards/PICO”文件夹并进行以下更改

(c) 在mpconfigboard.h中添加

// Board and hardware specific configuration
#define MICROPY_HW_BOARD_NAME                   "Raspberry Pi Pico"
#define MICROPY_HW_FLASH_STORAGE_BYTES          (1408 * 1024)

#define MICROPY_PY_NETWORK                      (1)

(d) 在mpconfigboard.cmake中添加

# cmake file for Raspberry Pi Pico

set(MICROPY_PY_NETWORK_WIZNET5K W5100S)
set(MICROPY_PY_LWIP 1)
set(MICROPY_FROZEN_MANIFEST ${MICROPY_BOARD_DIR}/manifest.py)

(e) 创建新的manifest.py文件并复制以下内容

include("$(PORT_DIR)/boards/manifest.py")

require("bundle-networking")

(f) 构建固件并将其刷新到 Pico 板

4. 代码

(a) 导入模块和库

from usocket import socket
from machine import Pin,SPI
import network
import time
import urequests

(b) 初始化WIZnet芯片。 就我而言,我使用静态 IP,请确保根据您的环境进行更新。

#W5x00 chip init
def w5x00_init():
    spi=SPI(0,2_000_000, mosi=Pin(19),miso=Pin(16),sck=Pin(18))
    nic = network.WIZNET5K(spi,Pin(17),Pin(20)) #spi,cs,reset pin
    nic.active(True)
    nic.ifconfig(('192.168.11.30','255.255.255.0','192.168.11.1','8.8.8.8'))
    while not nic.isconnected():
        time.sleep(1)
        print(nic.regs())
    print(nic.ifconfig())

(c) 使用 urequests.post 将消息发布到 Twitter

    message = "https://maker.ifttt.com/trigger/post-tweet/with/key/YOUR_API_KEY_HERE?value1=Hello%20World"
    urequests.post(message)

完整代码:

from usocket import socket
from machine import Pin,SPI
import network
import time
import urequests

#W5x00 chip init
def w5x00_init():
    spi=SPI(0,2_000_000, mosi=Pin(19),miso=Pin(16),sck=Pin(18))
    nic = network.WIZNET5K(spi,Pin(17),Pin(20)) #spi,cs,reset pin
    nic.active(True)
    nic.ifconfig(('192.168.11.30','255.255.255.0','192.168.11.1','8.8.8.8'))
    while not nic.isconnected():
        time.sleep(1)
        print(nic.regs())
    print(nic.ifconfig())
        
def main():
    w5x00_init()

    message = "https://maker.ifttt.com/trigger/post-tweet/with/key/YOUR_API_KEY_HERE?value1=Hello%20World"
    urequests.post(message)
    
if __name__ == "__main__":
    main()

注意:IFTTT 的频率限制为每天 25 条推文,因此请确保在循环发帖时添加睡眠间隔

5. 结果

运行代码后,您将收到来自 IFTTT 的电子邮件(如果选择通知),并在您的 Twitter 帐户中看到相应的帖子。

如何使用以太网 HAT 和 IFTTT 将 Raspberry Pi Pico 连接到 Twitter_第14张图片

6. 下一步计划

我可能会用它来自动化我的 SNS 发布。 请继续关注下一个项目:)

你可能感兴趣的:(twitter)