我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195
ESP32CAM可以透過MQTT達到直播的功能,將影像推播到手機上,Android手機可以利用Mqtt dash來接收影像,就可以在世界上任何地方看到ESP32CAM的影像了
本部份請參閱:ESP32CAM MQTT直播
不過有些iOS使用者就沒有合適的APP可以用,就連PC上也沒有合適的MQTT Client可以用,那就自己寫一個吧~
本程式採用Python語法,請先自行pip安裝Opencv及paho-mqtt程式庫,程式執行前,請修改MQTT Broker及SubTopic1等參數
#請先安裝1.paho-mqtt、2.opencv
import paho.mqtt.client as mqtt
import cv2
MqttBroker="mqtt.eclipseprojects.io"
MqttPort=1883
SubTopic1="youjunjer1030/storage308/pic"
#設定連線成功時的Callback
def on_connect(client, userdata, flags, rc):
print("連線結果:" + str(rc))
#訂閱主題
client.subscribe(SubTopic1)
#設定訂閱更新時的Callback
def on_message(client, userdata, msg):
f = open('receive.jpg','wb+') #開啟檔案
f.write(msg.payload)#寫入檔案
f.close()#關閉檔案
#顯示影像檔
img=cv2.imread('receive.jpg')
#img=cv2.resize(img,(640,480))
cv2.imshow('image', img)
key=cv2.waitKey(1)
# 按q離開
if key & 0xFF == ord('q'):
exit()
print('image received')
#設定Mqtt連線
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect(MqttBroker, MqttPort, 60)
#等候訂閱
client.loop_forever()
不過目前有一個小缺點,就是使用Opencv的imshow會有點卡卡的,以後再來找其他顯示圖片的方法。
文章標籤
全站熱搜
留言列表