一个最小的物联网系统设计方案及源码
最后更新于:2022-04-01 15:43:05
> 原文出处:https://www.phodal.com/blog/bare-minimum-iot/
[Phodal's Blog](http://www.phodal.com/blog/bare-minimum-iot/) [Phodal's zenthink](http://blog.csdn.net/phodal)
或许这个可以当成是你的毕业设计又或者你可以用它来控制你想控制的东西,总之你可以用它来做一个最小的物联网系统。
不过,在这里可能没有那么复杂的功能,因为强调的是最小。BareMinimum,这也是为什么我没有改Arduino上面的工程名的原因,因为它是最小的,(PS:大家都懂的,如果玩硬件)。物联网,这个东西一直很复杂,也不是很复杂,只是从硬件到软件涉及到的东西过多了,不止一点点。当然写在本文的方案也有很多,不止这一个,只是这个算是基本的最小的,仅此而已。(转载保留 [Phodal's Blog](http://www.phodal.com/blog/bare-minimum-iot/) [Phodal's zenthink](http://blog.csdn.net/phodal))
## 关于
源码:[https://github.com/phodal/iot](https://github.com/phodal/iot)
文档可能没有足够的详细,因为剩下的部分都可以Google到,这里就不写详细了。
### 框架:
* PHP Laravel
* jQuery (Javascript 主要用于Ajax)
* jQuery Mobile(可选)(我觉得我有点懒,于是从原来做的项目直接拿了出来)
* Bootstrap (可选) (其实没有多大实际用处,只是因为好看和jQuery Mobile一样)
### 语言:
Processing/C/C++ Arduino用
Python 如果你有Raspberry Pi或者与之相近的都可以,只要可以与Arduino串口通信
PHP 我学得不是很好,因为Laravel没有让我学好,但是让我能做想做的事。
### 相关文章
[一个最小的物联网系统设计方案及源码](http://www.phodal.com/blog/bare-minimum-iot)
[最小物联网系统(一)——系统组成](http://www.phodal.com/blog/bare-minimum-iot-system-structure/)
[最小物联网系统(二)——RESTful](http://www.phodal.com/blog/bare-minimum-iot-system-restful/)
[最小物联网系统(三)——创建RESTful](http://www.phodal.com/blog/bare-minimum-iot-system-create-restful/)
[最小物联网系统(四)——详解Laravel的RESTful](http://www.phodal.com/blog/bare-minimum-iot-system-about-restful/)
[最小物联网系统(五)——Laravel RESTful模板化](http://www.phodal.com/blog/bare-minimum-iot-system-restful-template/)
[最小物联网系统(六)——Ajax打造可视化](http://www.phodal.com/blog/bare-minimum-iot-system-ajax/)
[最小物联网系统(七)——与服务器通讯](http://www.phodal.com/blog/bare-minimum-iot-system-date-commucation/)
[最小物联网系统(八)——与单片机通讯](http://www.phodal.com/blog/bare-minimum-iot-system-mcu-commucation/)
[最小物联网系统(九)——Android客户端](http://www.phodal.com/blog/bare-minimum-iot-system-android-example/)
[最小物联网系统设计——给Laravel添加测试](http://www.phodal.com/blog/bare-minimum-iot-system-add-test-for-laravel/)
[最小物联网系统设计——使用说明](http://www.phodal.com/blog/bare-minimum-iot-system-how-to-use/)
[最小物联网系统设计——如何添加硬件](http://www.phodal.com/blog/bare-minimum-iot-system-add-hardware-devices/)
### 相关知识
#### 搞硬件的同学需要重点了解的知识
* RESTful
* Ajax
* JSON
#### 搞软件的同学需要重要了解的知识
* 串口通信
* 高低电平
### 关于服务器
* Nginx 需要配置,具体配置可以参照github上面的代码
* LNMP 直接用上面的会比较简单,但是可能也会遇到一些问题。
* Phpmyadmin 最好需要有这个,如果不是很精通MYSQL
### 补充说明
Arduino不是必需的,只要你懂得如何用你的芯片进行串口通信。
考虑到Raspberry PI的成本可能会有点高,你可以试着用OpenWRT Linux,主要用在路由器用的,上面可以跑Python。或者等等过些时候的小米路由器,可以加这个在上面。
如果你没有服务器没有Raspberry PI,那就找个路由器来当服务器吧,相关文章如下
[Openwrt python,openwrt上使用Python
](http://blog.csdn.net/phodal/article/details/8521712)对了,如果你觉得哪里有问题记得在GITHUB上提出来,而不是在原文。
### 注意
!请尽可能少我的用我的网站做测试
## 设计方案
### 系统框架图
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-09-25_5604f33b99e8f.jpg)
## 如何开始
~~~
git clone https://github.com/phodal/iot.git
cp iot/rest PATH_OF_HTDOCS/
~~~
创建一个新的数据库,如iot 编辑 app/config/database.php
~~~
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'iot',
'username' => 'root',
'password' => '940217',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
~~~
配置nginx,添加,详细可参考nginx下面的配置
~~~
# include /etc/nginx/includes/enforce_non_www;
if ($host ~ ^www.(.))
{
set $host_without_www $1;
rewrite ^/(.)$ $scheme://$host_without_www/$1 permanent;
}
# Check if file exists
if (!-e $request_filename)
{
rewrite ^/(.)$ /index.php?/$1 last;
break;
}
~~~
测试
~~~
sudo python python/get.py
~~~
再根据需要修改端口,视真实的端口而修改。