应用背景
Ubidots是一个物联网云平台,通过设备友好的API(可通过HTTP / MQTT / TCP / UDP协议访问)简单安全地将硬件和数字输入连接到Ubidots Cloud。它可以从任何启用互联网的设备将数据发送到云端,比如 Arduino、树莓派、Particle、Espressif、Onion,等等。此外,它还提供了多种类型的服务,比如设备连接管理以及数据可视化,开发人员可以基于实时数据和可视化工具配置操作和报警。
工业级树莓派能与以太网进行连接,自然也可以与Ubidots云平台进行数据的通信。下面我们就来讲讲工业树莓派如何连接Ubidots。
连接方法
RevPi Core具有定制的Raspbian系统可以通过运行python脚本随机生成压力、温度和湿度读数并将数据发送到Ubidots云平台。
首先通过RevPi Core终端使用nano编辑器创建Python脚本(可以通过putty远程连接,也可以外接显示屏,进入终端窗口):
nano ubidots_revpi.py
将以下代码粘贴到nano编辑器中,并将代码中的TOKEN替换成您自己的,获取方法见下图:
################################################################################ # 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 + O,确认要写入的文件名(ubidots_revpi.py) ,然后按Enter 。要关闭nanno编辑器,请按Ctrl + X。输入以下命令运行脚本:
python ubidots_revpi.py
脚本开始运行后,您将看到来自Ubidots服务器的成功状态代码响应201:
转到您的Ubidots帐户并确认已接收到数据。您将在“设备”部分中看到一个自动创建的新设备,该设备名称为RevPi Core的MAC地址。
再单击“设备”部分中的任何设备,就可以以可视化的方式看到RevPi Core模块发送给Ubidots云平台的数据。如您所见,示例代码提供了三个变量:湿度,压力和温度。
本文使用的模块
RevPi Core 是处理不需要四核性能的简单任务的理想设备,它配备了Raspberry Pi计算模块1。该计算模块基本上由两个IC组成:一个具有512 MB RAM和4 GB eMMC闪存的Broadcom BCM2835 SoC,时钟频率为700MHz。操作系统是定制的Raspbian incl并预先安装了RT补丁。
RevPi Core 使用了最先进的高效DC-DC转换器(总体效率大于80%),从而可以有效减少发热。模块不仅可以在20.4 V至28.8 V标准化的电源电压范围运行,也可以在10.2 V输入电压下运行,这意味着您甚至可以使用汽车电池或太阳能电池板作为电源。先进的保护电路可确保即使在输入电源线上受到大量电磁干扰的情况下,模块也能连续运行(前提是正确连接了功能性接地)。
像Raspberry Pi一样,RevPi Core 也配备了通用接口:
1个RJ45以太网插座
2个USB 2.0插座
1个Micro HDMI插座
1个Micro USB 2.0插槽
2 个PiBridge(用于RevPi模块扩展)
RevPi Core 模块可以适应恶劣的工业环境:
电源:12-24 VDC -15%/ +20%,max.10W
工作温度:-40°C至55°C
ESD保护:符合EN 61131-2和IEC 61000-6-2的4 kV / 8 kV
浪涌/冲击测试:根据EN 61131-2和IEC 61000-6-2进行
EMI测试:根据EN 61131-2和IEC 61000-6-2
UL认证(UL文件编号E494534)