或许这个可以当成是你的毕业设计,又或者你可以用它来控制你想控制的东西,总之你可以用它来做一个最小的物联网系统。

不过,在这里可能没有那么复杂的功能,因为强调的是最小。BareMinimum,这也是为什么我没有改Arduino上面的工程名的原因,因为它是最小的(PS:大家都懂的,如果玩硬件)。物联网,这个东西一直既复杂也不是很复杂,只是从硬件到软件涉及的东西过多了,不止一点点。当然本文提到的东西的实现方案也有很多,不止这一个,只是这个基本上算是最小的,仅此而已。(转载保留 Phodal's Blog Phodal's  zenthink


关于

源码:https://github.com/gmszone/iot

文档可能没有足够地详细,因为剩下的部分都可以Google到,这里就不写详细了。

框架:

  • PHP Laravel 
  • jQuery (JavaScript 主要用于Ajax)
  • jQuery Mobile(可选)(我觉得我有点懒,于是从原来做的项目直接拿了出来)
  • Bootstrap (可选)(其实没有多大实际用处,只是因为好看和jQuery Mobile一样)

语言:

Processing/C/C++ Arduino用 

Python 如果你有Raspberry Pi或者与之相近的都可以,只要可以与Arduino串口通信

PHP 我学得不是很好,因为Laravel没有让我学好,但是让我能做想做的事。

相关文章及专栏

  1. Laravel RESTful快速部署指南(一)
  2. Laravel RESTful快速部署指南(二)
  3. Laravel RESTful快速部署指南(三)

专栏

Laravel

相关知识

搞硬件的同学需要重点了解的知识

  • RESTful
  • Ajax
  • JSON

搞软件的同学需要重要了解的知识

  • 串口通信
  • 高低电平

关于服务器

  • Nginx 需要配置,具体配置可以参照github上面的代码
  • LNMP 直接用上面的会比较简单,但是可能也会遇到一些问题。
  • Phpmyadmin 最好需要有这个,如果不是很精通MYSQL

补充说明

Arduino不是必需的,只要你懂得如何用你的芯片进行串口通信。

考虑到Raspberry PI的成本可能会有点高,你可以试着用OpenWRT Linux,主要用在路由器用的,上面可以跑Python。或者等等过些时候的小米路由器,可以加这个在上面。

如果你没有服务器没有Raspberry PI,那就找个路由器来当服务器吧,相关文章如下:

Openwrt python,openwrt上使用Python
对了,如果你觉得哪里有问题,记得在GITHUB上提出来,而不是在原文。

注意

!请尽可能少我的用我的网站做测试


设计方案

系统框架图


如何开始

git clone https://github.com/gmszone/iot.git
cp iot/rest PATH_OF_HTDOCS/

创建一个新的数据库,如iot 编辑 app/config/database.php


    'mysql' => array(
    'driver' => 'mysql',
    'host' => 'localhost',
    'database' => 'iot',
    'username' => 'root',
    'password' => ' ',
    '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

再根据需要修改端口,视真实的端口而修改。