从ESP8266向手机发送通知

91297年

320

53.

简介:从esp8266向手机发送通知

关于:嘿大家!我的名字是Brian,谢谢你检查我的赋予奖。我是一位通过交易的软件开发人员,但我最近发现了ASP8266芯片后的Arduino开发,一个WiFi启用......

大家好!

在这种指示中,我将向您展示如何在与Arduino IDE进行编程时从ESP8266向您的手机发送通知。

如果希望设备在触发传感器(PIR运动传感器)或满足传感器的某些标准时,这可以非常有用(例如,在一定温度以下)。

我将向您展示两种方法来使用Telegram Messenger和IFTTT来执行此操作。这两种方法都是完全可以使用的。

查看视频,看看它的行动,并快速通过我将通过这个指导表。演示的代码和电路在我的github上

第一步:设置电报

电报是一个即时消息,非常喜欢whatsapp。

它过度的一个优点是它允许您创建机器人,这是您可以在聊天应用程序中交互的程序。

我们将使用通用Arduino Tellgram库可在Arduino Library Manager上提供,向我们发送电报消息。该图书馆支持ESP8266和WiFi-101板。(电报需要SSL,因此以太网屏蔽和较旧的WiFi屏蔽不起作用。)

要使用图书馆,所以要获得的第一件事是一个机器人令牌,可以获得这个内部电报搜索“吐豆“并输入”/ newbot.“命令。然后按照屏幕上的说明来命名机器人。Botfather会返回你将与图书馆一起使用的机器人令牌。

如果您首次首次启动与机器人的对话,那么机器人只能向您发送消息,因此请单击Botfather发送并单击“的消息中的BOT链接。开始”按钮

因此,机器人知道在哪里发送消息,您需要将聊天id添加到草图中,这是您在电报上的唯一标识符。获取此信息的最简单方法是搜索一个名为“myidbot.,按下开始按钮,发送/ getid“ 命令。

您现在应该拥有使用电报进行通知所需的一切。

步骤2:设置IFTTT

请注意:由于我写了这本指南,IFTTT已经将Maker频道的名称更新为“Webhook”,它的工作原理应该与以前完全相同!

ifttt(如果这则)是一个服务,允许您根据触发器执行操作,例如,如果您收到具有某个标题的电子邮件,请发送Tweet。

对我们这些ESP8266爱好者来说幸运的是,直接从ESP8266触发事件非常简单。我们将使用Arduino IFTTT制造商库也可在Arduino Library manager上找到。它支持与电报库(ESP8266和Wifi-101)相同的板,还需要SSL(因此无以太网屏蔽)。

要使用此库,我们需要做的第一件事是在ifttt上创建一个“配方”。

“this”部分或触发器应该配置为制造商”的服务。给触发器一个名称(我在视频中使用了“button_pressed”),你将在使用库时需要这个名称。

然后,您需要配置IFTTT的“该”一部分。在视频中我使用“通知“事件(这需要手机上的ifttt应用程序),但您可以选择您想要的任何内容(电子邮件,推特,即使是您的Phillips Hue LightBulb!)。您将在库中看到您可以传递3个参数,这些可以是在创建配方发送给您的消息时使用。

最后,你需要从你的账户中获取Maker密钥。点击IFTTT网站右上角的你的账户,然后点击"服务“。 点击 ”制造商“然后”设置“。制造商键是URL末尾的字符(在照片中的红色框中)。

第三步:测试

您现在应该能够从中运行该示例这个github页面.电路和零件列表位于自述文件中。

在草图中,只需填写:

  • 电报机器人令牌
  • 电报聊天ID
  • IFTTT制造商的关键
  • IFTTT事件名

这两个库都需要安装ArduinoJson库,因此请确保也从库管理器获取该库。

希望你觉得这很有用!如果您有任何疑问,请告诉我。

布莱恩

微控制器竞赛2017年

参加了
微控制器竞赛2017年

4人制作了这个项目!

建议

  • Pi日速度挑战

    Pi日速度挑战
  • 垃圾到宝藏竞赛

    垃圾到宝藏竞赛
  • 微控制器比赛

    微控制器比赛

53评论

0
dfiddle.

3年前

这是很棒的工作。我用它作为多个项目的核心。谢谢!!

0
robomaniac

4年前

家伙如此甜蜜! !我在几分钟内就启动了!!该死的简单!

使用ifttt,我发送电子邮件,通知和将数据发送到Google电子表格!

我正在将这个添加到我的车间的机器中,这样我就可以将使用数据发送到电子表格中,我将做一些图表,并了解何时需要做维护!

非常感谢! !

0
WitnessMenow.

4年前回复

嘿,这听起来很棒!

非常好的想法是将它记录到谷歌表,我之前想过是否可以使用谷歌api来做它,但我还没有研究。

非常感谢你的评论,非常感谢。看到人们使用我做的东西,感觉很棒!

0
robomaniac

4年前回复

你可以调查一下。
https://www.pushsafer.com/

这是一项服务,可让您自定义通知,您可以告诉您想要的电机衰减量,播放的声音是什么,它有很多潜力。它是免费的,每月推送x。

它基本上是PHP请求,我试了又试,试图让它在ESP8266上工作,但没有运气。这和HTTPS有关,在arduino上是不可能的,但是Kevin (pushsafer后面的家伙)改变了他的立场,同时做HTTP和HTTPS。

我的线索在这里
http://www.appzer.de/forum/viewtopic.php?f=24&t=2729&sid=69465c80f2d333f8882a162d7b77483c

我让它工作,我会检查你的指示:p

0
WitnessMenow.

4年前回复

昨晚我看了看看。我没有太多透过你的链接,但只是直接到推送者网站

ESP8266可以使用https,这个指令表中的两个库都可以使用https连接到它们的端点。

我花了一些时间让一个图书馆与推送方式交谈,但我还没有工作,但它应该关闭!(已经迟到了,我需要上床睡觉!)

https://github.com/witnessmenow/pushsafer-arduino-...

我今晚要花几分钟看看能不能修好。需要稍微整理一下,但是示例尝试使用配置的输入发出一个请求来推送safer

他们在他们的网站上有Arduino的示例,但它甚至没有编译(例如,在int上调用length()),所以我认为基于其示例的代码有很大的价值。

0
robomaniac

4年前回复

嘿!

我试过了,你的代码不管用。我在github上提出了一个问题。

关于没有编译的代码(尝试调用length())是我在论坛上发布的。我会继续查看github。

0
WitnessMenow.

4年前回复

嘿,我仔细研究了你。

ESP8266可以进行HTTPS,这两个图书馆都使用它。

这是我创建的一个图书馆与pushsafer工作

https://github.com/witnessmenow/pushsafer-arduino-...

它确实有效,它可以发送通知确定,但由于某种原因,响应没有收到esp8266,不太确定是什么问题(也许我不等待它,推送似乎并不迅速当我用卷曲进行测试时,回应电报)。

Pushsafers Arduino的例子在他们的网站上试图在int上使用length()方法,所以我认为他们测试得不是很好:)

0
Coxinha.

11个月前

在所有示例中,我可以看到该机器人被声明为全局变量。这需要Botton ove在启动顺序中非常早。

我在EEPROM中存储瓶子,并希望在设置期间定义机器人,同时保持其全球范围。

是可能的吗?(如果你需要密码就告诉我)

0
Claudeg21.

问题11个月前介绍

恭喜!但是,如果你只是想用电报机器人,我应该使用什么部分程序。我试图用ifttt删除零件,编译成功。但它不起作用。帮我?谢谢

0
youjian

问题1年前

有人可以告诉我如何解决这个错误吗?先感谢您。





Arduino: 1.8.11 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80mhz, Flash, Legacy(新的可以返回nullptr),所有SSL密码(最兼容),4MB (FS:2MB OTA:~1019KB), 2, v2低内存,禁用,无,仅Sketch, 115200"
C:\用户\忍者\ OneDrive \文档\ Arduino的\库\ UniversalArduinoTelegramBot的\ src \ UniversalTelegramBot.cpp:319:11:错误:DynamicJsonBuffer是ArduinoJson 5类请参阅arduinojson.org/upgrade了解如何将程序升级到ArduinoJson版本6
DynamicjsonBuffer jsonBuffer;

C:\ users \ ninja \ onedrive \ documents \ arduino \ libraries \ henimentarduinotelegrambot \ src \ Universaltelegrambot.cpp:369:11:错误:动态jsonbuffer是arduinojson 5.请看arduinojson.org/upgrade了解如何将程序升级到ArduinoJson版本6
DynamicjsonBuffer jsonBuffer;

c:\ ubers \ ninja \ onedrive \ documents \ arduino \ libraries \ henimentarduinotelegrambot \ src \ universaltelegrambot.cpp:530:11:错误:动态jsonbuffer是来自Arduinojson 5.请看arduinojson.org/upgrade了解如何将程序升级到ArduinoJson版本6
DynamicjsonBuffer jsonBuffer;

c:\ users \ ninja \ onedrive \ document \ arduino \ libraries \ henimentarduinotelegrambot \ src \ universaltelegrambot.cpp:547:11:错误:动态jsonbuffer是arduinojson 5.请看arduinojson.org/upgrade了解如何将程序升级到ArduinoJson版本6
DynamicjsonBuffer jsonBuffer;

C:\用户\忍者\ OneDrive \文档\ Arduino的\库\ UniversalArduinoTelegramBot的\ src \ UniversalTelegramBot.cpp:564:11:错误:DynamicJsonBuffer是ArduinoJson 5类请参阅arduinojson.org/upgrade了解如何将程序升级到ArduinoJson版本6
DynamicJsonBuffer keyboardBuffer;

c:\ users \忍者\ ondrive \ document \ arduino\ libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:589:11:错误:DynamicJsonBuffer是ArduinoJson的一个类。请参阅arduinojson.org/upgrade了解如何将程序升级到ArduinoJson版本6
DynamicjsonBuffer jsonBuffer;

C:\ ubers \ ninja \ onedrive \ documents \ arduino \ libraries \ uliferarduinotelegrambot \ src \ Universaltelegrambot.cpp:601:11:错误:动态jsonbuffer是来自Arduinojson 5.请看arduinojson.org/upgrade了解如何将程序升级到ArduinoJson版本6
DynamicJsonBuffer keyboardBuffer;

c:\ users \忍者\ ondrive \ document \ arduino\ libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp: 664:11:错误:DynamicJsonBuffer是来自ArduinoJson的一个类。请参阅arduinojson.org/upgrade了解如何将程序升级到ArduinoJson版本6
DynamicjsonBuffer jsonBuffer;

c:\ users \忍者\ ondrive \ document \ arduino\ libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:705:11:错误:DynamicJsonBuffer是ArduinoJson的一个类。请参阅arduinojson.org/upgrade了解如何将程序升级到ArduinoJson版本6
DynamicJsonBuffer keyboardBuffer;

C:\Users\ninja\OneDrive\Documents\Arduino\libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:在成员函数“String UniversalTelegramBot::sendposttotelgram(String,ArduinoJson::JsonObject&)”中:
C:\Users\ninja\OneDrive\Documents\Arduino\libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:120:26:错误:“ArduinoJson::JsonObject”没有名为“measureLength”的成员
int length = payload.measureLength();

C:\ users \ ninja \ onedrive \ document \ arduino \ libraries \ henimentarduinotelegrambot \ src \ Universaltelegrambot.cpp:128:13:错误:'arduinojson :: jsonobject'没有成员名为'printto'
payload.printto(Out);

c:\ users \忍者\ ondrive \ document \ arduino\ libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:在成员函数中'bool UniversalTelegramBot::getMe()':
c:\ users \忍者\ ondrive \ document \ arduino\ libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp: 317:21: error: 'jsonBuffer'在此范围内未声明
DynamicjsonBuffer jsonBuffer;

c:\ users \忍者\ ondrive \ document \ arduino\ library \UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp: 24:12: error: 'ArduinoJson::JsonObject'没有名为success的成员
if(root.success()){

C:\ Users \ Ninja \ OnedRive \ Documents \ Arduino \ Libraries \ UniversardUinotelegrambot \ SRC \ UniversaltelegramBoot.cpp:在成员函数'int Universaltelegrambot :: getupdates(long int)':
C:\ users \ ninja \ onedrive \ documents \ arduino \ libraries \ henimentarduinotelegrambot \ src \ Universaltelegrambot.cpp:369:23:错误:'JSONBUFFER'未在此范围内宣布
DynamicjsonBuffer jsonBuffer;

c:\ users \忍者\ ondrive \ document \ arduino\ library \UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:372:14:错误:“ArduinoJson::JsonObject”没有名为“success”的成员
if(root.success()){

C:\Users\ninja\OneDrive\Documents\Arduino\libraries\ UniversalArduinoTelegramBot \ src \ UniversalTelegramBot.cpp: 382:50:错误:从ArduinoJson6141_0000010::ElementProxy >'类型的非const引用的无效初始化
JsonObject &result = root["result"][i];

c:\ users \忍者\ ondrive \ document \ arduino\ \libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:在成员函数中'bool UniversalTelegramBot::processResult(ArduinoJson::JsonObject&, int)':
C:\用户\忍者\ OneDrive \文件\ Arduino的\库\ UniversalArduinoTelegramBot \ SRC \ UniversalTelegramBot.cpp:431:45:错误:的类型的非const引用“ArduinoJson ::的JSONObject&无效初始化{又名ArduinoJson6141_0000010 :: ObjectRef&}'从类型的rvalue'arduinojson6141_0000010 :: enable_if >
jsonobject&消息=结果[“消息”];

C:\Users\ninja\OneDrive\Documents\Arduino\libraries\ UniversalArduinoTelegramBot \ src \ UniversalTelegramBot.cpp: 451:50:错误:无效初始化类型为“ArduinoJson::JsonObject& {aka ArduinoJson6141_0000010::ObjectRef&}”的非const引用,从类型为“ArduinoJson6141_0000010::enable_if >::type {aka ArduinoJson6141_0000010::MemberProxy}'
JsonObject &message = result["channel_post"];

C:\ ubers \ ninja \ onedrive \ documents \ arduino \ libraries \ henimentarduinotelegrambot \ src \ Universaltelegrambot.cpp:460:52:错误:无效的初始化'arduinojson :: jsonobject&{aka arduinojson6141_0000010 :: Objectref&}'从类型的rvalue'arduinojson6141_0000010 :: enable_if >
jsonobject&message =结果[“callback_query”];

C:\Users\ninja\OneDrive\Documents\Arduino\libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:472:52:错误:从'ArduinoJson 6141\u0000010::enable\u类型的右值初始化'ArduinoJson::JsonObject&}类型的非常量引用无效,如果::type{aka ArduinoJson6141_0000010::MemberProxy'
JsonObject &message = result["edited_message"];

c:\ users \忍者\ ondrive \ document \ arduino\ \libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:在成员函数'bool UniversalTelegramBot::sendMessage(String, String, String)'中:
c:\ users \忍者\ ondrive \ document \ arduino\ libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:530:21: error: 'jsonBuffer'在此范围内未声明
DynamicjsonBuffer jsonBuffer;

c:\ users \忍者\ ondrive \ document \ arduino\ \libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:在成员函数中'bool UniversalTelegramBot::sendMessageWithReplyKeyboard(String, String, String, String, bool, bool)': \ \用户\忍者\驱动器\文档\ arduinotelgrambot \ \
C:\ users \ ninja \ onedrive \ documents \ arduino \ libraries \ henimentarduinotelegrambot \ src \ Universaltelegrambot.cpp:547:21:错误:'jsonbuffer'在此范围内未声明
DynamicjsonBuffer jsonBuffer;

C:\ Users \ Ninja \ OnedRive \ Documents \ Arduino \ Libraries \ UniversardUinotelegrambot \ SRC \ UniversaltelegramBoT.cpp:557:70:错误:无效的初始化“arduinojson :: jsonobject&{aka arduinojson6141_0000010 :: objectref&}'从“arduinojson6141_0000010 :: Objectref”的rvalue
jsonobject&replymarkup = payload.createnestedObject(“Reply_markup”);

c:\ users \忍者\ ondrive \ document \ arduino\ libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:564:21: error: 'keyboardBuffer'在此范围内未声明
DynamicJsonBuffer keyboardBuffer;

c:\ users \忍者\ ondrive \ document \ arduino\ \libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:在成员函数中'bool UniversalTelegramBot::sendMessageWithInlineKeyboard(String, String, String, String)': \ \用户\忍者\驱动器\文档\ arduinotelgrambot \ \
C:\Users\ninja\OneDrive\Documents\Arduino\libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:589:21:错误:未在此作用域中声明“jsonBuffer”
DynamicjsonBuffer jsonBuffer;

c:\ users \忍者\ ondrive \ documents \ arduino\ \libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:599:70:错误:从类型为“ArduinoJson6141_0000010::ObjectRef”的左值的非const引用的无效初始化
jsonobject&replymarkup = payload.createnestedObject(“Reply_markup”);

c:\ users \忍者\ ondrive \ document \ arduino\ libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:601:21: error: 'keyboardBuffer'在此范围内未声明
DynamicJsonBuffer keyboardBuffer;

c:\ users \忍者\ ondrive \ documents \ arduino\ \libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:在成员函数'String UniversalTelegramBot::sendPhoto(String, String, String, bool, int, String)'中:\ \
c:\ users \忍者\ ondrive \ document \ arduino\ libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:684:21:错误:'jsonBuffer'在此范围内未声明
DynamicjsonBuffer jsonBuffer;

c:\ users \忍者\ ondrive \ documents \ arduino\ \libraries\UniversalArduinoTelegramBot\src\UniversalTelegramBot.cpp:703:72:错误:从类型为“ArduinoJson6141_0000010::ObjectRef”的左值的非const引用的无效初始化
jsonobject&replymarkup = payload.createnestedObject(“Reply_markup”);

C:\ Users \ ninja \ Onedrive \ Documents \ Arduino \ Libraries \ UniversardUinotelegrambot \ SRC \ UniversaltelegramBoT.cpp:705:23:错误:在此范围内未声明'键盘停止'
DynamicJsonBuffer keyboardBuffer;

为“UniversalTelegramBot.h”找到了多个库
使用:C:\ Users \ ninja \ Onedrive \ Documents \ Arduino \ Libraries \ UniversAdduinotelegrambot
不习惯:C:\Users\ninja\OneDrive\Documents\Arduino\libraries\ Universal-Arduino-Telegram-Bot-master
退出状态1
单板NodeMCU 1.0 (ESP-12E Module)编译错误。
这份报告将提供更多的信息
“在编译期间显示详细输出”
选项启用在文件->首选项。

0
borkodrvo.

答案1年前

尝试安装旧版本的ArduinoJson库。在“库管理器”中找到ArduinoJson库,点击它,在下拉菜单中出现“选择版本”。尝试选择5.13.5版本

0
diy_bloke.

问题1年前步骤1

也许我误解了这个部分,但是如何走一个(“你现在拥有你需要继续使用电报的一切))?
你的草图需要我理解的电报ID和IFTT令牌

0
hasanetakiwa

问题1年前

35/5000
我发现一个问题,为什么不连接WiFi?
0
JoseC19

答案1年前

我也有同样的问题....

0
Daddys_stare.

4年前

我不知道使用te​​lrgram。它想要做的第一件事就是接管和管理手机的呼叫和短信。在那里安全风险。

0
diy_bloke.

1年前的回复

许多应用程序都是这么做的。它这样做,以便它可以与你的手机互动,以工作。Viber和WhatsApp也是如此。Telegram是你安装的第一个应用程序吗?

0
WitnessMenow.

4年前回复

我已经安装了几年了不记得安装过程了。如果你说的是阅读短信的权限,我想这是用于验证的。我想什么应用程序有同样的权限。

IFTTT方法应允许您提出通知,而无需安装任何新的(例如,例如使用电子邮件),所以希望为您提供效果。

0
EPICS97.

1年前

我已经做了,但是发送通知不起作用。您使用的是哪个版本的库?

0
EPICS97.

1年前的回复

现在它的工作。您需要2.4.2版本的esp library

0
Samikshas3.

1年前的回复

非常感谢!
有没有办法让它在版本2.5中工作?