使用IOTA整合物联网硬件

简介: 本教程面向iota初学者,我们将学习如何开发基于指定IOTA地址的余额来闭合或断开一个连接到树莓派上的继电器,点亮或熄灭LED。教程虽然简单,但足以展示IOTA的强大能力。我们将使用一个联网的树莓派作为物联网设备,使用Python来检查IOTA tangle上的余额,并使用树莓派的内部GIO管脚来切换所连接的继电器的闭合与断开。

本教程面向iota初学者,我们将学习如何开发基于指定IOTA地址的余额来闭合或断开一个连接到树莓派上的继电器,点亮或熄灭LED。教程虽然简单,但足以展示IOTA的强大能力。

我们将使用一个联网的树莓派作为物联网设备,使用Python来检查IOTA tangle上的余额,并使用树莓派的内部GIO管脚来切换所连接的继电器的闭合与断开。然后我们会将继电器连接到一个电池供电的简单LED电路,用来表示我们项目中的物理设备。

要快速掌握区块链和数字货币应用开发,推荐汇智网的区块链开发系列在线教程。 内容涵盖比特币、以太坊、EOS、超级账本、Tendermint等多种主流区块链 平台,同时支持Java、C#、Python、PHP、JavaScript、Dart等多种开发 语言。

元器件

先让我们看一下项目需要的元器件。你应当可以在大多数电子元器件商店或者淘宝上卖到这些元器件,不会超过350元。

树莓派

项目的大脑是树莓派。树莓派将运行用来监视IOTA地址的余额并处理树莓派的通用输入输出(GIO)管脚上的信号:

树莓派

继电器

继电器用来切换电路以及设备(我们这里就是LED)的开关。为了简化电路我们将使用一个继电器模块,它包含了所有必须的元器件、管脚和接插件。注意你也可以购买多通道继电器模块,只要每个通道可以单独开关即可。

面包板

面包板用来进行电路的连接而无需进行焊接,这使得装配过程更加简单。

面包板

发光二极管

当供电时LED会点亮,我们用它来表示项目中的物理设备(比如冰箱)。

led

300欧电阻

电阻用来限制通过LED的电流。没有电阻的话,LED和树莓派可能会因为
电流过大而损坏。要使用的电阻取决于你的LED以及电路电压。在我的
演示中,使用了9V电池,因此330欧姆的电阻应当就可以了。

电阻

电池

电池为电路提供能力。我的演示中使用的是9v电池。

电池

连接线

我们当然也需要一些电线将各个部件连接起来:

电线

二维码

如果你希望使用手机IOTA钱包来支付使用LED(冰箱、洗衣机....)的费用,
那么一个打印好的IOTA收款地址二维码会很方便。当使用IOTA钱包生成
地址时,你会找到一个二维码。或者在THETANGLE
网站查询已有地址的二维码。

二维码

组装电路

现在我们看下组装好的电路:

IOTA物联网项目电路

树莓派的管脚如下:

树莓派管脚

参考以下说明连接管脚:

  • 树莓派的pin 2(5v)连接到继电器模块的VCC管脚
  • 树莓派的pin 6(地)连接到继电器模块的GND管脚
  • 树莓派的pin 12(GPIO18)连接到继电器模块的IN管脚
  • 继电器模块的COM端子连接到电池的正极
  • 继电器模块的NO端子通过电阻连接到LED的正极
  • 电池的负极连接到LED的负极

需要的软件和库

在我们开始编写Python代码之前,需要先确认已经在树莓派上安装了所需要的软件和库。

首先,我们需要在树莓派上安装一个操作系统。任何树莓派支持的LInux发行版应该都可以。在我的演示中,使用的是Raspbian发行版,因为它已经预置了Python和几个Python编辑器。Raspbian发行版的安装指令可以在这里找到: https://www.raspberrypi.org/downloads/raspbian/

如果你要单独安装Python,可以参考这里: https://www.python.org/downloads/

最后,我们需要安装PyIOTA API库,利用它我们就可以使用Python来访问IOTA tangle了。PyIOTA API库及安装指令参见: ttps://github.com/iotaledger/iota.lib.py。

Python代码

现在开始写代码:

# Imports some Python Date/Time functions
import time
import datetime

# Imports GPIO library
import RPi.GPIO as GPIO

# Imports the PyOTA library
from iota import Iota
from iota import Address

# Setup O/I PIN's
LEDPIN=18
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(LEDPIN,GPIO.OUT)
GPIO.output(LEDPIN,GPIO.LOW)


# Function for checking address balance on the IOTA tangle. 
def checkbalance():

    print("Checking balance")
    gb_result = api.get_balances(address)
    balance = gb_result['balances']
    return (balance[0])

# URL to IOTA fullnode used when checking balance
iotaNode = "https://nodes.thetangle.org:443"

# Create an IOTA object
api = Iota(iotaNode, "")

# IOTA address to be checked for new light funds 
# IOTA addresses can be created using the IOTA Wallet
address = [Address(b'GTZUHQSPRAQCTSQBZEEMLZPQUPAA9LPLGWCKFNEVKBINXEXZRACVKKKCYPWPKH9AWLGJHPLOZZOYTALAWOVSIJIYVZ')]

# Get current address balance at startup and use as baseline for measuring new funds being added.   
currentbalance = checkbalance()
lastbalance = currentbalance

# Define some variables
lightbalance = 0
balcheckcount = 0
lightstatus = False

# Main loop that executes every 1 second
while True:
    
    # Check for new funds and add to lightbalance when found.
    if balcheckcount == 10:
        currentbalance = checkbalance()
        if currentbalance > lastbalance:
            lightbalance = lightbalance + (currentbalance - lastbalance)
            lastbalance = currentbalance
        balcheckcount = 0

    # Manage light balance and light ON/OFF
    if lightbalance > 0:
        if lightstatus == False:
            print("light ON")
            GPIO.output(LEDPIN,GPIO.HIGH)
            lightstatus=True
        lightbalance = lightbalance -1       
    else:
        if lightstatus == True:
            print("light OFF")
            GPIO.output(LEDPIN,GPIO.LOW)
            lightstatus=False
 
    # Print remaining light balance     
    print(datetime.timedelta(seconds=lightbalance))

    # Increase balance check counter
    balcheckcount = balcheckcount +1

    # Pause for 1 sec.
    time.sleep(1)

运行代码

要运行上面的代码,我们需要先在树莓派上保存到文件中,例如let_there_be_light.py。
然后使用如下命令:

python let_there_be_light.py

现在你应当可以在终端窗口中看到代码在执行了,显示当前的余额,并且每隔10秒钟检查一次LED对应的IOTA地址的余额。

支付LED的使用费

要点亮LED,你只需要使用喜欢的IOTA钱包向LED的IOTA地址转一些IOTA币。只要转账交易被IOTA tangle确认,LED应该就会点亮并直到消耗完余额。在我的演示当中,我设置的收费标准是1秒钟1个IOTA。


原文链接:iota物联网硬件集成新手教程 - 汇智网

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
数据采集 存储 传感器
IoT物联网设备端硬件上云技术方案详解
IoT物联网设备端硬件上云技术方案详解
8844 15
|
5月前
|
传感器 安全 物联网
物联网(IoT)设备的硬件选型与集成技术博文
【6月更文挑战第28天】物联网设备硬件选型与集成聚焦关键要素:功能匹配、性能稳定性、兼容扩展及成本效益。嵌入式系统、通信协议、数据处理和安全性技术确保集成效果,支撑高效、智能的IoT系统,驱动家居、城市与工业自动化变革。
|
存储 安全 物联网安全
物联网安全-硬件设备组成
物联网安全-硬件设备组成
296 1
|
传感器 监控 安全
基于物联网的智能厨房安全监测系统-硬件部分
基于物联网的智能厨房安全监测系统-硬件部分
268 0
|
编解码 人工智能 移动开发
|
传感器 存储 网络协议
物联网生态系统的硬件威胁
传感器和硬件的完整性对于物联网生态系统的健康和有效性至关重要。
308 0
物联网生态系统的硬件威胁
|
传感器 边缘计算 人工智能
立足阿里边缘计算,促进物联网硬件落地(下)——阿里云 MVP刘洪峰
北京叶帆易通科技CEO刘洪峰为大家带来立足阿里边缘计算,促进物联网硬件落地的介绍。阿里更擅长做云端物联网平台构建,边缘计算网关其实核心在系统软件,边缘设备可以源源不断向阿里云物联网平台提供数据,但是边缘计算相对于阿里云这大脑来说,只是一个神经节,粒度还是比较粗,需要更多的神经末梢系统接入到神经节,然后再上传到阿里云平台。 本次主要介绍阿里边缘设备如何和周边设备进行快速互联互通。
731 0
立足阿里边缘计算,促进物联网硬件落地(下)——阿里云 MVP刘洪峰
|
存储 边缘计算 人工智能
立足阿里边缘计算,促进物联网硬件落地(上)——阿里云 MVP刘洪峰
北京叶帆易通科技CEO刘洪峰为大家带来立足阿里边缘计算,促进物联网硬件落地的介绍。阿里更擅长做云端物联网平台构建,边缘计算网关其实核心在系统软件,边缘设备可以源源不断向阿里云物联网平台提供数据,但是边缘计算相对于阿里云这大脑来说,只是一个神经节,粒度还是比较粗,需要更多的神经末梢系统接入到神经节,然后再上传到阿里云平台。 本次主要介绍阿里边缘设备如何和周边设备进行快速互联互通。
1118 0
立足阿里边缘计算,促进物联网硬件落地(上)——阿里云 MVP刘洪峰
|
物联网 传感器 网络协议
破解物联网落地困境-阿里云硬件接入最佳实践
物联网硬件层需要接入的一些传感器、设备、通信链路及通信协议,向不太了解硬件的网友扫扫盲
1562 0
|
物联网
【MVP时间】5节课助你破解物联网硬件接入难点
阿里云MVP刘洪峰讲解物联网硬件接入
2608 0

相关产品

  • 物联网平台