LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > [Chainlink] 使用Chainlink价格供稿将自动售货机转换为接受加密货币付款

[Chainlink] 使用Chainlink价格供稿将自动售货机转换为接受加密货币付款

2021-02-11 wanbizu AI 来源:区块链网络

升级自动售货机以接受加密货币需要什么?

对于允许人们以其选择的货币(包括加密货币)进行交易的自动化现实世界系统,这些外部系统需要能够与区块链进行对话并交换对两种环境都有意义的交易逻辑。 Chainlink oracle是这些系统之间的桥梁,旨在将外部输入安全地连接到智能合约。

作为这种现实世界连接的一个很好的例子,Chainlink虚拟黑客马拉松的获奖者之一,开发商Ted Nivan,使用Chainlink外部适配器将模拟的水果自动售货机连接到Chainlink ETH / USD价格Feed甲骨文,因此可以接受ETH。作为购买单份水果的货币。 在这篇文章中,Ted解释了他是如何构建的。

泰德·尼文(Ted Nivan)

水果市场是一个开放的概念证明,旨在尝试一种使用加密货币购买自动售货机的新方法。 使用水果市场,用户将可以在没有收银员的情况下在手机钱包上使用区块链技术购买自动售货机。 具体来说,本教程将通过参考Chainlink ETH / USD价格Feed以公平的市场价格为产品定价,向开发人员展示将自动售货机转换为将ETH用作货币的步骤。

您将学到什么:

如何整合Chainlink ETH / USD价格Feed甲骨文 如何将硬件设备连接到Web

开发人员先决条件

此dApp需要软件和硬件组件。

软件:

Infura:用于连接以太坊网络。 作为开发人员,您需要一个Infura密钥。 Web3JS:前端用于与以太坊网络进行交互。 WebUSB:用于通过Web与硬件设备对话。 Arduino IDE:用于刷新设备的固件。

硬件:

需要服务器或便携式计算机作为主机。 Arduino Nano 33 IoT:用作模拟自动售货机的硬件设备。 Arduino开发板易于使用和编程,是硬件开发板的流行选择。

技术概述

本教程将引导开发人员逐步完成GitHub存储库中的步骤,您可以在开始之前熟悉它们。 为Chainlink虚拟黑客马拉松提交的视频也是了解组件如何协同工作的好地方。

水果市场的概念系统逻辑图证明

从左侧开始,我们在以太坊上运行的应用程序使用Chainlink ETH / USD价格供稿。 我们将使用此价格Feed将水果的美元价格转换为以太(ETH)。 付款成功后,dApp会从主机(计算机)向设备(Arduino开发板)发送信号以获取水果。 假设我们没有物理自动售货机,我们将通过打开LED确认水果交付来模拟这种行为。

设置项目

在这里,我们将看到如何在本地运行该应用程序。

克隆水果市场存储库。

git clone https://github.com/TedNIVAN/fruity-market.git

2.初始化项目。

cd水果市场npm i

3.在src / .env_sample中设置您的Infura API密钥

4.将src / .env_sample重命名为src / .env

5.构建项目。

npm run dev

该应用程序应在以下位置运行:http:// localhost:1234

刷新Arduino固件

一旦我们运行了应用程序,下一步就是安装Arduino IDE,然后刷新Arduino固件。 必须执行此操作以启用设备与应用程序之间的通信,并解释传输的数据。

此步骤所需的Arduino固件可在此处找到。

该代码执行以下任务:

它仅授权设备通过HTTPS与应用程序页面tednivan.github.io/fruity-market/app通信。 请注意,如果通讯在本地(http:// localhost:1234 /)运行,它也将起作用。 它建立串行通信。 它等待字符H切换LED。
该代码在Arduino NANO 33 IoT上运行,但大多数Arduino板均支持该代码。 请在此处查看支持的板的完整列表。

#include / ** *创建WebUSBSerial实例将向*标记为特定于供应商(而不是USB CDC-ACM)的设备添加一个额外的USB接口,因此浏览器可以访问*。 * *此处的URL向浏览器提示用户*应该导航到哪个页面才能与设备进行交互。 * / WebUSB WebUSBSerial(1 / * https:// * /,“ tednivan.github.io/fruity-market/app”); #define串行WebUSBSerial const int ledPin = 13; void setup(){while(!Serial){; } Serial.begin(9600); Serial.write(“ Sketch starts.rn>”); Serial.flush(); pinMode(ledPin,输出); } void loop(){if(Serial && Serial.available()){int byte = Serial.read(); Serial.write(byte); 如果(字节==’H’){Serial.write(“ rn打开LED。”); digitalWrite(ledPin,HIGH); delay(2000); Serial.write(“ rn关闭LED。”); digitalWrite(ledPin,LOW); delay(2000); } Serial.write(“ rn>”); Serial.flush(); }}

这些是刷新固件所需的步骤:

使用USB电缆将Arduino连接到您的PC或用于主机的任何设备。 打开Arduino软件(IDE)。 选择对应的端口和板。 打开从项目的GitHub存储库中获取的fruity-market.ino草图。 上载草图。
如果您不熟悉Arduino,请查阅本指南。

深入探讨智能合约

该项目的下一部分是智能合约。 智能合约负责获取以太坊价格Feed(getLatestPrice功能),并在收到付款后触发事件(已收到事件)。 然后在客户端进行付款处理。

语用强度^ 0.6.7; 导入“ https://github.com/smartcontractkit/chainlink/blob/master/evm-contracts/src/v0.6/interfaces/AggregatorV3Interface.sol”; 合同FruityMarket {AggregatorV3Interface内部价格Feed; / ** *网络:Kovan *聚合器:ETH / USD *地址:0x9326BFA02ADD2366b30bacB125260Af641031331 * / constructor()public {priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331); } / ** *在接收时发送事件* /事件已接收(地址,uint); receive()外部应付款{发出Received(msg.sender,msg.value); } / ** *返回最新价格* /函数getLatestPrice()公开视图返回(int){(uint80 roundID,int价格,uintstartedAt,uint timeStamp,uint80 AnswerInRound)= priceFeed.latestRoundData(); //如果回合尚未完成,则时间戳为0 require(timeStamp> 0,“回合未完成”); 退货价格 }}

该智能合约必须部署到以太坊网络,然后生成的合约的地址应存储在前端Web应用程序使用的web3entry.js文件中的addr参数中。 这个JavaScript文件在我们正在部署的前端和链上合同之间建立连接。 您可以通过Remix轻松部署智能合约。

现在,我们可以测试最终的水果市场PoC。

测试最终的水果市场PoC

如果您在本地部署应用程序,请打开本地部署的应用程序。 否则,您可以使用我们已经部署的版本。

水果市场应用启动屏幕

首先,单击“启动应用程序”按钮。

模拟水果自动贩卖机。

单击“连接设备”按钮以连接到Arduino板。

查找程序将找到相关的可用硬件。

选择“ Arduino NANO 33 IoT”板,然后按“ Connect”按钮。

水果市场启动屏幕将指示是否已连接硬件。

如果成功建立连接,右上角的绿色按钮将变为“ Disconnect Device”。 如果是这样,您现在可以采摘水果。

使用以太坊Kovan测试网络的付款屏幕。

使用Kovan网络使用任何以太坊钱包付款,方法是扫描QR码并输入所需的ETH金额(这将取决于当前的ETH / USD价格)。

付款确认成功屏幕。

付款成功后,将显示此页面。 Arduino板上的LED也会在短时间内打开,以模拟水果的输送。

失败的交易屏幕。

如果客户发送的金额低于水果的价格,则付款将被拒绝。

水果市场的下一步是什么

Fruity Market的下一步是改进智能合约逻辑,以在用户支付的金额超过所需金额时处理付款。 接下来的其他步骤包括集成硬件,该硬件使用带有触摸屏的Raspberry Pi 4来复制更逼真的自动售货机用户体验。

随着硬件和智能合约逻辑与当前企业自动售货机功能更加紧密地结合在一起,添加额外的付款选项,例如Chainlink Price Feeds支持的ERC-20稳定币(如DAI或USDC)将增强体验并突出加密货币作为支付的互操作性系统。

开始使用Chainlink价格供稿构建

如果您是致力于将Arduino或其他硬件连接到区块链的开发人员,请加入充满活力的Chainlink社区以获得支持和协作。 在此处访问或访问开发人员文档,您还可以订阅Chainlink时事通讯,以随时了解Chainlink堆栈中的所有内容。

如果您在这里学到了新东西,想炫耀自己构建的内容,或者为一些演示仓库开发前端,请确保在Twitter,Discord或Reddit上共享它,并使用#chainlink对您的仓库进行标签标记。

网站| 推特| 不和谐| Reddit | YouTube | 电报| 大事记 GitHub | 价格提要| DeFi

>>在链节上查看

加入我们的电报

在推特上关注我们

在Facebook上关注我们

帖子 [Chainlink] 使用Chainlink价格供稿将自动售货机转换为接受加密货币付款AZCoin News上首次出现。

—-

原文链接:https://azcoinnews.com/chainlink-convert-a-vending-machine-to-accept-cryptocurrency-payments-using-chainlink-price-feeds.html

原文作者:Chainlink News

编译者/作者:wanbizu AI

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...