在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近在业余时间玩玩树莓派,刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚,从而控制LED发光二极管的闪烁,后来觉得,是不是可以使用HTML5+jQuery等流行的前端技术做一个简单的Web站点,让树莓派搭载这个站点,通过手机或者平板电脑来控制树莓派。经过一番调研,考虑如下:
基于这样的前提,鉴于目前Mono在Linux下的出色表现,想想还是自己使用.NET开发一个轻量型的Web服务器吧,第一期版本让它既支持静态文件的访问服务,也支持RESTful API的调用,在RESTful API中可以暴露访问树莓派GPIO引脚的接口,供HTML5+jQuery的单页面应用调用,于是也就实现了在任意设备上通过浏览器来控制树莓派的目的。 Raspkate项目Raspkate项目的名字,我想就是两个方面:Rasp,它来源于树莓派的英文名字Raspberry Pi,有表示“小、轻量”的意义,而Kate则寓意能够充分发挥开发者的想象,对其进行扩展和定制。Raspkate就是这样一款基于.NET Framework、由C#开发的轻量型Web服务器,它的核心部分是一个HttpListener对象,通过多线程模型将HTTP请求异步委托给HttpListener执行。当一个HTTP请求被接受的时候,Raspkate会根据请求的格式或类型,分配特定的模块(Module)对请求进行处理,然后将处理结果返回。如果请求的是一个文件,那么Raspkate会返回文件的内容,如果是一个RESTful请求,则Raspkate会使用已经注册的RESTful API控制器来处理这个请求,并将计算结果以JSON格式返回。 开源地址Raspkate项目是开源的,代码库地址是:https://github.com/daxnet/raspkate,所使用的许可协议是GPL2.0,(因为其所使用的与树莓派相关的组件是第三方的由GPL2.0授权的开源库),因此,不能在商业环境中使用此项目。 应用场景您可以在以下场景中使用Raspkate:
整体架构下图展示了Raspkate项目的整体架构设计: 可以看到,在Raspkate核心部分就是一个HTTP Listener组件,并且由Module和Configuration支撑Raspkate完成HTTP请求处理。每个模块可以包含多个HTTP Handler,这在定义模块的时候可以对多个HTTP Handler进行注册。 Raspkate配置信息(也就是上图中的Configuration)非常简单,下图就是这个配置信息的类型视图,在RaspkateConfiguration对象上,设定了HttpListener所使用的Prefix,而Modules部分则指定了Raspkate扫描可用模块的路径,IsRelative指定模块路径是否是相对的。 以下是一个标准的Raspkate配置文件:
代码使用首先,使用Git客户端将代码库克隆到本地:
然后,在装有MSBuild的Windows机器上,执行build.bat命令:
如果是在装有Mono的Linux机器上,则相应地执行build.sh即可。 在编译完成之后,进入bin目录,执行RaspkateService.exe即可(注意:如果是在树莓派中执行,并且希望加载树莓派支持模块,则需要通过 sudo ./RaspkateService.exe 命令执行,以获得root权限)。在成功启动后,你应该看到类似下面的画面: 这时,打开浏览器,在浏览器中输入http://127.0.0.1:9023,您应该可以看到类似以下的画面: 这表示您已经成功运行Raspkate服务,此页面显示了运行服务器相关的信息。注意:如果你希望你的Raspkate服务能够在同网络的其它机器访问,请在执行RaspkateService.exe之前,将RaspkateService.exe.config文件中的Prefix设置修改为:http://+:9023/。但这样做可能会牵涉到用户访问控制的问题,如果将Prefix改为该值后,出现Raspkate无法启动的问题,请先在Command Line执行:
演示这里有几张屏幕截图,展示了Raspkate提供的相关功能。 获取并显示树莓派信息以下屏幕截取自我的手机浏览器,分别显示了我的树莓派系统信息、树莓派主板信息以及树莓派中所有引脚的名称、类型和电平值列表。 使用HTML5+jQuery控制发光二极管的点亮和熄灭状态前端是一个寄宿在Raspkate上的一个HTML5+jQuery的单页面应用,后端是运行Raspkate的树莓派。 出处:https://www.cnblogs.com/Leo_wl/p/5319481.html 最近在业余时间玩玩树莓派,刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚,从而控制LED发光二极管的闪烁,后来觉得,是不是可以使用HTML5+jQuery等流行的前端技术做一个简单的Web站点,让树莓派搭载这个站点,通过手机或者平板电脑来控制树莓派。经过一番调研,考虑如下:
基于这样的前提,鉴于目前Mono在Linux下的出色表现,想想还是自己使用.NET开发一个轻量型的Web服务器吧,第一期版本让它既支持静态文件的访问服务,也支持RESTful API的调用,在RESTful API中可以暴露访问树莓派GPIO引脚的接口,供HTML5+jQuery的单页面应用调用,于是也就实现了在任意设备上通过浏览器来控制树莓派的目的。 Raspkate项目Raspkate项目的名字,我想就是两个方面:Rasp,它来源于树莓派的英文名字Raspberry Pi,有表示“小、轻量”的意义,而Kate则寓意能够充分发挥开发者的想象,对其进行扩展和定制。Raspkate就是这样一款基于.NET Framework、由C#开发的轻量型Web服务器,它的核心部分是一个HttpListener对象,通过多线程模型将HTTP请求异步委托给HttpListener执行。当一个HTTP请求被接受的时候,Raspkate会根据请求的格式或类型,分配特定的模块(Module)对请求进行处理,然后将处理结果返回。如果请求的是一个文件,那么Raspkate会返回文件的内容,如果是一个RESTful请求,则Raspkate会使用已经注册的RESTful API控制器来处理这个请求,并将计算结果以JSON格式返回。 开源地址Raspkate项目是开源的,代码库地址是:https://github.com/daxnet/raspkate,所使用的许可协议是GPL2.0,(因为其所使用的与树莓派相关的组件是第三方的由GPL2.0授权的开源库),因此,不能在商业环境中使用此项目。 应用场景您可以在以下场景中使用Raspkate:
整体架构下图展示了Raspkate项目的整体架构设计: 可以看到,在Raspkate核心部分就是一个HTTP Listener组件,并且由Module和Configuration支撑Raspkate完成HTTP请求处理。每个模块可以包含多个HTTP Handler,这在定义模块的时候可以对多个HTTP Handler进行注册。 Raspkate配置信息(也就是上图中的Configuration)非常简单,下图就是这个配置信息的类型视图,在RaspkateConfiguration对象上,设定了HttpListener所使用的Prefix,而Modules部分则指定了Raspkate扫描可用模块的路径,IsRelative指定模块路径是否是相对的。 以下是一个标准的Raspkate配置文件:
代码使用首先,使用Git客户端将代码库克隆到本地:
然后,在装有MSBuild的Windows机器上,执行build.bat命令:
如果是在装有Mono的Linux机器上,则相应地执行build.sh即可。 在编译完成之后,进入bin目录,执行RaspkateService.exe即可(注意:如果是在树莓派中执行,并且希望加载树莓派支持模块,则需要通过 sudo ./RaspkateService.exe 命令执行,以获得root权限)。在成功启动后,你应该看到类似下面的画面: 这时,打开浏览器,在浏览器中输入http://127.0.0.1:9023,您应该可以看到类似以下的画面: 这表示您已经成功运行Raspkate服务,此页面显示了运行服务器相关的信息。注意:如果你希望你的Raspkate服务能够在同网络的其它机器访问,请在执行RaspkateService.exe之前,将RaspkateService.exe.config文件中的Prefix设置修改为:http://+:9023/。但这样做可能会牵涉到用户访问控制的问题,如果将Prefix改为该值后,出现Raspkate无法启动的问题,请先在Command Line执行:
演示这里有几张屏幕截图,展示了Raspkate提供的相关功能。 获取并显示树莓派信息以下屏幕截取自我的手机浏览器,分别显示了我的树莓派系统信息、树莓派主板信息以及树莓派中所有引脚的名称、类型和电平值列表。 使用HTML5+jQuery控制发光二极管的点亮和熄灭状态前端是一个寄宿在Raspkate上的一个HTML5+jQuery的单页面应用,后端是运行Raspkate的树莓派。 最近在业余时间玩玩树莓派,刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚,从而控制LED发光二极管的闪烁,后来觉得,是不是可以使用HTML5+jQuery等流行的前端技术做一个简单的Web站点,让树莓派搭载这个站点,通过手机或者平板电脑来控制树莓派。经过一番调研,考虑如下:
基于这样的前提,鉴于目前Mono在Linux下的出色表现,想想还是自己使用.NET开发一个轻量型的Web服务器吧,第一期版本让它既支持静态文件的访问服务,也支持RESTful API的调用,在RESTful API中可以暴露访问树莓派GPIO引脚的接口,供HTML5+jQuery的单页面应用调用,于是也就实现了在任意设备上通过浏览器来控制树莓派的目的。 Raspkate项目Raspkate项目的名字,我想就是两个方面:Rasp,它来源于树莓派的英文名字Raspberry Pi,有表示“小、轻量”的意义,而Kate则寓意能够充分发挥开发者的想象,对其进行扩展和定制。Raspkate就是这样一款基于.NET Framework、由C#开发的轻量型Web服务器,它的核心部分是一个HttpListener对象,通过多线程模型将HTTP请求异步委托给HttpListener执行。当一个HTTP请求被接受的时候,Raspkate会根据请求的格式或类型,分配特定的模块(Module)对请求进行处理,然后将处理结果返回。如果请求的是一个文件,那么Raspkate会返回文件的内容,如果是一个RESTful请求,则Raspkate会使用已经注册的RESTful API控制器来处理这个请求,并将计算结果以JSON格式返回。 开源地址Raspkate项目是开源的,代码库地址是:https://github.com/daxnet/raspkate,所使用的许可协议是GPL2.0,(因为其所使用的与树莓派相关的组件是第三方的由GPL2.0授权的开源库),因此,不能在商业环境中使用此项目。 应用场景您可以在以下场景中使用Raspkate:
整体架构下图展示了Raspkate项目的整体架构设计: 可以看到,在Raspkate核心部分就是一个HTTP Listener组件,并且由Module和Configuration支撑Raspkate完成HTTP请求处理。每个模块可以包含多个HTTP Handler,这在定义模块的时候可以对多个HTTP Handler进行注册。 Raspkate配置信息(也就是上图中的Configuration)非常简单,下图就是这个配置信息的类型视图,在RaspkateConfiguration对象上,设定了HttpListener所使用的Prefix,而Modules部分则指定了Raspkate扫描可用模块的路径,IsRelative指定模块路径是否是相对的。 以下是一个标准的Raspkate配置文件:
代码使用首先,使用Git客户端将代码库克隆到本地:
然后,在装有MSBuild的Windows机器上,执行build.bat命令:
如果是在装有Mono的Linux机器上,则相应地执行build.sh即可。 在编译完成之后,进入bin目录,执行RaspkateService.exe即可(注意:如果是在树莓派中执行,并且希望加载树莓派支持模块,则需要通过 sudo ./RaspkateService.exe 命令执行,以获得root权限)。在成功启动后,你应该看到类似下面的画面: 这时,打开浏览器,在浏览器中输入http://127.0.0.1:9023,您应该可以看到类似以下的画面: 这表示您已经成功运行Raspkate服务,此页面显示了运行服务器相关的信息。注意:如果你希望你的Raspkate服务能够在同网络的其它机器访问,请在执行RaspkateService.exe之前,将RaspkateService.exe.config文件中的Prefix设置修改为:http://+:9023/。但这样做可能会牵涉到用户访问控制的问题,如果将Prefix改为该值后,出现Raspkate无法启动的问题,请先在Command Line执行:
演示这里有几张屏幕截图,展示了Raspkate提供的相关功能。 获取并显示树莓派信息以下屏幕截取自我的手机浏览器,分别显示了我的树莓派系统信息、树莓派主板信息以及树莓派中所有引脚的名称、类型和电平值列表。 使用HTML5+jQuery控制发光二极管的点亮和熄灭状态前端是一个寄宿在Raspkate上的一个HTML5+jQuery的单页面应用,后端是运行Raspkate的树莓派。 |
请发表评论