中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python iota硬件集成的方法是什么

發布時間:2021-12-24 16:52:26 來源:億速云 閱讀:153 作者:iii 欄目:互聯網科技

本篇內容介紹了“Python iota硬件集成的方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

元器件

先讓我們看一下項目需要的元器件。你應當可以在大多數電子元器件商店或者淘寶上賣到這些元器件,不會超過350元。

樹莓派

項目的大腦是樹莓派。樹莓派將運行用來監視IOTA地址的余額并處理樹莓派的通用輸入輸出(GIO)管腳上的信號:

Python iota硬件集成的方法是什么

繼電器

繼電器用來切換電路以及設備(我們這里就是LED)的開關。為了簡化電路我們將使用一個繼電器模塊,它包含了所有必須的元器件、管腳和接插件。注意你也可以購買多通道繼電器模塊,只要每個通道可以單獨開關即可。 Python iota硬件集成的方法是什么

面包板

面包板用來進行電路的連接而無需進行焊接,這使得裝配過程更加簡單。

Python iota硬件集成的方法是什么

發光二極管

當供電時LED會點亮,我們用它來表示項目中的物理設備(比如冰箱)。

Python iota硬件集成的方法是什么

300歐電阻

電阻用來限制通過LED的電流。沒有電阻的話,LED和樹莓派可能會因為電流過大而損壞。要使用的電阻取決于你的LED以及電路電壓。在我的演示中,使用了9V電池,因此330歐姆的電阻應當就可以了。

Python iota硬件集成的方法是什么

電池

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

Python iota硬件集成的方法是什么

連接線

我們當然也需要一些電線將各個部件連接起來:

Python iota硬件集成的方法是什么

二維碼

如果你希望使用手機IOTA錢包來支付使用LED(冰箱、洗衣機....)的費用,那么一個打印好的IOTA收款地址二維碼會很方便。當使用IOTA錢包生成地址時,你會找到一個二維碼。或者在THETANGLE網站查詢已有地址的二維碼。

Python iota硬件集成的方法是什么

組裝電路

現在我們看下組裝好的電路:

Python iota硬件集成的方法是什么

樹莓派的管腳如下:

Python iota硬件集成的方法是什么

參考以下說明連接管腳:

  • 樹莓派的pin 2(5v)連接到繼電器模塊的VCC管腳

  • 樹莓派的pin 6(地)連接到繼電器模塊的GND管腳

  • 樹莓派的pin 12(GPIO18)連接到繼電器模塊的IN管腳

  • 繼電器模塊的COM端子連接到電池的正極

  • 繼電器模塊的NO端子通過電阻連接到LED的正極

  • 電池的負極連接到LED的負極

需要的軟件和庫

在我們開始編寫Python代碼之前,需要先確認已經在樹莓派上安裝了所需要的軟件和庫。

首先,我們需要在樹莓派上安裝一個操作系統。任何樹莓派支持的LInux發行版應該都可以。在我的演示中,使用的是Raspbian發行版,因為它已經預置了Python和幾個Python編輯器。

最后,我們需要安裝PyIOTA API庫,利用它我們就可以使用Python來訪問IOTA tangle了。

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。

“Python iota硬件集成的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泰安市| 台湾省| 康定县| 五大连池市| 沁水县| 城市| 方山县| 通道| 江永县| 阿拉善左旗| 中宁县| 武定县| 兴和县| 慈溪市| 宜都市| 天气| 都兰县| 屏东县| 星子县| 内乡县| 崇左市| 巫山县| 师宗县| 射洪县| 册亨县| 留坝县| 沐川县| 上杭县| 奎屯市| 宁远县| 论坛| 南澳县| 维西| 雷山县| 宝应县| 邢台市| 永顺县| 新昌县| 马尔康县| 汨罗市| 天津市|