Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एमक्यूटीटी मॉस्किटो प्रकाशित घटनाओं को MySQL में कैसे स्टोर करें?

मैंने पिछले दिनों में कुछ ऐसा ही किया है:

  • पाइव्स के साथ लाइव कलेक्टिंग वेदरस्टेशन-डेटा
  • pywws.service.mqtt से mqtt-Broker में प्रकाशित करना
  • पायथन-स्क्रिप्ट NAS पर डेटा एकत्र करना और MariaDB को लिखना
#!/usr/bin/python -u

import mysql.connector as mariadb
import paho.mqtt.client as mqtt
import ssl

mariadb_connection = mariadb.connect(user='USER', password='PW', database='MYDB')
cursor = mariadb_connection.cursor()

# MQTT Settings 
MQTT_Broker = "192.XXX.XXX.XXX"
MQTT_Port = 8883
Keep_Alive_Interval = 60
MQTT_Topic = "/weather/pywws/#"

# Subscribe
def on_connect(client, userdata, flags, rc):
  mqttc.subscribe(MQTT_Topic, 0)

def on_message(mosq, obj, msg):
  # Prepare Data, separate columns and values
  msg_clear = msg.payload.translate(None, '{}""').split(", ")
  msg_dict =    {}
  for i in range(0, len(msg_clear)):
    msg_dict[msg_clear[i].split(": ")[0]] = msg_clear[i].split(": ")[1]

  # Prepare dynamic sql-statement
  placeholders = ', '.join(['%s'] * len(msg_dict))
  columns = ', '.join(msg_dict.keys())
  sql = "INSERT INTO pws ( %s ) VALUES ( %s )" % (columns, placeholders)

  # Save Data into DB Table
  try:
      cursor.execute(sql, msg_dict.values())
  except mariadb.Error as error:
      print("Error: {}".format(error))
  mariadb_connection.commit()

def on_subscribe(mosq, obj, mid, granted_qos):
  pass

mqttc = mqtt.Client()

# Assign event callbacks
mqttc.on_message = on_message
mqttc.on_connect = on_connect
mqttc.on_subscribe = on_subscribe

# Connect
mqttc.tls_set(ca_certs="ca.crt", tls_version=ssl.PROTOCOL_TLSv1_2)
mqttc.connect(MQTT_Broker, int(MQTT_Port), int(Keep_Alive_Interval))

# Continue the network loop & close db-connection
mqttc.loop_forever()
mariadb_connection.close()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. नोड.जेएस-एसक्यूएल में पैरामीटर बाध्य करके गतिशील क्वेरी कैसे बनाएं?

  2. Zend_Auth_Adapter_DbTable को दिए गए पैरामीटर मान्य sql स्टेटमेंट बनाने में विफल रहे

  3. MySQL में केवल डुप्लिकेट रिकॉर्ड चुनें और प्रदर्शित करें

  4. Android MySQL डेटाबेस से ठीक से कनेक्ट करने में विफल रहा है

  5. डेटाबेस में छवि को सीधे या बेस 64 डेटा के रूप में संग्रहीत करना?