ESP32CAM與安卓端進行配合控制燈光簡述(含有4G網查看方法)

                                                 ESP32CAM

前言:

       最近很忙,很久沒更新了,因爲之前倒騰了ESP32CAM模塊發了一個B站的視頻後,很多小夥伴都來找我問一下這個配合是如何進行的,因此寫個簡述,供大家有所參考。

視頻效果:

ESP32CAM實戰效果!值得用來DIY的攝像頭!

ESP32CAM:

    我也有一個項目,名字叫做智能控制家居控制,因爲控制需要有反饋的效果,如果不在家裏又控制了家電,不親眼看到總覺得不太好,看到控制的效果心裏面總歸要放心一點,因此我開始去網上選擇攝像頭模塊。無意間看到了這款攝像頭,當時就是被價格所吸引了,我是31入手的,拿到手後燒錄了安信可官方的固件後,效果還不錯。因此就開始了對這個模塊的探尋之路。這個模塊我倒沒有深入去具體查看它的代碼那些,我就想使用它的視頻功能就行了,也不需要人臉識別(人臉識別太差了),需要的就是能夠流暢的觀察到視頻就行了。最開始的時候代碼用的是arduino的官方ESP32中的camera那個例程,這個例程中功能很多,可以改變視頻質量,視頻格式,人臉識別等等。不過這個顯得有點雞肋了。因此最後我在社區找到了一個精簡版的,就是直接觀看攝像頭的,很流暢,也很好用,地址爲https://randomnerdtutorials.com/esp32-cam-video-streaming-web-server-camera-home-assistant/ ,在這裏感謝作者了。關於燒錄這些跟着教程走是沒有一點問題的。在最後得到視頻的播放地址後

就能夠在局域網下通過瀏覽器來進行觀看了(後面會說通過4G網來查看),很遺憾的是這個視頻同時只能有一個人觀看,在增加客戶端去用瀏覽器觀看是看不到的。還有就是瀏覽器也有要求,最好是用火狐或者谷歌的瀏覽器。這一步完成了,這個ESP32CAM端就算完成了。接下來說一下安卓端。

安卓端: 

大多數同學都對這個比較感興趣,樓主呢對安卓的編程也不太會,這個成了一個大問題,很多做聯動的都沒辦法實現。學習Java編安卓的時候效率很慢,也沒有時間。後來偶然解除了易安卓,發現上手挺快的,很多的項目我都是用易安卓去完成的,因此,我給的方法就是易安卓,Java編應該也是類似的。這裏請見諒!我們可以發現ESP32CAM是通過瀏覽器來進行查看的,因此編程的時候通過加入瀏覽器類庫就能夠實現了。需要類庫的同學可以將郵箱留下,我發給你。下面看一下界面

思路也很簡單 ,首先在ESP32CAM端建立一個UDP的服務器,然後自己規定協議,比如這裏我規定1是打開燈光,0是關閉燈光,然後在瀏覽器的類庫上寫上轉到ESP32CAM的視頻地址上,只要安卓端按下按鈕後,會發送對應的數據,CAM收到後作出控制就行了。

 程序的思路就是這樣,也很簡單,至於UDP的建立這個就根據arduino上面自帶的例程改一下就行了。我也是根據此,寫完了自己的一個項目文件

後來又經過了一次修改,配合舵機後完成的效果很棒。我的項目的源碼就不公開了,不過萬變不離其宗,都是這個原理的。最後說一下4G的查看。

4G遠程查看 

先上效果

這裏用到了內網穿透的效果,首先要確保自己家裏面是公網的ip,大多數的同學都不是,最好就打電話給運行商說一下將自己家裏面改爲公網ip,然後將家裏的光貓改爲橋接模式,意思就是光貓只負責將光信號轉化爲電信號,而不做撥號路由的功能,這樣路由器端就能夠通過撥號獲取到公網的ip,後面的工作就好做多了。

首先光貓的LAN口接入路由器的wan口,一旦光貓改爲橋接模式後,路由器就需要撥號上網了(注意打電話給客服獲取上網的賬號和密碼),然後路由器wan口模式改爲撥號上網 ,然後你的wan口就會獲取一個公網的ip地址

然後在路由器高級功能裏面找到端口映射或者叫做虛擬服務器

 

先說一下訪問的方式,比如你要訪問ip爲192.168.3.1,然後在瀏覽器輸入這個ip訪問的時候默認你訪問的是80端口,而80端口大多數都被運營商給屏蔽了,因此最好選擇其他的端口,我這裏選擇100端口,那麼就應該在瀏覽器輸入192.168.3.1:100。好的接下來說這個虛擬服務器的設置,外部端口號意思就是我們訪問的端口號,我們選擇的用100端口來訪問,則外部端口號輸入100

而這個內部端口號指的是你需要訪問的局域網IP所用到的端口。我們的cam用的瀏覽器web訪問用的就是80端口,因此內部端口號設置爲80.而這個ip地址自然填的就是esp32cam的局域網ip。協議選擇all,然後保存後就完成了設置。

比如現在我獲取到的公網IP是110.189.213.3,那麼在4G網下,我訪問瀏覽器輸入110.189.213.3:100則這個請求首先會轉發到路由器端,然後路由器一看,尋思這個端口是設置轉發了的嘛,所以他會將這個請求直接轉到局域網cam的IP且訪問的端口是80.那麼就無形之間在局域網和遠程建立了一個連接。就能夠實現cam的遠程查看,而不侷限於局域網了。

結束語:

其實還有很多有意思的東西我都還想寫,最近因爲忙着考試也沒時間去寫,比如:ESP8266和天貓精靈的配合控制,基於雲端的智能控制,ESP8266做爲雲端服務器,藍橋杯的設計模板,還有關於路由器的設置,軟路由的使用,筆記本做軟路由等等很多有意思的我都想後面有空和大家分享。希望有興趣的朋友可以關注,點贊,轉發,哈哈,畢竟有了人看,纔會有更新的動力啊。如果有什麼問題不懂可以在評論下面討論

-------------------------2020/4/10

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章