资料介绍
描述
我们都知道,在你的生活中没有那个特别的人可能会很困难,但是如果你可以通过互联网远程发送爱和感情,只需拥抱一个枕头呢?现在,我们不能真正发送拥抱……但我们可以通过消息应用程序发送一个甜蜜的表情符号,由你给枕头一个拥抱触发。当你拥抱我爱你枕头时,你会听到里面的蜂鸣器发出心跳的声音。根据您拥抱的长度,Telegram Bot 将向您选择的任何聊天发送不同的表情符号。使用这款可拥抱的设备与您所爱的人保持联系!
简而言之
在这个实验中,我们将使用铝箔制作一个 DIY 电容传感器,用于检测拥抱。为了创建我们的拥抱发送设备,我们需要以下组件:
- 蜂鸣器
- 铝箔
- 1个电阻5M欧姆
- 面包板
- 电线
学习目标
- 介绍电报机器人
- 管理电容式传感器
- 电报机器人和群聊#ProTips
- WiFi 最佳实践#ProTips
专业提示是有用但并非绝对必要的步骤,它们会为项目增加一层复杂性。
想知道更多?
本教程是让您熟悉 MKR WiFi 1010 和 IoT 的一系列实验的一部分。所有实验都可以使用 MKR IoT Bundle 中包含的组件构建。
- 我爱你枕头与 MKR WiFi 1010
介绍电报机器人
Telegram是一款流行的移动和桌面消息传递应用程序。除了让我们与朋友聊天之外,它还允许我们创建方便且强大的聊天机器人!
聊天机器人只不过是您可以与之聊天的联系人,而是它背后的人,有一台机器可以相应地回复您编写的代码。
Arduino的 TelegramBot 库为我们提供了一种简单的方法来实现聊天机器人背后的逻辑。
创建你的机器人
创建一个机器人是如此简单!只需按照这几个简单的步骤或在此处查看文档。
设置董事会
首先确保我们拥有所有需要的库。这是我们需要的所有库的列表:
- WiFi妮娜
- 电报机器人
- ArduinoJson
- 电容式传感器
您可以按照这个简单的指南轻松安装它们。
为了使用 Telegram 的 API,我们首先需要在 MKR WiFi 1010 上上传证书。这适用于大多数在线服务和 API!
从 WiFiNINA 库上传固件更新程序示例并将 api.telegram.org 添加到域。这些是要遵循的步骤:
- 运行IDE;
- 上传草图`Example->WiFiNINA->tools->Firmware updater`
- 在工具中打开`WiFi101/WiFiNINA 固件更新程序`
- 点击“添加域”
- 单击“将证书上传到 WiFi 模块”
- 上传你的草图`
让魔法发生!
打开 TelegramBot 库中的 EchoBot 示例,填写您的 WiFi 凭据和您从 BotFather 收到的 API 令牌并上传!
> 示例 > TelegramBot > EchoBot
您刚刚创建了一个回显所有消息的机器人。
EchoBot 和表情符号
表情符号无处不在!我们将用它们来传递我们的爱和拥抱。使用 EchoBot 示例是查看机器人如何读取您的表情符号的简单方法。
不幸的是,机器人接收表情符号的方式与发送它们的方式不同。为了发送表情符号,我们需要使用UNICODE字符。
例如,要发送一个心形表情符号,我们将使用: \U00002764
您可以在此处查看unicode 表情符号代码的完整列表。为了创建一个用另一个心脏表情符号回复心脏表情符号的机器人,我们将使用如下代码:
void loop() {
message m = bot.getUpdates(); // Read new messages
if ( m.chat_id != 0 ) { // Check if there are some updates
Serial.println(m.text); // print the message received
if (m.text == "u2764ufe0f") { //check if it received an heart emoji
bot.sendMessage(m.chat_id, "\U00002764");
// Reply to the same chat with the heart emoji
}
}
}
结果将是:
电容式传感器
Telegram 够了,让我们开始构建我们的 DIY 电容式传感器吧!
CapacitiveSensor库将两个或多个 Arduino 引脚变成一个电容传感器,可以感应人体的电容。
传感器设置所需的只是一个中值到高值的电阻器和一块铝箔。
在最敏感的情况下,传感器将开始感应距离传感器几英寸的手或身体,并通过不同种类的材料。我们将把传感器藏在枕头里!
上传示例草图,连接电线并在控制台上查看结果:
#include
CapacitiveSensor foil = CapacitiveSensor(5, 4);
// 10M resistor between pins 5 & 4, pin 4 is sensor pin, add a wire and or foil
void setup()
{
foil.set_CS_AutocaL_Millis(0xFFFFFFFF); // turn off autocalibrate
Serial.begin(9600);
}
void loop()
{
long start = millis();
long sensor_value = foil.capacitiveSensor(30);
Serial.print(millis() - start); // check on performance in milliseconds
Serial.print("\t"); // tab character for debug windown spacing
Serial.print(sensor_value); // print sensor output
Serial.println("\t"); // print sensor output 3
delay(500); // arbitrary delay to limit data to serial port
}
接线和结果
我们将sensor_value
用作检测拥抱的阈值!
心跳
拥抱的时间越长,听到的心跳声就越多。心跳越多,您发送的爱就越多(以及不同的表情符号)。
我们将使用蜂鸣器和几行简单的代码来模拟心跳的声音。
int Buzzer = 8; // Pin attached to the buzzer
void setup() {}
void loop() {
HeartBeat();
delay(1000);
}
void HeartBeat() {
tone(Buzzer, 31, 200); // tone(Pin, Note, Duration);
delay(200);
tone(Buzzer, 31, 400);
delay(200);
noTone(Buzzer);
delay(1000);
}
要更复杂地使用蜂鸣器和音调功能,请查看下拉菜单示例并查找 Digital > ToneMelody
#ProTip:聊天 ID 和群聊
为了发送消息,机器人需要一个聊天 ID。聊天 id 是某人和机器人之间聊天的唯一标识符。为了让机器人向特定的人发送消息,您首先需要该人向机器人发送短信并保存该特定聊天的聊天 ID。
在这个项目中,机器人只会回复最后一个发短信的人,不管那是谁。
机器人是公开的,每个人都可以给机器人发短信!
如果您想将机器人包含在群聊中,您需要禁用隐私模式以允许机器人阅读所有消息,否则它将只能检测以开头的命令/:
#ProTip:WiFi 最佳实践
WiFi 可能很棘手。有时它只是关闭几秒钟,显然没有任何理由。这对您的 Arduino 来说可能是个问题,因为大多数时候我们只在草图的开头运行 WiFi 连接功能。
在线服务也可能很棘手,当 Arduino 向服务器(在本例中为 Telegram)发送请求时,它会等待回复。由于数百个原因,回复可能无法到达,使 Arduino 处于无限循环中。
为了让你的项目更稳定,你可以添加一个看门狗。看门狗是一个必须定期更新的计时器,否则它将重新启动电路板。
您可以使用这两个库向您的项目添加看门狗:
- Adafruit ASF Core // 必须从 Github 手动下载和安装
EchoBot 示例将如下所示:
#include <WiFi101.h>
#include <SPI.h>
#include <TelegramBot.h>
#include <Adafruit_SleepyDog.h>
// Initialize Wifi connection to the router
char ssid[] = "xxxx"; // your network SSID (name)
char pass[] = "yyyy"; // your network key
// Initialize Telegram BOT
const char BotToken[] = "xxxx";
WiFiSSLClient client;
TelegramBot bot (BotToken, client);
void setup() {
Serial.begin(115200);
while (!Serial) {}
delay(3000);
// attempt to connect to Wifi network:
Serial.print("Connecting Wifi: ");
Serial.println(ssid);
while (WiFi.begin(ssid, pass) != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.println("WiFi connected");
bot.begin();
Watchdog.enable(10000); // set the timer to 10 sec
}
void loop() {
Watchdog.reset(); // if this function is not called within 10 seconds the board will reset itself
message m = bot.getUpdates(); // Read new messages
if ( m.chat_id != 0 ) { // Checks if there are some updates
Serial.println(m.text);
bot.sendMessage(m.chat_id, m.text); // Reply to the same chat with the same text
} else {
Serial.println("no new message");
}
}
- MKR WiFi 1010 + MKR RS 485 Shield连接到Ignition
- 使用Arduino MKR1000通过WiFi进行HID攻击
- MKR1000 Pushover状态开源
- MKR FOX 1200运动触发器开源分享
- 带MKR WiFi 1010的书呆子
- 使用Arduino Mkr Wifi 1010和Thincloud构建连接灯的过程
- 带有Arduino MKR1010和MKR RGB Shield的Otto Biped
- 将MQTT协议物联网与Arduino MKR1010 WiFi结合使用
- Netduino WiFi锁开源分享
- Arduino MKR GSM 1400和DTMF开源
- 带有MKR WiFi 1010的植物通讯器
- 使用Grove Sensor的Arduino MKR1010和阿里云IoT
- WIFI智能开源电热水器的原理图和源代码免费下载 46次下载
- 爱你爱你爱到底歌词
- 爱你爱到底mp3下载
- 前沿开源技术领域的开源大数据一一解读 1005次阅读
- WiFi 6与WiFi 5到底有什么区别 7w次阅读
- 什么是wifi6,与wifi2.4g和wifi5g有什么区别 5.4w次阅读
- MKR Vidor 4000一款拇指型的FPGA开发板 1174次阅读
- 什么是2.4G WIFI 什么是5G WiFi 3.6w次阅读
- Redis简单案例:网站搜索的热搜词 2872次阅读
- 简评FPGA——Arduino MKR Vidor 4000 6807次阅读
- 细说WiFi信号与路由器和WiFi模块的关系 1.2w次阅读
- wifi探针技术的应用领域_公安局wifi探针用途 2.3w次阅读
- wifi探针是什么_wifi探针的工作原理详解 4.6w次阅读
- wifi模块异常是怎么回事_wifi模块异常怎样解决 6.9w次阅读
- 手机wifi模块在哪里_手机wifi模块位置图解 13.9w次阅读
- 双频wifi是什么意思_双频wifi的优点 2.7w次阅读
- 高通双通路WiFi技术帮你解决家庭WiFi信号差的问题 4245次阅读
- WiFi信号是怎样传播的? 1.2w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多