> 原文出處: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上提出來,而不是在原文。
### 注意
!請盡可能少我的用我的網站做測試
## 設計方案
### 系統框架圖

## 如何開始
~~~
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
~~~
再根據需要修改端口,視真實的端口而修改。