基於stm32的遠端監控餵食器

2020-10-28 15:01:01

wifi智慧小車模組+花生殼+STM32+APP

實現功能為視訊傳輸與遠端控制

1.wifi智慧小車模組

在這裡插入圖片描述
該模組可以連線你所在地方的wifi,先使其成為存取該模組的內網。步驟1’通過網線或該模組的熱點與電腦連線,在路由器管理頁面(192.168.1.1)設定連線所在地方的網路,介面和視訊/控制埠設定。再通過winscp 這個相當與Windows下面的檔案管理器軟體,利用它我們可以很方便地把檔案從windows裡面拖到WIFI板上。2’登陸所連線地方WiFi的路由器管理頁面。在轉發規則裡面設定好內網埠,動態DNS登陸花生殼賬號。

2. 花生殼原理

首先簡單說一下花生殼,這是一個提供動態域名解析服務的商業化產品。所謂域名解析,常被稱作DNS,也就是將對人類友好的域名與對計算機友好的點分式IP地址做關聯的一個系統服務。打個比方,這個服務類似於手機裡面的通訊錄軟體,它的作用就是將人能記住的姓名與一串毫無意義,很難記憶的電話號碼關聯起來。那麼撥電話時,只需要在通訊錄中查詢姓名就可以了。
在大多數情況下,通訊錄軟體都能很好的工作,可正如這個世界本身的不完美,完美的軟體也不存在,通訊錄一個最明顯的bug就是,一旦有人換了號碼,通訊錄就無法跟蹤這種變化。回到我們討論的DNS,情況就成了這樣:有人申請了一個域名,在自己的筆記型電腦上做了一個網站,並將網站的域名關聯到自家上網的IP地址後,全世界任何一個角落的人都可以通過這個域名存取他的網站。可如果這個人白天是在工作單位使用筆記型電腦呢,此時只能通過工作單位的IP才能存取網站,但是DNS那裡登記的卻是一個家庭IP,於是網站成了一個悲劇。
花生殼很好的修正了這個bug,如果域名所對應的IP地址經常會更換,那麼可以註冊後使用花生殼的軟體,之後無論在哪裡上網,域名都會和當前的上網IP建立對應關係。

總之你下載花生殼app,在上面所連線的WiFi下登陸,即相當於有了一個伺服器。利用它可實現外網存取。
在這裡插入圖片描述

花生殼,雖然賬號免費註冊但內穿透要付費,個人用的話6塊錢體驗版就可以,一個月1G流量。設定方法:1’登陸花生殼賬號,點內網穿透。2’在上圖‘新增對映’中填寫內網IP,對應的埠,名字隨便起。3’複製分配的外網存取地址與花生殼埠號。
另外,也可以使用花生棒。花生棒的作用在於代替了花生殼在wifi下登陸的操作,其他啥用沒有。花生棒一頭用網線連路由器,一頭usb口連電源。內網穿透啥的都還是靠花生殼,流量啥的該掏錢還得掏錢。

3. STM32微控制器

wifi智慧模組與微控制器串列埠相連,通過下位機讀取模組網路發來的資訊(字元等),完成對應的指令操作。餵食器功能是驅動舵機(選擇投喂的種類)和電機(主要是投放功能)。僅以智慧雙料餵食器為例部分程式碼片如下`在這裡

while(1)
	{
		  if(USART_RX_STA)
		{ 
				switch (USART_RX_BUF[0])
     	{		
		case 'a':     					        //開啟a孔放a料
		     TIM_SetCompare2( TIM3,750); //600     //舵機左轉
				GPIO_SetBits(GPIOB,GPIO_Pin_8);   //啟動電機旋轉。
				 delay_ms(500);
		    TIM_SetCompare2( TIM3,1500);      //復位舵機
				USART_RX_STA=0;
	           break;
	    case 'd' :                          //開啟b孔放b料
		    GPIO_SetBits(GPIOB,GPIO_Pin_8);   //啟動電機旋轉。
		    TIM_SetCompare2( TIM3,2460);	     //舵機右轉90’
		    delay_ms(500);TIM_SetCompare2( TIM3,1500); 	
				USART_RX_STA=0;
		     break;		 
       case 's' :                          //停止
           printf("stop");
    	  TIM_SetCompare2( TIM3,1500); delay_ms(500);	
	    	GPIO_ResetBits(GPIOB,GPIO_Pin_8);
		   USART_RX_STA=0;
           break;		 
     default :
      printf("unknown");
	  TIM_SetCompare2( TIM3,1500); 	GPIO_ResetBits(GPIOB,GPIO_Pin_8);
		USART_RX_STA=0;
       break;
       }
    }
    }

流程圖

4. 手機端APP

使用我上傳過的wifi小車app或其他的都可以手機端app
App是通過SOKET程式設計獲取公網IP。在APP設定頁面中,視訊地址填寫第2條中的外網存取地址,控制地址IP(需要在電腦上ping一下花生殼域名,出現的ip就是。有些公共場合ping不通,不影響使用)埠號為花生殼的埠號。
做完這些你就可以秀操作了。。。

注意:wifi模組在剛上電時會網路設定,亂髮一堆資料。為防止主控卡死,可以設定一些延時(可能接近一分鐘)或者先給模組上電再給主控上電。