應(yīng)用背景
Ubidots是一個(gè)物聯(lián)網(wǎng)云平臺(tái),通過(guò)設(shè)備友好的API(可通過(guò)HTTP / MQTT / TCP / UDP協(xié)議訪問(wèn))簡(jiǎn)單安全地將硬件和數(shù)字輸入連接到Ubidots Cloud。它可以從任何啟用互聯(lián)網(wǎng)的設(shè)備將數(shù)據(jù)發(fā)送到云端,比如 Arduino、樹(shù)莓派、Particle、Espressif、Onion,等等。此外,它還提供了多種類型的服務(wù),比如設(shè)備連接管理以及數(shù)據(jù)可視化,開(kāi)發(fā)人員可以基于實(shí)時(shí)數(shù)據(jù)和可視化工具配置操作和報(bào)警。
工業(yè)級(jí)樹(shù)莓派能與以太網(wǎng)進(jìn)行連接,自然也可以與Ubidots云平臺(tái)進(jìn)行數(shù)據(jù)的通信。下面我們就來(lái)講講工業(yè)樹(shù)莓派如何連接Ubidots。
連接方法
RevPi Core具有定制的Raspbian系統(tǒng)可以通過(guò)運(yùn)行python腳本隨機(jī)生成壓力、溫度和濕度讀數(shù)并將數(shù)據(jù)發(fā)送到Ubidots云平臺(tái)。
首先通過(guò)RevPi Core終端使用nano編輯器創(chuàng)建Python腳本(可以通過(guò)putty遠(yuǎn)程連接,也可以外接顯示屏,進(jìn)入終端窗口):nano ubidots_revpi.py。
將以下代碼粘貼到nano編輯器中,并將代碼中的TOKEN替換成您自己的,獲取方法見(jiàn)下圖:
######################################################
This script simulates different sensors values using the random module and make
# a HTTP request to Ubidots Cloud (https://ubidots.com/)
#
# Author: M. Hernandez
######################################################
import requests
import time
import random
from uuid import getnode as get_mac
# Assign your Ubidots TOKEN
TOKEN = "Assign_your_Ubidots_token"
# Set the delay desired to post the data
DELAY = 1
'''
This method build the JSON to be sent to the Ubidots Cloud
'''
def build_json(variable_1, value_1, variable_2, value_2, variable_3, value_3):
try:
data = {variable_1: value_1, variable_2: value_2, variable_3: value_3}
return data
except:
return None
'''
This method make the HTTP Request to the Ubidots Cloud
'''
def post_variable(device, value_1, value_2, value_3):
try:
url = "https://industrial.api.ubidots.com/api/v1.6/devices/" + device
headers = {"X-Auth-Token": TOKEN, "Content-Type": "application/json"}
data = build_json("temperature", value_1, "humidity", value_2, "pressure", value_3)
response = requests.post(url=url, headers=headers, json=data)
return response.json()
except:
pass
if __name__ == "__main__":
while True:
mac = get_mac() # get the mac address of your device
device_mac = ':'.join(("%012X" % mac)[i:i+2] for i in range(0, 12, 2))
temp_value = random.randint(0,15)*2
hum_value = random.randint(20,50)
press_value = random.randint(2,50)*2
print post_variable(device_mac, temp_value, hum_value, press_value)
time.sleep(DELAY)
按Ctrl+0,確認(rèn)要寫入的文件名(ubidots_revpi.py) ,然后按Enter 。要關(guān)閉nanno編輯器,請(qǐng)按Ctrl + X。輸入以下命令運(yùn)行腳本:python ubidots_revpi.py。
腳本開(kāi)始運(yùn)行后,您將看到來(lái)自Ubidots服務(wù)器的成功狀態(tài)代碼響應(yīng)201:
轉(zhuǎn)到您的Ubidots帳戶并確認(rèn)已接收到數(shù)據(jù)。您將在“設(shè)備”部分中看到一個(gè)自動(dòng)創(chuàng)建的新設(shè)備,該設(shè)備名稱為RevPi Core的MAC地址。
再單擊“設(shè)備”部分中的任何設(shè)備,就可以以可視化的方式看到RevPi Core模塊發(fā)送給Ubidots云平臺(tái)的數(shù)據(jù)。如您所見(jiàn),示例代碼提供了三個(gè)變量:濕度,壓力和溫度。
RevPi Core
RevPi Core是處理不需要四核性能的簡(jiǎn)單任務(wù)的理想設(shè)備,它配備了Raspberry Pi計(jì)算模塊1。該計(jì)算模塊基本上由兩個(gè)IC組成:一個(gè)具有512 MB RAM和4 GB eMMC閃存的Broadcom BCM2835 SoC,時(shí)鐘頻率為700MHz。操作系統(tǒng)是定制的Raspbian incl并預(yù)先安裝了RT補(bǔ)丁。
RevPi Core使用了最先進(jìn)的高效DC-DC轉(zhuǎn)換器(總體效率大于80%),從而可以有效減少發(fā)熱。模塊不僅可以在20.4 V至28.8 V標(biāo)準(zhǔn)化的電源電壓范圍運(yùn)行,也可以在10.2 V輸入電壓下運(yùn)行,這意味著您甚至可以使用汽車電池或太陽(yáng)能電池板作為電源。先進(jìn)的保護(hù)電路可確保即使在輸入電源線上受到大量電磁干擾的情況下,模塊也能連續(xù)運(yùn)行(前提是正確連接了功能性接地)。
像Raspberry Pi一樣,RevPi Core 也配備了通用接口:
●1個(gè)RJ45以太網(wǎng)插座
●2個(gè)USB 2.0插座
●1個(gè)Micro HDMI插座
●1個(gè)Micro USB 2.0插槽
●2 個(gè)PiBridge(用于RevPi模塊擴(kuò)展)
RevPi Core 模塊可以適應(yīng)惡劣的工業(yè)環(huán)境:
●電源:12-24 VDC -15%/ +20%,max.10W
●工作溫度:-40°C至55°C
●ESD保護(hù):符合EN 61131-2和IEC 61000-6-2的4kV / 8 kV
●浪涌/沖擊測(cè)試:根據(jù)EN 61131-2和IEC 61000-6-2進(jìn)行
●EMI測(cè)試:根據(jù)EN 61131-2和IEC 61000-6-2
●UL認(rèn)證(UL文件編號(hào)E494534
(轉(zhuǎn)載)