电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>我爱你枕头与MKR WiFi 1010开源分享

我爱你枕头与MKR WiFi 1010开源分享

2022-11-02 | zip | 0.22 MB | 次下载 | 免费

资料介绍

描述

我们都知道,在你的生活中没有那个特别的人可能会很困难,但是如果你可以通过互联网远程发送爱和感情,只需拥抱一个枕头呢?现在,我们不能真正发送拥抱……但我们可以通过消息应用程序发送一个甜蜜的表情符号,由你给枕头一个拥抱触发。当你拥抱我爱你枕头时,你会听到里面的蜂鸣器发出心跳的声音。根据您拥抱的长度,Telegram Bot 将向您选择的任何聊天发送不同的表情符号。使用这款可拥抱的设备与您所爱的人保持联系!

简而言之

在这个实验中,我们将使用铝箔制作一个 DIY 电容传感器,用于检测拥抱。为了创建我们的拥抱发送设备,我们需要以下组件:

  • 蜂鸣器
  • 铝箔
  • 面包板
  • 电线

学习目标

  • 管理电容式传感器
  • 电报机器人和群聊#ProTips
  • WiFi 最佳实践#ProTips

专业提示是有用但并非绝对必要的步骤,它们会为项目增加一层复杂性。

想知道更多?

教程是让您熟悉 MKR WiFi 1010 和 IoT 的一系列实验的一部分。所有实验都可以使用 MKR IoT Bundle 中包含的组件构建。

  • 我爱你枕头与 MKR WiFi 1010

介绍电报机器人

Telegram是一款流行的移动和桌面消息传递应用程序。除了让我们与朋友聊天之外,它还允许我们创建方便且强大的聊天机器人!

聊天机器人只不过是您可以与之聊天的联系人,而是它背后的人,有一台机器可以相应地回复您编写的代码。

Arduino的 TelegramBot 库为我们提供了一种简单的方法来实现聊天机器人背后的逻辑。

创建你的机器人

创建一个机器人是如此简单!只需按照这几个简单的步骤或在此处查看文档

 
 
 
 
poYBAGNgvZyAVc0mAABmDF6Wh7I70.jpeg
 
1 / 5第 1 步 - 寻找 BotFather
 

设置董事会

首先确保我们拥有所有需要的库。这是我们需要的所有库的列表:

  • 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 示例是查看机器人如何读取您的表情符号的简单方法。

 
poYBAGNgvZ6AdEjsAABMESmIcmU662.png
向 Bot 发送表情符号,看看编码后的等价物是什么
 

不幸的是,机器人接收表情符号的方式与发送它们的方式不同。为了发送表情符号,我们需要使用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
   }
 }
}

结果将是:

 
pYYBAGNgvaCAczESAABIHvC7i7Y756.png
用另一个心形表情符号回复心形表情符号
 

电容式传感器

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
}

接线和结果

 
poYBAGNgvayAOnWkAAEHK4bvptY190.jpg
在控制台上查看值
 

我们将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。

在这个项目中,机器人只会回复最后一个发短信的人,不管那是谁。

机器人是公开的,每个人都可以给机器人发短信!

如果您想将机器人包含在群聊中,您需要禁用隐私模式以允许机器人阅读所有消息,否则它将只能检测以开头的命令/:

 
 
 
 
pYYBAGNgva6Af_YrAABo4r-NVok639.png
 
1 / 3使用 /mybot 命令向@BotFather 发送文本,然后选择您的机器人和机器人设置
 

#ProTip:WiFi 最佳实践

WiFi 可能很棘手。有时它只是关闭几秒钟,显然没有任何理由。这对您的 Arduino 来说可能是个问题,因为大多数时候我们只在草图的开头运行 WiFi 连接功能。

在线服务也可能很棘手,当 Arduino 向服务器(在本例中为 Telegram)发送请求时,它会等待回复。由于数百个原因,回复可能无法到达,使 Arduino 处于无限循环中。

为了让你的项目更稳定,你可以添加一个看门狗看门狗是一个必须定期更新的计时器,否则它将重新启动电路板。

您可以使用这两个库向您的项目添加看门狗:

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");
 }
}

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费