94 lines
1.8 KiB
Python
94 lines
1.8 KiB
Python
|
|
# -*- coding: utf-8 -*-
|
||
|
|
'''
|
||
|
|
@project: mqtt
|
||
|
|
@file: publisher.py
|
||
|
|
@version: python3.10
|
||
|
|
@Author: jcq
|
||
|
|
@Date : 2024/12/11
|
||
|
|
@
|
||
|
|
'''
|
||
|
|
|
||
|
|
|
||
|
|
import time
|
||
|
|
import sys
|
||
|
|
import random
|
||
|
|
import json
|
||
|
|
import paho.mqtt.client as mqtt
|
||
|
|
|
||
|
|
from loguru import logger
|
||
|
|
from simulation import generate_fight_data ,generate_data
|
||
|
|
|
||
|
|
|
||
|
|
# 101.133.163.127
|
||
|
|
# 1883
|
||
|
|
# admin
|
||
|
|
# admin##123
|
||
|
|
|
||
|
|
|
||
|
|
# MQTT Broker 地址和端口
|
||
|
|
broker = "101.133.163.127" # 在远程服务器上可改为对应的 IP 地址
|
||
|
|
|
||
|
|
|
||
|
|
# broker = "localhost" # 在远程服务器上可改为对应的 IP 地址
|
||
|
|
port = 1883
|
||
|
|
topic = "test/topic"
|
||
|
|
|
||
|
|
logger.add(sys.stderr,format = "{time}-{level}-{message}",level="INFO")
|
||
|
|
logger.add("logs/mqtt.log",rotation="1 MB",retention='5 days')
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# 创建客户端
|
||
|
|
client = mqtt.Client()
|
||
|
|
|
||
|
|
# 连接到 Broker
|
||
|
|
client.connect(broker, port)
|
||
|
|
|
||
|
|
# 发布消息
|
||
|
|
|
||
|
|
#发布假数据做测试用
|
||
|
|
try:
|
||
|
|
|
||
|
|
# 设置初始经纬度
|
||
|
|
initial_latitude = 31.8250608
|
||
|
|
initial_longitude = 118.7630802
|
||
|
|
|
||
|
|
delta = 0.5
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# 发布消息
|
||
|
|
try:
|
||
|
|
|
||
|
|
|
||
|
|
# 设置初始经纬度
|
||
|
|
initial_latitude = 31.8250608
|
||
|
|
initial_longitude = 118.7630802
|
||
|
|
|
||
|
|
|
||
|
|
delta_latitude = 0.5
|
||
|
|
delta_longitude = 0.5
|
||
|
|
|
||
|
|
|
||
|
|
for i in range(100):
|
||
|
|
message = f"Hello MQTT {i}"
|
||
|
|
|
||
|
|
|
||
|
|
# 开始生成数据
|
||
|
|
flight_data_json = generate_fight_data(initial_latitude, initial_longitude)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
initial_latitude += delta_latitude
|
||
|
|
initial_longitude += delta_longitude
|
||
|
|
|
||
|
|
messa = json.dumps(flight_data_json)
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
client.publish(topic, messa)
|
||
|
|
print(f"Published: {message}")
|
||
|
|
print(f"Published: {messa}")
|
||
|
|
time.sleep(0.5)
|
||
|
|
finally:
|
||
|
|
client.disconnect()
|