×

使用物联网的加密货币价格警报系统

消耗积分:0 | 格式:zip | 大小:0.03 MB | 2022-11-01

李麒铭

分享资料个

描述

介绍

物联网

物联网是物理设备、车辆、家用电器和其他嵌入电子、软件、传感器、执行器和网络连接的物品的网络,使这些对象能够连接和交换数据。

第一个物联网设备被认为是由 John Romkey 在 1990 年开发的烤面包机。但 iot 一词是由 Kevin Aston 在 1999 年给出的。

物联网于 2008 年正式诞生,当时连接到互联网的电子物品比人还多。人口达到 60 亿,而联网设备达到 120 亿。

加密货币

加密货币,有时称为加密货币或加密货币,是任何形式的以数字或虚拟方式存在并使用加密技术来保护交易的货币。加密货币没有中央发行或监管机构,而是使用去中心化系统来记录交易和发行新单位。

加密货币市场非常不稳定,一些代币的交易价格可能会在几分钟内经历突然飙升或下跌。结果,交易者在跟踪所有交易价格变动时面临困难,除非他们手动监控它们。因此,我们提出了一个实时警报系统来监控这些交易价格,如果有任何目标价格匹配或发生异常,则向用户发送通知。我们采用流媒体平台作为系统的支柱。

API

应用程序编程接口是计算机之间或计算机程序之间的连接。它是一种软件接口,为其他软件提供服务。描述如何构建或使用此类连接或接口的文档或标准称为 API 规范。

动机

正如我们从过去几年中看到的趋势一样,投资加密货币大肆宣传。因此,我们尝试使用物联网制作价格警报系统。自年初以来,单个比特币的价格飙升了 1000% 以上。我们已经看到价格总是在波动,人们等待投资的好时机。如今,当一切都变得数字化且易于访问时,为什么不拥有一个用户友好的界面,可以让您随时了解加密货币投资的价格。

该项目的主要目标是弥合全职加密投资者和初始加密货币投资者之间的差距。为了跟踪销售或购买硬币的好时机,我们计划使用 Bolt IoT 构建一个加密警报系统,该系统将通知个人有关加密价格的信息。

硬件连接:

我们使用面包板将蜂鸣器的正极引脚分别连接到模块的引脚 1,将 LED 分别连接到模块的引脚 0,负极引脚连接到 GND。

打开模块并将其连接到热点。

poYBAGNfLbGAQtsEAAB8EspPs0w016.png
 

 

软件组件:

Twilio:Twilio 是第三方 SMS 功能提供商。它是一家云通信平台即服务公司。Twilio 允许软件开发人员以编程方式拨打和接听电话,还可以使用其 Web 服务 API 发送和接收文本消息。

Ubuntu:Ubuntu 是基于 Debian 的 Linux 发行版,主要由免费和开源软件组成。Ubuntu 正式发布了三个版本:Desktop、Server 和 Core,用于物联网设备和机器人。所有版本都可以单独在计算机上运行,​​也可以在虚拟机中运行。

软件实现:

在下面的代码块中,我们导入了重要的文件,如 json 用于将 python 字典转换为 json 字符串,时间返回自 epoch 以来经过的秒数,conf 是包含私有 api 密钥和令牌的文件。

pYYBAGNfLbOAOku0AAAlEY-KxXA784.png
 

 

poYBAGNfLbWACpMBAABegVu9lnk923.png
 

现在要从 Bolt Cloud 中获取数据,我们将创建一个名为“bolt”的对象,您可以使用该对象访问 Bolt 上的数据。

为了让 Bolt Cloud 识别您的设备,您需要在创建 mybolt 对象时提供 API 密钥和设备 ID。由于 conf 文件包含 API 密钥和设备 ID 变量,您可以按如下方式使用它们

下面的代码将自动获取您在 conf.py 文件中初始化的 SID、ATOKEN、TO_NUM 和 FROM_NUM。确保您在 conf.py 文件中给出了正确的值。

pYYBAGNfLbeAXMCUAAAZI6sCzxw917.png
 

这输入了用户对比特币的需求。

pYYBAGNfLbmARNN3AAAi5DBPxQE292.png
 

下面是检查当前比特币市场价值并将对应的值返回给用户的函数定义。

poYBAGNfLb2AHIzpAAAsRy5Yvuw864.png
 

这是下面的主要代码块,其中包含函数 price_check 并检查用户输入的售价是否低于或高于当前比特币市场价值的条件,并在两种情况下向用户发出警报。

poYBAGNfLb-ABqsRAABv74k1YP0861.png
 

两种情况下都会生成消息,说明不同的原因,但当当前比特币市场价值低于所示售价时,LED 会发光,当当前比特币市场价值高于用户售价时,蜂鸣器会发出哔哔声。

结果:

 

pYYBAGNfLcGABIHFAACMfVQk-Cg219.png
 

在上图中,要求用户输入他/她想要投资的相应国家货币。

poYBAGNfLcOAVCpXAADi8j62GWQ583.png
 

在上面的输出窗口中输入售价后,他/她可以直接获得当前比特币市场价值,在将当前比特币市场价值与售价进行比较后,将输出消息和邮件发送给用户,输出也显示在面包板上。

以下是面包板上的输出:

poYBAGNfLciAPJpMAAHqPonl9mI018.png
 

以下是用户智能手机输入不同币种的不同售价值后的消息截图:

poYBAGNfLcyADrSaAAQC3J451VQ893.png
 

结论:

物联网是信息技术的虚拟世界与现实的事物世界相连接的概念。RFID、Sensor等物联网技术让我们的生活变得更美好、更舒适。

随着可交易数字资产数量的增加,交易者和持有者面临着试图跟踪其所有资产价格变动的挑战。他们不可能手动监控所有价格行为。为了解决这个问题,我们建立了一个智能价格警报系统,以满足他们的价格跟踪需求。我们的系统可以存储用户价格警报目标,并检索来自不同交易所的所有可用资产的实时交易价格。然后,只要价格低于或高于市场价值,它就会自动向所有用户的移动设备发送警报。测试结果表明,每条价格数据往返平均需要30秒;从将其发送到 Bolt 云、对其进行处理并将警报发送到用户的设备。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"//m.obk20.com/www/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'使用物联网的加密货币价格警报系统',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"https://www.elecfans.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);