資料介紹
描述
我們都知道,在你的生活中沒(méi)有那個(gè)特別的人可能會(huì)很困難,但是如果你可以通過(guò)互聯(lián)網(wǎng)遠(yuǎn)程發(fā)送愛(ài)和感情,只需擁抱一個(gè)枕頭呢?現(xiàn)在,我們不能真正發(fā)送擁抱……但我們可以通過(guò)消息應(yīng)用程序發(fā)送一個(gè)甜蜜的表情符號(hào),由你給枕頭一個(gè)擁抱觸發(fā)。當(dāng)你擁抱我愛(ài)你枕頭時(shí),你會(huì)聽(tīng)到里面的蜂鳴器發(fā)出心跳的聲音。根據(jù)您擁抱的長(zhǎng)度,Telegram Bot 將向您選擇的任何聊天發(fā)送不同的表情符號(hào)。使用這款可擁抱的設(shè)備與您所愛(ài)的人保持聯(lián)系!
簡(jiǎn)而言之
在這個(gè)實(shí)驗(yàn)中,我們將使用鋁箔制作一個(gè) DIY 電容傳感器,用于檢測(cè)擁抱。為了創(chuàng)建我們的擁抱發(fā)送設(shè)備,我們需要以下組件:
- 蜂鳴器
- 鋁箔
- 1個(gè)電阻5M歐姆
- 面包板
- 電線
學(xué)習(xí)目標(biāo)
- 介紹電報(bào)機(jī)器人
- 管理電容式傳感器
- 電報(bào)機(jī)器人和群聊#ProTips
- WiFi 最佳實(shí)踐#ProTips
專(zhuān)業(yè)提示是有用但并非絕對(duì)必要的步驟,它們會(huì)為項(xiàng)目增加一層復(fù)雜性。
想知道更多?
本教程是讓您熟悉 MKR WiFi 1010 和 IoT 的一系列實(shí)驗(yàn)的一部分。所有實(shí)驗(yàn)都可以使用 MKR IoT Bundle 中包含的組件構(gòu)建。
- 我愛(ài)你枕頭與 MKR WiFi 1010
介紹電報(bào)機(jī)器人
Telegram是一款流行的移動(dòng)和桌面消息傳遞應(yīng)用程序。除了讓我們與朋友聊天之外,它還允許我們創(chuàng)建方便且強(qiáng)大的聊天機(jī)器人!
聊天機(jī)器人只不過(guò)是您可以與之聊天的聯(lián)系人,而是它背后的人,有一臺(tái)機(jī)器可以相應(yīng)地回復(fù)您編寫(xiě)的代碼。
Arduino的 TelegramBot 庫(kù)為我們提供了一種簡(jiǎn)單的方法來(lái)實(shí)現(xiàn)聊天機(jī)器人背后的邏輯。
創(chuàng)建你的機(jī)器人
創(chuàng)建一個(gè)機(jī)器人是如此簡(jiǎn)單!只需按照這幾個(gè)簡(jiǎn)單的步驟或在此處查看文檔。
![poYBAGNgvZyAVc0mAABmDF6Wh7I70.jpeg](https://file.elecfans.com/web2/M00/76/7B/poYBAGNgvZyAVc0mAABmDF6Wh7I70.jpeg)
設(shè)置董事會(huì)
首先確保我們擁有所有需要的庫(kù)。這是我們需要的所有庫(kù)的列表:
- WiFi妮娜
- 電報(bào)機(jī)器人
- ArduinoJson
- 電容式傳感器
您可以按照這個(gè)簡(jiǎn)單的指南輕松安裝它們。
為了使用 Telegram 的 API,我們首先需要在 MKR WiFi 1010 上上傳證書(shū)。這適用于大多數(shù)在線服務(wù)和 API!
從 WiFiNINA 庫(kù)上傳固件更新程序示例并將 api.telegram.org 添加到域。這些是要遵循的步驟:
- 運(yùn)行IDE;
- 上傳草圖`Example->WiFiNINA->tools->Firmware updater`
- 在工具中打開(kāi)`WiFi101/WiFiNINA 固件更新程序`
- 點(diǎn)擊“添加域”
- 單擊“將證書(shū)上傳到 WiFi 模塊”
- 上傳你的草圖`
讓魔法發(fā)生!
打開(kāi) TelegramBot 庫(kù)中的 EchoBot 示例,填寫(xiě)您的 WiFi 憑據(jù)和您從 BotFather 收到的 API 令牌并上傳!
> 示例 > TelegramBot > EchoBot
您剛剛創(chuàng)建了一個(gè)回顯所有消息的機(jī)器人。
EchoBot 和表情符號(hào)
表情符號(hào)無(wú)處不在!我們將用它們來(lái)傳遞我們的愛(ài)和擁抱。使用 EchoBot 示例是查看機(jī)器人如何讀取您的表情符號(hào)的簡(jiǎn)單方法。
![poYBAGNgvZ6AdEjsAABMESmIcmU662.png](https://file.elecfans.com/web2/M00/76/7B/poYBAGNgvZ6AdEjsAABMESmIcmU662.png)
不幸的是,機(jī)器人接收表情符號(hào)的方式與發(fā)送它們的方式不同。為了發(fā)送表情符號(hào),我們需要使用UNICODE字符。
例如,要發(fā)送一個(gè)心形表情符號(hào),我們將使用: \U00002764
您可以在此處查看unicode 表情符號(hào)代碼的完整列表。為了創(chuàng)建一個(gè)用另一個(gè)心臟表情符號(hào)回復(fù)心臟表情符號(hào)的機(jī)器人,我們將使用如下代碼:
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
}
}
}
結(jié)果將是:
![pYYBAGNgvaCAczESAABIHvC7i7Y756.png](https://file.elecfans.com/web2/M00/77/0E/pYYBAGNgvaCAczESAABIHvC7i7Y756.png)
電容式傳感器
Telegram 夠了,讓我們開(kāi)始構(gòu)建我們的 DIY 電容式傳感器吧!
CapacitiveSensor庫(kù)將兩個(gè)或多個(gè) Arduino 引腳變成一個(gè)電容傳感器,可以感應(yīng)人體的電容。
傳感器設(shè)置所需的只是一個(gè)中值到高值的電阻器和一塊鋁箔。
在最敏感的情況下,傳感器將開(kāi)始感應(yīng)距離傳感器幾英寸的手或身體,并通過(guò)不同種類(lèi)的材料。我們將把傳感器藏在枕頭里!
上傳示例草圖,連接電線并在控制臺(tái)上查看結(jié)果:
#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
}
接線和結(jié)果
![poYBAGNgvayAOnWkAAEHK4bvptY190.jpg](https://file.elecfans.com/web2/M00/76/7B/poYBAGNgvayAOnWkAAEHK4bvptY190.jpg)
我們將sensor_value
用作檢測(cè)擁抱的閾值!
心跳
擁抱的時(shí)間越長(zhǎng),聽(tīng)到的心跳聲就越多。心跳越多,您發(fā)送的愛(ài)就越多(以及不同的表情符號(hào))。
我們將使用蜂鳴器和幾行簡(jiǎn)單的代碼來(lái)模擬心跳的聲音。
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);
}
要更復(fù)雜地使用蜂鳴器和音調(diào)功能,請(qǐng)查看下拉菜單示例并查找 Digital > ToneMelody
#ProTip:聊天 ID 和群聊
為了發(fā)送消息,機(jī)器人需要一個(gè)聊天 ID。聊天 id 是某人和機(jī)器人之間聊天的唯一標(biāo)識(shí)符。為了讓機(jī)器人向特定的人發(fā)送消息,您首先需要該人向機(jī)器人發(fā)送短信并保存該特定聊天的聊天 ID。
在這個(gè)項(xiàng)目中,機(jī)器人只會(huì)回復(fù)最后一個(gè)發(fā)短信的人,不管那是誰(shuí)。
機(jī)器人是公開(kāi)的,每個(gè)人都可以給機(jī)器人發(fā)短信!
如果您想將機(jī)器人包含在群聊中,您需要禁用隱私模式以允許機(jī)器人閱讀所有消息,否則它將只能檢測(cè)以開(kāi)頭的命令/:
![pYYBAGNgva6Af_YrAABo4r-NVok639.png](https://file.elecfans.com/web2/M00/77/0E/pYYBAGNgva6Af_YrAABo4r-NVok639.png)
#ProTip:WiFi 最佳實(shí)踐
WiFi 可能很棘手。有時(shí)它只是關(guān)閉幾秒鐘,顯然沒(méi)有任何理由。這對(duì)您的 Arduino 來(lái)說(shuō)可能是個(gè)問(wèn)題,因?yàn)榇蠖鄶?shù)時(shí)候我們只在草圖的開(kāi)頭運(yùn)行 WiFi 連接功能。
在線服務(wù)也可能很棘手,當(dāng) Arduino 向服務(wù)器(在本例中為 Telegram)發(fā)送請(qǐng)求時(shí),它會(huì)等待回復(fù)。由于數(shù)百個(gè)原因,回復(fù)可能無(wú)法到達(dá),使 Arduino 處于無(wú)限循環(huán)中。
為了讓你的項(xiàng)目更穩(wěn)定,你可以添加一個(gè)看門(mén)狗。看門(mén)狗是一個(gè)必須定期更新的計(jì)時(shí)器,否則它將重新啟動(dòng)電路板。
您可以使用這兩個(gè)庫(kù)向您的項(xiàng)目添加看門(mén)狗:
- Adafruit ASF Core // 必須從 Github 手動(dòng)下載和安裝
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通過(guò)WiFi進(jìn)行HID攻擊
- MKR1000 Pushover狀態(tài)開(kāi)源
- MKR FOX 1200運(yùn)動(dòng)觸發(fā)器開(kāi)源分享
- 帶MKR WiFi 1010的書(shū)呆子
- 使用Arduino Mkr Wifi 1010和Thincloud構(gòu)建連接燈的過(guò)程
- 帶有Arduino MKR1010和MKR RGB Shield的Otto Biped
- 將MQTT協(xié)議物聯(lián)網(wǎng)與Arduino MKR1010 WiFi結(jié)合使用
- Arduino MKR GSM 1400和DTMF開(kāi)源
- 帶有MKR WiFi 1010的植物通訊器
- 使用Grove Sensor的Arduino MKR1010和阿里云IoT
- 基于ITM-MKR680Temperature Sensing的參考設(shè)計(jì)
- WIFI智能開(kāi)源電熱水器的原理圖和源代碼免費(fèi)下載 47次下載
- 愛(ài)你愛(ài)你愛(ài)到底歌詞
- 愛(ài)你愛(ài)到底mp3下載
- 前沿開(kāi)源技術(shù)領(lǐng)域的開(kāi)源大數(shù)據(jù)一一解讀 1180次閱讀
- WiFi 6與WiFi 5到底有什么區(qū)別 7.1w次閱讀
- 什么是wifi6,與wifi2.4g和wifi5g有什么區(qū)別 5.6w次閱讀
- MKR Vidor 4000一款拇指型的FPGA開(kāi)發(fā)板 1243次閱讀
- 什么是2.4G WIFI 什么是5G WiFi 3.7w次閱讀
- Redis簡(jiǎn)單案例:網(wǎng)站搜索的熱搜詞 2985次閱讀
- 簡(jiǎn)評(píng)FPGA——Arduino MKR Vidor 4000 6977次閱讀
- 細(xì)說(shuō)WiFi信號(hào)與路由器和WiFi模塊的關(guān)系 1.3w次閱讀
- wifi探針技術(shù)的應(yīng)用領(lǐng)域_公安局wifi探針用途 2.3w次閱讀
- wifi探針是什么_wifi探針的工作原理詳解 4.6w次閱讀
- wifi模塊異常是怎么回事_wifi模塊異常怎樣解決 7w次閱讀
- 手機(jī)wifi模塊在哪里_手機(jī)wifi模塊位置圖解 14.1w次閱讀
- 雙頻wifi是什么意思_雙頻wifi的優(yōu)點(diǎn) 2.8w次閱讀
- 高通雙通路WiFi技術(shù)幫你解決家庭WiFi信號(hào)差的問(wèn)題 4321次閱讀
- WiFi信號(hào)是怎樣傳播的? 1.2w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論