MQTT Broker Google Pubsub集成

Google Pubsub是领先的队列引擎之一,用于从发布者或MQTT应用程序收集数据以进行更好的数据分析。 Bevywise MQTT Broker与Google Pubsub的集成可帮助您通过MQTT Broker将数据从IoT和IIoT边缘设备推送到Google pubsub。

为Pubsub设置Google Compute

可从您的Google云服务帐户访问Google Pubsub。 您可以按照Google Pubsub文档来创建带有发布主题的Google Pubsub。

创建Ubuntu实例

我们将在由Google Cloud创建的Ubuntu实例上运行Bevywise MQTT Broker。 请参阅Google帮助文档以创建Ubuntu实例。 在Google云中。

安装Google Pub / Sub依赖项

创建Ubuntu实例后,登录到该实例并安装以下依赖项。

  • 打开终端并在gloud cloud软件包下面安装
  • sudo pip安装google-cloud-core
  • sudo pip安装google-api-core
  • sudo pip install –升级google-cloud-pubsub
  • 转到“ /usr/local/lib/python2.7/dist-packages/PyInstaller/hooks/”文件夹。

cd /usr/local/lib/python2.7/dist-packages/PyInstaller/hooks

  • 在该文件夹中,通过打开“ hook-google.cloud.py”文件

须藤vim hook-google.cloud.py

  • 在该文件中,删除所有默认行并添加以下代码

从PyInstaller.utils.hooks导入copy_metadata
数据= copy_metadata(’google-cloud-core’)
数据+ = copy_metadata(’google-api-core’)
数据+ = copy_metadata(’google-cloud-pubsub’)

  • 在创建的Ubuntu实例中安装Bevywise MQTTBroker。
  • 安装后,转到Bevywise / MQTTRoute / extension文件夹。
  • 在该文件夹中,打开“ custom_store.py”并替换以下代码

导入操作系统
导入系统
导入json
从google.cloud导入pubsub_v1
sys.path.append(os.getcwd()+’/ lib’)
sys.path.append(’/ usr / local / lib / python2.7 / dist-packages’)
project_Id =’project_name’
broker_Id =’正在测试’
def handle_Received_Payload(数据):
全局pubsub_v1
全局project_Id
全球broker_Id
发布者= pubsub_v1.PublisherClient()
topic_path = Publisher.topic_path(project_Id,’broker’)
数据= json.dumps(数据)
数据= data.encode(’utf-8’)
Publisher.publish(topic_path,data = data,device = broker_Id)

  • 在此代码中, “项目ID”代表您在创建google pubsub时使用的项目ID
  • 保存并退出文件
  • 转到Bevywise / MQTTRoute / conf文件夹
  • 打开“ data_store.conf”并更改以下参数
  • 客户存储=已启用
  • 保存并退出文件。
  • 如果要通过身份验证运行MQTTBroker,请按照以下步骤操作
  • 打开Bevywise / MQTTBroker / conf文件夹
  • 在打开的“ broker.conf”文件中进行更改
  • AUTHENTICATION_ENABLED = YES
  • 保存并退出文件。
  • Google Pubsub使用grpc身份验证,因此我们必须在“ / etc / environment”中导出grpc ssl证书路径,以设置grpc ssl根证书的默认路径。
  • 转到/ etc文件夹并通过打开“ 环境”文件

sudo vim环境

  • 在该文件中,粘贴以下命令并保存。

导出GRPC_DEFAULT_SSL_ROOTS_FILE_PATH =” usr / local / lib / python2.7 / dist-packages / grpc / _cython / _credentials / roots.pem

  • 接下来,重新启动实例。
  • 重新启动实例后,转到“ Bevywise / MQTTRoute / bin”文件夹
  • 接下来通过启动Bevywise MQTTBroker

须藤sh runbroker.sh

现在,Bevywise MQTT Broker从您的边缘设备收集数据,并通过自定义存储发送到Google pub / sub。 在Google Pub / Sub中,您可以挂钩数据并将其发送到数据分析工具。 下载我们的MQTT代理,开始数据分析。