家居服务类机器人之WIFI智能喂食器

wifi智能小车模块+花生壳+STM32+APP

实现功能为视频传输与远程控制

1.wifi智能小车模块

家居服务类机器人之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下登陆,即相当于有了一个服务器。利用它可实现外网访问。
家居服务类机器人之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不通,不影响使用)端口号为花生壳的端口号。
做完这些你就可以秀操作了。。。