W5100S-EVB-PICO + ThingsCloud

转发: W5100S-EVB-PICO + ThingsCloud
项目介绍
故事
这是一个让我学习如何与物联网平台通信的应用程序。
在我看来,我认为这个物联网平台并不难使用,而且它有一些很好的功能,可以让我轻松地远程控制模块。
由于我在使用 CircuitPython 和 W5100S-EVB-PICO 方面有一些良好的经验,因此我用它与中国一个名为 ThingsCloud 的物联网平台进行通信。
这是我从中文博客上找到的一个中文物联网平台。
它包括与物联网平台通信的不同类型的通信方法
对于此应用程序,我使用 MQTT 来与 ThingsCloud 进行通信。
要了解有关该物联网平台的更多信息,请参阅以下链接。
ThingsCloud - 物联网云平台 - 让万物互联更简单
结构:

上图是我为这个IOT应用程序制作的连接图。
正如您所看到的,这个应用程序非常简单。
这样做的目的是展示使用 ThingsCloud 监控设备是多么容易。
因此,我只是添加了一个输入和一个输出模块来展示与 ThingsCloud 通信的最基本设置
将数据输入到 ThingsCloud:
DHT22 - 这是最简单、最基本的温度和湿度上传模块。 Adafruit 有一个很好的库和示例代码,让我可以轻松地将这些信息上传到平台。
从 ThingsCloud 输出数据:
LED 模块 - 为了轻松地通过 ThingsCloud 展示对设备的控制,最好的方法是打开或关闭 LED 灯。
ThingsCloud - 设置物联网平台:
由于这是一个来自中国的物联网平台,我想我需要展示如何在 ThingsCloud 中设置物联网平台。
ThingsCloud 是一个在线物联网平台,不需要在您的 PC 上安装任何东西,并且有免费版本用于测试该平台。
它还具有网页和手机APP,用于与W5100S-EVB-PICO进行远程通信。
第 1 步:创建帐户 - 只需提供您的电子邮件地址和密码即可。
邮件确认后即可在该平台创建账户。

第 2 步:创建设备
对于创建设备来说,创建设备是一个非常简单的过程。 它只需要以下简单的步骤。
a) 选择服务器 - 它将有海外服务器(付费版本)
b) 创建项目 - 这允许用户将所有设备组合到一个项目中
c) 创建设备 - 该项目的特定设备。

进入项目后,进入“设备->所有设备->创建新设备(右侧蓝色按钮)

步骤 3:找到与 ThingsCloud 通信的连接详细信息。
创建设备后,您可以转到连接部分来收集所有详细信息。

进入设备部分后,请选择我突出显示的连接选项卡。
AccessToken 将是您的 MQTT 登录用户名。
ProjectKey 将是您的 MQTT 登录密码。
从MQTT部分,它显示了与ThingsCloud通信的登录地址和端口号。
有了这些信息,我就可以轻松登录这个物联网平台。
如果您想了解更多有关登录方法的信息,可以观看 ThingsCloud 制作的视频链接。
编程-主要代码
获得这些信息后,我只需要将所有这些信息提取到我的代码中即可。
WIZnet 和 adafruit 为我创建了很多不同类型的代码,以便我以简单的方式与 MQTT 服务器进行通信。
通过使用 MQTT 代码,我只需将信息添加到我的秘密文件中并登录 ThingsCloud MQTT 服务器。
代码:
mqtt_client = MQTT.MQTT(
broker="gz-3-mqtt.iot-api.com",
username=secrets["thingscloud_user"], #AccessToken
password=secrets["thingscloud_pass"], #ProjectKey
client_id=secrets["thingscloud_id"], #Random name to pass the codes
is_ssl=False, #Not in SSL (Port 1883)
)
# Connect to ThingsCloud
print("Attempting to connect to %s" % mqtt_client.broker)
mqtt_client.connect()
创建连接设置后,我只需要找到正确的渠道来发布和订阅。
代码:
mqtt_attributes = "attributes" #Publish channels to ThingsCloud
mqtt_push = "attributes/push" #Subscribe channels to receive data from ThingsCloud
#Subscribe the receive data channel
print("Subscribing to %s" % mqtt_push)
mqtt_client.subscribe(mqtt_push)
#Using loop function in the while loop to collect data from ThingsCloud
mqtt_client.loop()
#Publish data to publish channel (Inside While Loop)
print("Publishing to %s" % mqtt_attributes)
mqtt_client.publish(mqtt_attributes, data)
为了使该应用程序更易于理解和呈现,我添加了代码以允许 W5100S-EVB-PICO 将温度和湿度数据上传到 ThingsCloud。 我什至添加了消息函数(MQTT 接收数据)中的代码来控制我的 LED 模块。
对于与ThingsCloud的通信,需要以JSON格式进行处理。 因此,我设置了代码以 JSON 格式与平台进行通信。
代码:
#Message function Setup
def message(client, topic, message):
# Method callled when a client's subscribed feed has a new value.
print("New message on topic {0}: {1}".format(topic, message))
if message.find('"relay"') > 0: #find relay - The name for the switch
if message.find("true") > 0: #find true - It means turn ON LED
LED_light.value = 1
elif message.find("false") > 0: #find false - It means turn OFF LED
LED_light.value = 0
# Setup the callback methods above - Required for MQTT communication in circuitpython
mqtt_client.on_message = message
#Subscribe the receive data channel
print("Subscribing to %s" % mqtt_push)
mqtt_client.subscribe(mqtt_push)
while True:
mqtt_client.loop()
try:
# Print the values to the serial port
temperature_c = dhtDevice.temperature #collect temperature from DHT22
humidity = dhtDevice.humidity #collect humidity from DHT22
data = '{'+'"temperature": {},"humidity": {}'.format(temperature_c,humidity)+'}' #Set into correct JSON format before sending to ThingsCloud
#Send the values to ThingsCloud
print("Publishing to %s" % mqtt_attributes)
mqtt_client.publish(mqtt_attributes, data)
time.sleep(0.5)
except RuntimeError as error:
# Errors happen fairly often, DHT's are hard to read, just keep going
print(error.args[0])
time.sleep(2.0)
continue
except Exception as error:
dhtDevice.exit()
raise error
Display on Mobile APP
还有几个步骤可以使这些信息显示在移动应用程序上。
1.安装thingsx应用程序。 它有IOS和Android版本。 (细节)
2.平台设置。 创建设备类型并将设备连接到该类型以实现完全控制
3.添加与我上传到平台同名的变量
4.设置手机APP页面显示
1.安装thingsX应用程序:
Thingsx APP是该物联网平台的手机应用程序。 安装应用程序后,您只需提供一些登录详细信息。
a) 创建一个用户APP - 这是为了管理用户使用该项目的特定功能。 请选择 thingsX 并为此用户应用程序命名。
位置:应用程序 -> 用户应用程序 -> 创建新的用户应用程序(蓝色按钮)

选择 ThingsX:

创建一个名称并创建这个应用程序

创建用户应用程序后,您将获得第一个登录信息:AppID。

要创建用户帐户,请转到应用程序 -> 用户帐户 -> 创建新用户帐户(蓝色按钮)

提供用户名和密码以创建帐户。

最后,您就可以登录ThingsX APP了。

登录页面

2.平台设置-创建设备类型
创建设备类型正在尝试将平台与移动应用程序连接起来。
为了创建此设备类型,我需要转到设备 -> 设备类型 -> 创建新的设备类型(蓝色按钮)

之后,我输入我的名字并使用选择以太网与设备进行通信

创建设备类型后,我需要将通信的设备添加到该设备类型中。

3.为设备类型添加变量
为了允许从设备到设备类型的数据,请确保两个部分的变量相同。


变量已设置到设备类型部分的上传和下载部分。
上传(橙色)-> 温度和湿度
下载(蓝色)->继电器(控制LED灯)
4. 移动应用程序显示设置
对于本部分,我需要转到设备类型 -> 应用程序设置 -> 编辑设备显示

进入设置页面后,我可以将任何小部件添加到页面中,它将显示在移动应用程序上。

对于本部分,您可以按照我从 ThingsCloud 学习的示例视频进行操作。
感谢您的阅读。 :)
文件
4959

被折叠的 条评论
为什么被折叠?



