×

使用TTGO ESP32和Visuino获得比特币价格

消耗积分:0 | 格式:zip | 大小:0.01 MB | 2023-06-30

分享资料个

描述

在本教程中,我们将学习如何使用 TTGO ESP32 和 Visuino 获得美元和欧元的当前比特币价格。

第 1 步:您需要什么

第 2 步:启动 Visuino,并选择 Arduino TTGO T-Display ESP32 Board Type

 
 
 
poYBAGN-28GAUDKlAADiYLrjRu0704.jpg
 
1 / 2
 

Visuino:需要安装https://www.visuino.eu 。启动Visuino,如第一图所示点击Visuino中Arduino组件(图1)上的“工具”按钮出现对话框时,选择“TTGO T-Display ESP32”,如图2所示

第 3 步:在 Visuino 中设置 WiFi

 
 
 
pYYBAGN-28OAf9FGAAAvuA2c4RM015.jpg
 
1 / 6
 

选择 TTGO T-Display ESP32 board 并在属性窗口中展开“Modules>WiFi>Connect To Access Points

单击连接到接入点 3 点

  • 在 AccessPoints 窗口中,将“WiFi Access Point”拖到左侧
  • 在属性窗口中设置SSID(您的 WiFi 热点或路由器的名称)
  • 在属性窗口中设置密码(您的 WiFi 热点或路由器的密码)
  • 关闭接入点窗口

选择 TTGO T-Display ESP32 board 并在属性窗口中展开“Modules>WiFi>Sockets

单击 Sockets3 Dots 在 Sockets 窗口中将 TCP/IP Secure Client (SSL) 拖到左侧

  • 在属性窗口中将主机设置为:blockchain.info
  • 关闭套接字窗口

第 4 步:在 Visuino 设置显示中

 
 
 
poYBAGN-28aAS9pPAABAgrsLLCI501.jpg
 
1 / 9
 

选择 TTGO T-Display ESP32 board 并在属性窗口中展开“Modules>Display>Orientation

将方向设置为:goRight

选择 TTGO T-Display ESP32 board 并在属性窗口中展开“Modules>Display>Elements

单击元素 3 点

在 Elements 窗口中,将 Draw Bitmap 拖到左侧

在属性窗口中将 Y 设置为 20,单击位图 3 Dots

在位图编辑器中加载比特币位图(图 6)并关闭位图编辑器

在 Elements 窗口中,将 Draw Text 拖到左侧

在属性窗口中将颜色设置为 aclOrange,大小设置为 2,文本设置为 USD,X 设置为 150,Y 设置为 10

在 Elements 窗口中,将 Text Field 拖到左侧

在属性窗口中设置 size 为 3,X 为 100,Y 为 35

在 Elements 窗口中,将 Draw Text 拖到左侧

在属性窗口中将颜色设置为 aclOrange,大小设置为 2,文本设置为 EUR,X 设置为 150,Y 设置为 80

在 Elements 窗口中将 Text Field 拖到左侧在属性窗口中设置 size 为 3,X 为 100,Y 为 105

关闭元素窗口

第 5 步:在 Visuino 中添加组件

 
 
 
pYYBAGN-28iAOv4gAAApSL2tnm8707.jpg
 
1 / 11
 

选择并在属性窗口中将 Host 设置为 api.coindesk.com 点击 Requests 3 Dots

  • 添加“HTTP客户端”组件
  • 在请求窗口中,将“GET”拖到左侧
  • 在属性窗口中将 URL 设置为:/v1/bpi/currentprice.json
  • 关闭请求窗口
  • 添加“HTTP Client”组件“Char To Text”组件
  • 选择“CharToText1”并在属性窗口中将 Max Length 设置为 2000
  • 添加“时钟发生器”组件
  • 选择“ClockGenerator1”并在属性窗口中将频率设置为 0.1
  • 添加“延迟”组件
  • 选择“Delay1”并在属性窗口中将 Interval 设置为 2000000
  • 添加“拆分 JSON 对象”组件

第 6 步:在 Visuino 中解析 JSON

 
 
 
pYYBAGN-28yAZzKJAAAnC9yw9PE760.jpg
 
1 / 2
 
  • 用鼠标右键单击“SplitJSON1”并在菜单中单击“Parse JSON Object..”
  • 在“JSON 对象”窗口中粘贴此示例代码(可在https://www.coindesk.com/coindesk-api上找到:

{"time":{"updated":"Sep 18, 2013 17:27:00 UTC","updatedISO":"2013-09-18T17:27:00+00:00"},"disclaimer":"This data was produced from the CoinDesk Bitcoin Price Index. Non-USD currency data converted using hourly conversion rate from openexchangerates.org","bpi":{"USD":{"code":"USD","symbol":"$","rate":"126.5235","description":"United States Dollar","rate_float":126.5235},"GBP":{"code":"GBP","symbol":"£","rate":"79.2495","description":"British Pound Sterling","rate_float":79.2495},"EUR":{"code":"EUR","symbol":"€","rate":"94.7398","description":"Euro","rate_float":94.7398}}}

  • Close the "JSON Object" window
  • "SplitJSON1" component will now create new pins

Step 7: In Visuino Connecting Components

 
 
 
poYBAGN-28-AM2IdAAFfmdgu4TE122.png
 
1 / 3
 
  • Connect "ClockGenerator1" pin Out to "HTTPClient1" pin Clock and "Delay1" pin Start
  • Connect "HTTPClient1" pin Content to "CharToText1" pin In
  • Connect "HTTPClient1" pin to TTGO T-Display ESP32 > WiFi>TCP Secure Client1 pin In
  • Connect "Delay1" pin Out to "CharToText1" pin Clock and TTGO T-Display ESP32 > WiFi>TCP Secure Client1 pin Disconnect
  • Connect "CharToText1" pin Out to "SplitJSON1" pin In
  • Connect "SplitJSON1>USD>rate_float to TTGO T-Display ESP32>Text Field1 pin In
  • Connect "SplitJSON1>EUR>rate_float to TTGO T-Display ESP32>Text Field1 pin In

Note: you can also play with the other pins from "SplitJSON1" component

Step 8: Generate, Compile, and Upload the Code

pYYBAGN-29KASwMkAAH8xCg5814027.jpg
 

In Visuino, at the bottom click on the "Build" Tab, make sure the correct port is selected, then click on the "Compile/Build and Upload" button.

Step 9: Play

If you power the TTGO ESP32 module it will connect to the network and display the current Bitcoin price in USD and EUR

Congratulations! You have completed your project with Visuino. Also attached is the Visuino project, that I created for this tutorial, you can download it and open it in Visuino: https://www.visuino.eu


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

评论(0)
发评论

下载排行榜

全部0条评论

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

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/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:'使用TTGO ESP32和Visuino获得比特币价格',//标题 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:"//www.obk20.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);