safwan092

client_sub.py - Raspberry Pi Code

Dec 3rd, 2024
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. import paho.mqtt.client as mqtt
  2. import RPi.GPIO as GPIO
  3. import time
  4.  
  5. GPIO.setmode(GPIO.BCM)
  6. GPIO.setwarnings(False)
  7. GPIO.setup(18,GPIO.OUT)
  8. sensor1_value = 0
  9. sensor2_value = 0
  10.  
  11.  
  12.  
  13. def on_connect(client, userdata, flags, rc):
  14. global flag_connected
  15. flag_connected = 1
  16. client_subscriptions(client)
  17. print("Connected to MQTT server")
  18.  
  19. def on_disconnect(client, userdata, rc):
  20. global flag_connected
  21. flag_connected = 0
  22. print("Disconnected from MQTT server")
  23.  
  24. # a callback functions
  25. def callback_esp32_sensor1(client, userdata, msg):
  26. print('ESP sensor1 data: ', msg.payload.decode('utf-8'))
  27. sensor1_value = int(msg.payload.decode('utf-8'))
  28.  
  29. if(sensor2_value>3000 or sensor1_value>0):
  30. print("LED on")
  31. GPIO.output(18,GPIO.HIGH)
  32. else:
  33. print("LED off")
  34. GPIO.output(18,GPIO.LOW)
  35.  
  36. def callback_esp32_sensor2(client, userdata, msg):
  37. print('ESP sensor2 data: ', str(msg.payload.decode('utf-8')))
  38. sensor2_value = int(msg.payload.decode('utf-8'))
  39.  
  40. if(sensor2_value>3000 or sensor1_value>0):
  41. print("LED on")
  42. GPIO.output(18,GPIO.HIGH)
  43. else:
  44. print("LED off")
  45. GPIO.output(18,GPIO.LOW)
  46.  
  47.  
  48. def callback_rpi_broadcast(client, userdata, msg):
  49. print('RPi Broadcast message: ', str(msg.payload.decode('utf-8')))
  50.  
  51. def client_subscriptions(client):
  52. client.subscribe("esp32/#")
  53. client.subscribe("rpi/broadcast")
  54.  
  55. client = mqtt.Client("rpi_client1") #this should be a unique name
  56. flag_connected = 0
  57.  
  58. client.on_connect = on_connect
  59. client.on_disconnect = on_disconnect
  60. client.message_callback_add('esp32/sensor1', callback_esp32_sensor1)
  61. client.message_callback_add('esp32/sensor2', callback_esp32_sensor2)
  62. client.message_callback_add('rpi/broadcast', callback_rpi_broadcast)
  63. client.connect('127.0.0.1',1883)
  64. # start a new thread
  65. client.loop_start()
  66. client_subscriptions(client)
  67. print("......client setup complete............")
  68.  
  69.  
  70. while True:
  71. time.sleep(4)
  72. if (flag_connected != 1):
  73. print("trying to connect MQTT server..")
  74.  
  75.  
  76.  
Advertisement
Add Comment
Please, Sign In to add comment