1, Modbus slave thiết trí tòng cơ Modbus TCP tham sổ
Thiết tríModbusTCPHiệp nghị hòa địa chỉ
Mô nghĩNhuyễn kiệnThiết trí đích thị đương tiền điện não đích, sở dĩ hậu diện phối trí Modbus TCP đích tòng cơ thời, tựu yếu điền đương tiền điện não đích ip địa chỉ, bất yếu tả bl hệ liệt thiết bị đích ip địa chỉ
Thiết trí sổ cư tham sổ
Thiết bị địa chỉ: 22
Công năng mã: 04
Sổ cư loại hình: 16
Khởi thủy địa chỉ: 0
Sổ lượng: 5 cá
2, thiết trí BL102 tương Modbus slave tòng cơ sổ cư điểm ánh xạ
Thiết trí WAN khẩu vi Modbus TCP Master mô thức
Thiết trí bl102 thiết bị hòa tòng cơ đồng cá võng đoạn
Thiêm gia tòng cơ
Tòng cơ đích ip địa chỉ, nhu yếu điền tả Modbus slave nhuyễn kiện đích sở tại điện não đích ip địa chỉ, bất yếu điền liễu bl võng quan đích ip địa chỉ
Thiêm gia sổ cư điểm
Thiết trí MQTT broker ( MQTTPhục vụ khí) tín tức
Tra khán thiết bị thượng hạ hành trạng thái
Tra khán hạ hành liên tiếp thiết bị hòa thượng hành liên tiếp MQTT phục vụ khí trạng thái
3, MQTT khách hộ đoan thiết trí đính duyệt
Khách hộ đoan thiết trí liên tiếp MQTT phục vụ khí tham sổ
Phục vụ khí ip, đoan khẩu, ID, tâm khiêu đẳng.
Thiết trí đính duyệt BL102 thiết bị đích chủ đề
Cương tài thiết trí BL102 thiết bị đích phát bố chủ đề thị test, na ma đính duyệt dã thị test
Tra khán dĩ thu đáo BL102 thiết bị đích sổ cư
4, Python thải tập tịnh tả nhập sổ cư khố
# python3.6
import json
import sqlite3
import random
from datetime import datetime
from paho.mqtt import client as mqtt_client
broker = '192.168.1.165'
#broker = 'broker-cn.emqx.io'
port = 1883
topic = "test"
# generate client ID with pub prefix randomly
client_id = f'python-mqtt-{random.randint(0, 100)}'
def connect_mqtt() -> mqtt_client:
def on_connect(client, userdata, flags, rc):
if rc == 0:
print( "Connected to MQTT Broker!" )
else:
print( "Failedto connect, return code %dn ", rc)
client = mqtt_client.Client(client_id)
client.on_connect = on_connect
client.connect(broker, port)
return client
# tương sổ cư xuất nhậpSổ cư khố
def create_table():
# liên tiếp sổ cư khố, một hữu tắc sang kiến
conn = sqlite3.connect('plcdata')
print(' liên tiếp sổ cư khố thành công ')
# phán đoạn iot biểu thị phủ tồn tại, bất tồn tại tắc tân kiến. CREATE TABLE IF NOT EXISTS iot
try:
create_tb_cmd='''
CREATE TABLE IF NOT EXISTS iot
(lat TEXT,
lng TEXT,
signal_strength INT,
REG001 INT,
REG002 INT,
REG003 INT,
REG004 INT,
REG005 INT);
'''
# chấp hành sang kiến sổ cư biểu ngữ cú
conn.execute(create_tb_cmd)
except:
print( "Create table failed" )
return False
insert_dt_cmd='INSERT INTO iot (lat,lng,signal_strength,REG001,REG002,REG003,REG004,REG005) VALUES '+ strlist + ';'
print(insert_dt_cmd)
# insert_dt_cmd='''
# INSERT INTO iot (lat,lng,signal_strength,REG001,REG002,REG003,REG004,REG005) VALUES (0.000000,0.000000,0,33,8538,234,22,9046);
# '''
conn.execute(insert_dt_cmd)
print(' tả nhập sổ cư khố thành công ')
conn.commit()
conn.close()
strlist = ''
def subscribe(client: mqtt_client):
def on_message(client, userdata, msg):
t = datetime.now()
print(' đương tiền thời gian: ',t)
#print(f "Received `{msg.payload.decode()}` from `{msg.topic}` topic" )
json_data = msg.payload.decode() # giải tích đính duyệt chủ đề tín tức,
# print(type(json_data)) # phán đoạn data loại hình, thị json tự phù xuyến
dict_json = json.loads(json_data)
#print(type(dict_json))
#print(dict_json)
sensordatas = dict_json['sensorDatas']
list_data =[]
for i in sensordatas:
#print(type(i),i)
#print(i['flag'],type(i['flag']))
if i['flag'] == 'GPS':
list_data.append(i['lat'])
list_data.append(i['lng'])
#print(list_data)
else:
#print(i['flag'],i['value'])
list_data.append(i['value'])
#print(list_data)
global strlist
strlist = str(tuple(list_data))
print(strlist)
create_table()
client.subscribe(topic)
client.on_message = on_message
def run():
client = connect_mqtt()
subscribe(client)
client.loop_forever()
if __name__ == '__main__':
run()
Kỳ tha: python phát bố hòa đính duyệt
Phát bố
# python 3.6
import random
import time
from paho.mqtt import client as mqtt_client
broker = '192.168.1.165'
port = 1883
topic = "test"
# generate client ID with pub prefix randomly
client_id = f'python-mqtt-{random.randint(0, 1000)}'
def connect_mqtt():
def on_connect(client, userdata, flags, rc):
if rc == 0:
print( "Connected to MQTT Broker!" )
else:
print( "Failed to connect, return code %dn", rc)
client = mqtt_client.Client(client_id)
client.on_connect = on_connect
client.connect(broker, port)
return client
def publish(client):
msg_count = 0
while True:
time.sleep(1)
msg = f "messages: {msg_count}"
result = client.publish(topic, msg)
# result: [0, 1]
status = result[0]
if status == 0:
print(f "Send `{msg}` to topic `{topic}`" )
else:
print(f "Failed to send message to topic {topic}" )
msg_count += 1
def run():
client = connect_mqtt()
client.loop_start()
publish(client)
if __name__ == '__main__':
run()
Đính duyệt
# python3.6
import random
from datetime import datetime
from paho.mqtt import client as mqtt_client
broker = '192.168.1.165'
#broker = 'broker-cn.emqx.io'
port = 1883
topic = "test"
# generate client ID with pub prefix randomly
client_id = f'python-mqtt-{random.randint(0, 100)}'
def connect_mqtt() -> mqtt_client:
def on_connect(client, userdata, flags, rc):
if rc == 0:
print( "Connected to MQTT Broker!" )
else:
print( "Failed to connect, return code %dn", rc)
client = mqtt_client.Client(client_id)
client.on_connect = on_connect
client.connect(broker, port)
return client
def subscribe(client: mqtt_client):
def on_message(client, userdata, msg):
t = datetime.now()
print(' đương tiền thời gian: ',t)
print(f "Received `{msg.payload.decode()}` from `{msg.topic}` topic" )
client.subscribe(topic)
client.on_message = on_message
def run():
client = connect_mqtt()
subscribe(client)
client.loop_forever()
if __name__ == '__main__':
run()