一個(gè)最小的物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)方案及源碼

2018-02-24 15:43 更新

原文出處:https://www.phodal.com/blog/bare-minimum-iot/
Phodal's Blog?Phodal's??zenthink

或許這個(gè)可以當(dāng)成是你的畢業(yè)設(shè)計(jì)又或者你可以用它來(lái)控制你想控制的東西,總之你可以用它來(lái)做一個(gè)最小的物聯(lián)網(wǎng)系統(tǒng)。

不過(guò),在這里可能沒(méi)有那么復(fù)雜的功能,因?yàn)閺?qiáng)調(diào)的是最小。BareMinimum,這也是為什么我沒(méi)有改Arduino上面的工程名的原因,因?yàn)樗亲钚〉模?PS:大家都懂的,如果玩硬件)。物聯(lián)網(wǎng),這個(gè)東西一直很復(fù)雜,也不是很復(fù)雜,只是從硬件到軟件涉及到的東西過(guò)多了,不止一點(diǎn)點(diǎn)。當(dāng)然寫在本文的方案也有很多,不止這一個(gè),只是這個(gè)算是基本的最小的,僅此而已。(轉(zhuǎn)載保留?Phodal's Blog?Phodal's??zenthink)?

關(guān)于

源碼:https://github.com/phodal/iot

文檔可能沒(méi)有足夠的詳細(xì),因?yàn)槭O碌牟糠侄伎梢訥oogle到,這里就不寫詳細(xì)了。

框架:

  • PHP Laravel?
  • jQuery (Javascript 主要用于Ajax)
  • jQuery Mobile(可選)(我覺(jué)得我有點(diǎn)懶,于是從原來(lái)做的項(xiàng)目直接拿了出來(lái))
  • Bootstrap (可選) (其實(shí)沒(méi)有多大實(shí)際用處,只是因?yàn)楹每春蚸Query Mobile一樣)

語(yǔ)言:

Processing/C/C++ Arduino用?

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

PHP 我學(xué)得不是很好,因?yàn)長(zhǎng)aravel沒(méi)有讓我學(xué)好,但是讓我能做想做的事。

相關(guān)文章

一個(gè)最小的物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)方案及源碼

最小物聯(lián)網(wǎng)系統(tǒng)(一)——系統(tǒng)組成

最小物聯(lián)網(wǎng)系統(tǒng)(二)——RESTful

最小物聯(lián)網(wǎng)系統(tǒng)(三)——?jiǎng)?chuàng)建RESTful

最小物聯(lián)網(wǎng)系統(tǒng)(四)——詳解Laravel的RESTful

最小物聯(lián)網(wǎng)系統(tǒng)(五)——Laravel RESTful模板化

最小物聯(lián)網(wǎng)系統(tǒng)(六)——Ajax打造可視化

最小物聯(lián)網(wǎng)系統(tǒng)(七)——與服務(wù)器通訊

最小物聯(lián)網(wǎng)系統(tǒng)(八)——與單片機(jī)通訊

最小物聯(lián)網(wǎng)系統(tǒng)(九)——Android客戶端

最小物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)——給Laravel添加測(cè)試

最小物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)——使用說(shuō)明

最小物聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)——如何添加硬件

相關(guān)知識(shí)

搞硬件的同學(xué)需要重點(diǎn)了解的知識(shí)

  • RESTful
  • Ajax
  • JSON

搞軟件的同學(xué)需要重要了解的知識(shí)

  • 串口通信
  • 高低電平

關(guān)于服務(wù)器

  • Nginx 需要配置,具體配置可以參照github上面的代碼
  • LNMP 直接用上面的會(huì)比較簡(jiǎn)單,但是可能也會(huì)遇到一些問(wèn)題。
  • Phpmyadmin 最好需要有這個(gè),如果不是很精通MYSQL

補(bǔ)充說(shuō)明

Arduino不是必需的,只要你懂得如何用你的芯片進(jìn)行串口通信。

考慮到Raspberry PI的成本可能會(huì)有點(diǎn)高,你可以試著用OpenWRT Linux,主要用在路由器用的,上面可以跑Python?;蛘叩鹊冗^(guò)些時(shí)候的小米路由器,可以加這個(gè)在上面。

如果你沒(méi)有服務(wù)器沒(méi)有Raspberry PI,那就找個(gè)路由器來(lái)當(dāng)服務(wù)器吧,相關(guān)文章如下

Openwrt python,openwrt上使用Python
對(duì)了,如果你覺(jué)得哪里有問(wèn)題記得在GITHUB上提出來(lái),而不是在原文。

注意

!請(qǐng)盡可能少我的用我的網(wǎng)站做測(cè)試

設(shè)計(jì)方案

系統(tǒng)框架圖

如何開(kāi)始

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

創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),如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,添加,詳細(xì)可參考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;
    }

測(cè)試

    sudo python python/get.py

再根據(jù)需要修改端口,視真實(shí)的端口而修改。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)