{ "info": { "author": "Phodal.Gmszone", "author_email": "gmszone@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "#Minimum Internet of Things#\nA Minimum IOT with arduino and raspberry pi.\n\n\u4e00\u4e2a\u6700\u5c0f\u7684\u7269\u8054\u7f51\u7cfb\u7edf\u8bbe\u8ba1\u65b9\u6848\u53ca\u6e90\u7801\n\n android/ \u4e00\u4e2a\u6700\u5c0f\u7684Android\u7a0b\u5e8f\u5b9e\u4f8b\n rest/ PHP Laravel Framework to create RESTful API\n python/ \u7b80\u5355\u7684pyhon\u793a\u4f8b\n hardware/ \u786c\u4ef6\u4e32\u53e3\u901a\u4fe1\u6536\u96c6\n -/ arduino Arduino\u677f\n doc/ \u6587\u6863 \u7b80\u4ecbppt nginx\u914d\u7f6e \u7cfb\u7edf\u6846\u67b6\u56fe\n dashboard/ \u57fa\u4e8eruby\u6846\u67b6dashing\u7684dashboard\n\n##\u7b80\u8981\u7684\u521d\u59cb\u5316\u4ee3\u7801\u8bf4\u660e##\n\u4ee3\u7801\u4e2d\u56e0\u4e3a\u6709\u4e24\u4e2a\u5b50\u6a21\u5757\uff0c\u5373Android\u4e0eREST\uff0cAndroid\u662f\u4e00\u4e2a\u7b80\u5355\u7684Android\u7a0b\u5e8f\u793a\u4f8b,REST\u4f5c\u4e3a\u5b50\u6a21\u5757\u7684\u539f\u56e0\u662f\u8003\u8651\u5230\u540e\u671f\u4f1a\u7528\u66f4\u7b80\u5355\u7684\u6e90\u7801\u6765\u66ff\u6362\u3002\u4f46\u662flaravel\u4f5c\u4e3a\u4e00\u4e2a\u8fd0\u884c\u73af\u5883\uff0c\u8fd8\u662f\u5f88\u7406\u60f3\u7684\u3002\n\n\u5148clone\n\n git clone https://github.com/gmszone/iot.git iot \n\n\u5b50\u6a21\u5757\n \n git submodule init\n git submodule update\n\n \n\n \n\n##\u7cfb\u7edf\u6846\u67b6\u56fe##\n\n![](https://raw.github.com/gmszone/iot/master/doc/dot/struct.jpg)\n\n##Documention##\n\n[Wiki][3]\n\n[\u4e00\u4e2a\u6700\u5c0f\u7684\u7269\u8054\u7f51\u7cfb\u7edf\u8bbe\u8ba1\u65b9\u6848\u53ca\u6e90\u7801][2]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\uff08\u4e00\uff09\u2014\u2014\u7cfb\u7edf\u7ec4\u6210][4]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\uff08\u4e8c\uff09\u2014\u2014RESTful][5]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\uff08\u4e09\uff09\u2014\u2014\u521b\u5efaRESTful][6]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\uff08\u56db\uff09\u2014\u2014\u8be6\u89e3Laravel\u7684RESTful][7]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\uff08\u4e94\uff09\u2014\u2014Laravel RESTful\u6a21\u677f\u5316][8]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\uff08\u516d\uff09\u2014\u2014Ajax\u6253\u9020\u53ef\u89c6\u5316][9]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\uff08\u4e03\uff09\u2014\u2014\u4e0e\u670d\u52a1\u5668\u901a\u8baf][10]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\uff08\u516b\uff09\u2014\u2014\u4e0e\u5355\u7247\u673a\u901a\u8baf][11]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\uff08\u4e5d\uff09\u2014\u2014Android\u5ba2\u6237\u7aef][12]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\u8bbe\u8ba1\u2014\u2014\u7ed9Laravel\u6dfb\u52a0\u6d4b\u8bd5][15]\n\n[\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\u2014\u2014Dashboard][16]\n\n##How to test On you computer##\n 1. If you have a Arduino.\n\n 2. Upload the arduino/BareMinimum.ino to you Arduino \n\n\n 3. if Windows need to Change the /dev/ttyACM0 to the COM port for example COM3.If Use of ttyACM0 need to change it to suitable\n\n cd python\n \n sudo python get.py\n\n 4. open localhost/athome/create to create a seed.and open /athome/1/edit for a status change\n\n 5. For a basic test you can visit [b.phodal.com][1]\n \n##How to test On you Android Phone\n\n![](https://raw.github.com/gmszone/iot/master/doc/images/android.png)\n\n 1. Download the Android app [Stay at Home][13]\n\n##Basic##\n\n- RESTful Services\n- Serial Commucation\n\n##Language##\n- PHP(Laravel Framework)\n- Python(for Raspberry pi)\n- Processing/C/C++ (Arduino)\n\n##Seed##\n\n php artisan db:seed\n\n##\u4ea4\u6d41##\n\nQQ\u7fa4\uff1a348100589\n\nBBS\uff1a http://bbs.phodal.com\n\n\n#\u5982\u4f55\u4f7f\u7528#\n\n##\u76ee\u5f55\u8bf4\u660e##\n\u8fd9\u662f\u4e00\u4e2a\u7b80\u77ed\u7684\u529f\u80fd\u76ee\u5f55\u8bf4\u660e\uff0c\u800c\u4e14\u8fd8\u4f1a\u4e0d\u65ad\u5730\u66f4\u65b0\uff0c\u5f53\u6709\u8db3\u591f\u7684\u786c\u4ef6\uff0c\u4ee5\u53ca\u5176\u4ed6\u8bed\u8a00\u652f\u6301\u7684\u65f6\u5019\u3002\n\n * android \u76ee\u5f55\u4e0b\u662fandroid\u7684\u7a0b\u5e8f\n * \u6784\u5efa\u5de5\u5177 gradle\n * IDE android studio\n * \u7b2c\u4e09\u65b9\u5e93 RESTClient,Google GSON\n * hardware \u786c\u4ef6\u76f8\u5173\u7a0b\u5e8f\n * Arduino Arduino\u5f00\u53d1\u677f\u7a0b\u5e8f\n * python \u811a\u672c\u6587\u4ef6\u8fd0\u884c\u4e8eRaspberry PI\u6216\u8005\u662f\u4f60\u7684PC\n * rest \u7528\u4e8e\u6784\u5efaRESTful\n * \u8bed\u8a00PHP\n * \u6846\u67b6Laravel\n * doc \u57fa\u7840\u7684\u4e00\u4e9b\u6587\u6863\u8bf4\u660e\n * dot \u6784\u5efa\u6846\u67b6\u56fe\n * images \u56fe\u7247\u653e\u7f6e\u76ee\u5f55\n * ppt jmpress.js\u505a\u7684ppt\n * nginx nginx\u914d\u7f6e\u793a\u4f8b\u4ee5\u53ca\u8bf4\u660e\n \n##\u4f7f\u7528\u8bf4\u660e##\n\u9700\u8981\u5728\u5f00\u673a\u524d\u7528RPI\u8fde\u4e0a\u786c\u4ef6\uff0cRPI\u9700\u8981\u8054\u7f51\uff0c\u5728\u5f00\u673a\u524d\u505a\u597d\u51c6\u5907\u3002\n\n###Raspberry PI###\nRPI\u4e3b\u8981\u8fd0\u884c\u83b7\u53d6\u6570\u636e\u4ee5\u53ca\u4e0eArduino\u901a\u8baf\uff0c\u901a\u8fc7\u5f00\u5934\u8fd0\u884cpython\u811a\u672c\u7684\u65b9\u6cd5\u3002\n\n\u4fee\u6539rc.local\n \n sudo vim /etc/rc.local\n \n\u6dfb\u52a0\u4fe1\u547d\u4ee4\u5230exit 0\u4e4b\u524d\n\n sudo python /home/iot.py\n \n\u9700\u8981\u5c06python\u76ee\u5f55\u4e0b\u7684iot.py\u590d\u5236\u5230home\u76ee\u5f55\u4e0b,\u8bbf\u95ee/dev/ttyACM0\u9700\u8981root\u6743\u9650\u3002\n\n###Hardware###\n\n####Arduino####\n\u70e7\u5199\u7a0b\u5e8f\u5230Ardiuino\n\u7a0b\u5e8f\u76ee\u5f55Hardware/Arduino/BareMinimum\u3002\u3002\n\n###REST###\n\u5982\u679c\u4f60\u6709\u4e00\u4e2a\u53ef\u4ee5\u7528\u4e8e\u8fd0\u884c\u7684\u670d\u52a1\u5668\uff0c\u5f53\u7136\u4f60\u4e5f\u53ef\u4ee5\u7528RPI\u53bb\u505a\u4e00\u4e2a\u670d\u52a1\u5668\u3002\n\u90a3\u4e48\uff0c\u8bf7\u5728\u5f00\u59cb\u4e4b\u524d\u914d\u7f6e\u597dLNMP\u73af\u5883\u6216\u8005LAMP\u7b49\u7b49\uff0c\u5373Linux+Nginx/Apache+MySQL/MaraiDB+PHP\n\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u540d\u4e3aiot\u7684\u6570\u636e\u5e93\uff0c\u4ee5\u53ca\u4fee\u6539\u6570\u636e\u5e93\u5bc6\u7801\uff0c\u5982\u679c\u4f60\u4e86\u89e3\u6b64\u53ef\u4ee5\u8df3\u8fc7\u8fd9\u4e9b\u6b65\u9aa4\u3002\n\u521b\u5efa\u6570\u636e\u5e93\u6b65\u9aa4\u5982\u4e0b\uff1a\n\n mysql -uroot -p\n create database iot; \n\n\u4fee\u6539\u6570\u636e\u5e93\u5bc6\u7801\u7684\u8def\u5f84\n\n app/config/database.php\n\n\u76f8\u5173\u4f4d\u7f6e\u4ee3\u7801\u5982\u4e0b\uff1a\n\n 'mysql' => array(\n 'driver' => 'mysql',\n 'host' => 'localhost',\n 'database' => 'iot',\n 'username' => 'root',\n 'password' => '',\n 'charset' => 'utf8',\n 'collation' => 'utf8_unicode_ci',\n 'prefix' => '',\n ),\n \n\n###Android###\n\u6784\u5efa\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u83b7\u53d6JSON\u6570\u636e\u53ca\u89e3\u6790\u7684\u7a0b\u5e8f\uff0c\u5728Android 4.0\u4e0a\u8fd0\u884c\u6b63\u5e38\uff0c\u5176\u4ed6\u8bbe\u5907\u6216\u5e73\u53f0\u6682\u672a\u6d4b\u8bd5\u3002\n\u4f9d\u8d56\u4e8eGoogle GSON\n\n##\u5982\u4f55\u6dfb\u52a0\u786c\u4ef6##\n\n\u5bf9\u4e8e\u4e00\u4e2a\u6709\u786c\u4ef6\u9700\u6c42\u7684\u9879\u76ee\u6765\u8bf4\uff0c\u8db3\u591f\u591a\u7684\u786c\u4ef6\u652f\u6301\u5bf9\u4e8e\u8fd9\u4e2a\u7cfb\u7edf\u540e\u671f\u7684\u6269\u5c55\u6709\u7740\u76f8\u5f53\u91cd\u8981\u7684\u610f\u4e49\u3002\u81f3\u4e8e\u5728\u8fd9\u4e2a\u6700\u5c0f\u7269\u7684\u7269\u8054\u7f51\u7cfb\u7edf\u8bbe\u8ba1\u7684\u8fc7\u7a0b\u4e2d\uff0c\u4e00\u5f00\u59cb\u7528\u7684\u662fArduino\u53ea\u8981\u662f\u5bf9\u4e8e\u5176\u4ed6\u8f6f\u4ef6\u5f00\u53d1\u8005\u6765\u8bf4\u662f\u76f8\u5bf9\u7b80\u5355\u7684\uff0c\u6211\u4eec\u4e5f\u9700\u8981\u8db3\u591f\u591a\u7684\u786c\u4ef6\u652f\u6301\u6765\u652f\u6301\u786c\u4ef6\u5f00\u53d1\u8005\u3002\n\n\u901a\u5e38\u5728\u8fd9\u91cc\u6211\u4eec\u8bf4\u7684\u786c\u4ef6\u662f\u72ec\u7acb\u4e8eRPI\u7684\u786c\u4ef6\uff0c\u4e5f\u5c31\u662f\u7528\u4e32\u53e3\u901a\u4fe1\u6765\u63a7\u5236\u7684\u90e8\u5206\uff0c\u53ea\u662f\u5728\u8fd9\u91cc\u6211\u4eec\u4e5f\u53ef\u4ee5\u7528\u5176\u4ed6\u7684\u901a\u4fe1\u65b9\u5f0f\u6765\u66ff\u4ee3\u4e32\u53e3\u901a\u4fe1\u3002\u53ea\u662f\u5bf9\u5e94\u4e8e\u8fd9\u5176\u4ed6\u6765\u8bf4\uff0c\u4e32\u53e3\u901a\u4fe1\u662f\u6bd4\u8f83\u5e38\u7528\u7684\uff0c\u53ca\u7b80\u6d01\u7684\u3002\n\uff08ps:PRI\u6307\u7684\u662fRaspberry PI\uff0c\u4e5f\u5c31\u662f\u5176\u7684\u7f29\u5199\u3002\uff09\n\n###\u5173\u4e8e\u786c\u4ef6###\n\n\u786c\u4ef6\u7684\u79cd\u7c7b\u6bd4\u8f83\u7e41\u591a\uff0c\u53ef\u80fd\u6709FPGA,51,STM32,AVR\u7b49\u7b49\u7cfb\u5217\u7684\u82af\u7247\uff0c\u81f3\u4e8eARM\uff0c\u5982\u679c\u6709\u8db3\u591f\u7684\u7f51\u7edc\u652f\u6301\u6211\u60f3\u53ef\u4ee5\u66ff\u6362\u6389RPI\u3002\n\n - \u5728\u8fd9\u91cc\u7684\u786c\u4ef6\u901a\u5e38\u662f\u6307\u53ef\u4ee5\u66ff\u6362\u5176\u4ed6\u786c\u4ef6\uff0c\u901a\u8fc7\u4f7f\u7528\u4e32\u53e3\u901a\u4fe1\u7684\u65b9\u5f0f\u8fdb\u884c\u63a7\u5236\u7684\u3002\n - \u786c\u4ef6\u7684\u4e32\u53e3\u901a\u4fe1\u4e3a\u6bd4\u8f83\u7b80\u6d01\u7684\u4e24\u90e8\u5206\uff0c\u5373\u7531\u63a5\u6536\u5230\u7684\u4e32\u53e3\u901a\u4fe1\u76841\u548c0\u6765\u5b9e\u73b0\u7b80\u5355\u7684\u63a7\u5236\u3002\n - \u8fd9\u91cc\u8bf4\u7684\u7b80\u5355\u7684\u63a7\u5236\u6307\u7684\u662f\u6211\u4eec\u53ef\u4ee5\u7528LED\u7684\u4eae\u548c\u706d\u6765\u5145\u5f53\u4e00\u4e2a\u72b6\u6001\u63a7\u5236\u663e\u793a\u3002\n\n\u4f60\u53ef\u4ee5\u81ea\u7531\u7684\u6dfb\u52a0\u786c\u4ef6\u79cd\u7c7b\uff0c\u4e0d\u8fc7\u8bf7\u8ba9\u6e90\u7801simple\uff0c\u5f53\u4f60\u9700\u8981\u63a8\u9001\u5230github\u4e0a\u9762\u53ef\u4ee5\u8054\u7cfb\u6211\u3002\n\n###\u6dfb\u52a0\u5230github###\n\n####\u5982\u679c\u4f60\u6ca1\u6709\u7528\u8fc7github####\n\n - \u6ce8\u518c\u4e00\u4e2agithub\u5e10\u53f7\n - \u5efa\u4e00\u4e2a\u7b80\u5355\u7684\u9879\u76ee\u53ca\u4f7f\u7528git\u7248\u672c\u7ba1\u7406\u5de5\u5177\u6765\u8fdb\u884c\u57fa\u672c\u7684\u64cd\u4f5c\u719f\u6089\n - git clone \u9879\u76ee\u5230\u4f60\u7684\u5de5\u4f5c\u76ee\u5f55\u3002\n - \u5982\u679c\u4f60\u4e0d\u719f\u6089git\u7684\u7528\u6cd5\uff0c\u90a3\u4e48\u8bf7\u5148clone \n - \u5c06\u4f60\u4fee\u6539\u5b8c\u7684\u4ee3\u7801\u653e\u81f3\u6307\u5b9a\u7684\u76ee\u5f55\uff0chardware/\u786c\u4ef6\u8bbe\u5907\n - \u786e\u8ba4\u6ca1\u6709\u6dfb\u52a0\u5176\u4ed6\u4e0d\u5fc5\u8981\u7684\u4e1c\u897f\uff0c\u5982\u53ef\u6267\u884c\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\u4e5f\u4e0d\u662f\u5fc5\u9700\u7684\u3002\n - git push \u5c31\u8fd9\u7b80\u5355\n - \u4f60\u8fd8\u9700\u8981\u8054\u7cfb\u6211\u6216\u8005\u5176\u4ed6\u9879\u76ee\u6210\u5458\u83b7\u5f97push\u6743\u9650\u3002\n \n ####\u6ce8\u610f\u4e8b\u9879####\n \n - \u4e0d\u8981push\u53ef\u6267\u884c\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\n - \u4ec5\u5de5\u7a0b\u53ca\u6e90\u7801\u5c31\u8db3\u591f\u4e86\n - \u5982\u679c\u4e00\u4e2a\u786c\u4ef6\u4e0b\u9762\u6709\u591a\u4e2a\u4e0d\u540c\u7684\u6e90\u7801\u5e93\n - \u5047\u8bbe\u6709lib1\u4ee5\u53calib2\uff0c\u786c\u4ef6\u4e3aatmega16\n - \u91cd\u65b0\u547d\u540d\u539f\u6765\u7684\u9879\u76ee\u540d\u4e3aatmega16-lib1\uff0c\u65b0\u7684\u9879\u76ee\u540d\u4e3aatmega16-lib2\u518d\u8fdb\u884cpush\n \n##\u5173\u4e8e\u7269\u8054\u7f51##\n
\u7269\u8054\u7f51\uff08Internet of Things\uff0c\u7f29\u5199IOT\uff09\u662f\u4e00\u4e2a\u57fa\u4e8e\u4e92\u8054\u7f51\u3001\u4f20\u7edf\u7535\u4fe1\u7f51\u7b49\u4fe1\u606f\u627f\u8f7d\u4f53\uff0c\u8ba9\u6240\u6709\u80fd\u591f\u88ab\u72ec\u7acb\u5bfb\u5740\u7684\u666e\u901a\u7269\u7406\u5bf9\u8c61\u5b9e\u73b0\u4e92\u8054\u4e92\u901a\u7684\u7f51\u7edc\u3002
\n\n
\u7269\u8054\u7f51\u4e00\u822c\u4e3a\u65e0\u7ebf\u7f51\uff0c\u7531\u4e8e\u6bcf\u4e2a\u4eba\u5468\u56f4\u7684\u8bbe\u5907\u53ef\u4ee5\u8fbe\u5230\u4e00\u5343\u81f3\u4e94\u5343\u4e2a\uff0c\u6240\u4ee5\u7269\u8054\u7f51\u53ef\u80fd\u8981\u5305\u542b500\u4e07\u4ebf\u81f3\u4e00\u5343\u4e07\u4ebf\u4e2a\u7269\u4f53\uff0c\u5728\u7269\u8054\u7f51\u4e0a\uff0c\u6bcf\u4e2a\u4eba\u90fd\u53ef\u4ee5\u5e94\u7528\u7535\u5b50\u6807\u7b7e\u5c06\u771f\u5b9e\u7684\u7269\u4f53\u4e0a\u7f51\u8054\u7ed3\uff0c\u5728\u7269\u8054\u7f51\u4e0a\u90fd\u53ef\u4ee5\u67e5\u627e\u51fa\u5b83\u4eec\u7684\u5177\u4f53\u4f4d\u7f6e\u3002\u901a\u8fc7\u7269\u8054\u7f51\u53ef\u4ee5\u7528\u4e2d\u5fc3\u8ba1\u7b97\u673a\u5bf9\u673a\u5668\u3001\u8bbe\u5907\u3001\u4eba\u5458\u8fdb\u884c\u96c6\u4e2d\u7ba1\u7406\u3001\u63a7\u5236\uff0c\u4e5f\u53ef\u4ee5\u5bf9\u5bb6\u5ead\u8bbe\u5907\u3001\u6c7d\u8f66\u8fdb\u884c\u9065\u63a7\uff0c\u4ee5\u53ca\u641c\u5bfb\u4f4d\u7f6e\u3001\u9632\u6b62\u7269\u54c1\u88ab\u76d7\u7b49\u5404\u79cd\u5e94\u7528\u3002
\n\n\u7b80\u5355\u7684\u6765\u8bf4\nInternet\u662f\u4e00\u4e2a\u7531\u8ba1\u7b97\u673a\u7ec4\u6210\u7684\u7f51\u7edc\uff0c\u90a3\u4e48\u7269\u8054\u7f51\u5c31\u662f\u4e00\u4e2a\u7531\u7269\u4f53(Things)\u7ec4\u6210\u7684\u7f51\u7edc\uff0c\u53ea\u4e0d\u8fc7\u5176\u4f9d\u8d56\u4e8eInternet\uff0c\u662fInternet\u7684\u4e00\u90e8\u5206\u3002\n\n##\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf##\n\u8fd9\u4e2a\u4e5f\u5c31\u662f\u6211\u4eec\u8981\u8ba8\u8bba\u7684\u4e3b\u9898\u4e86\uff0c\u6211\u4eec\u8981\u505a\u7684\u6700\u5c0f\u7269\u8054\u7f51\u7cfb\u7edf\u5176\u5b9e\u4e5f\u5c31\u76f8\u5f53\u4e8e\u662f\u4e00\u4e2a\u5e73\u53f0\u3002\u6211\u4eec\u53ef\u4ee5\u4e0a\u4f20\u6211\u4eec\u5404\u79cd\u7269\u4f53\u7684\u4fe1\u606f\uff0c\u540c\u65f6\u7ed9\u4e88\u8fd9\u4e9b\u7269\u4f53\u4e00\u4e9b\u5c5e\u6027\uff0c\u6211\u4eec\u4e5f\u53ef\u4ee5\u901a\u8fc7\u7f51\u7edc\u6765\u63a7\u5236\u8fd9\u4e9b\u7269\u4f53\uff0c\u800c\u4ed6\u4eec\u4e4b\u95f4\u4e5f\u53ef\u4ee5\u76f8\u4e92\u63a7\u5236\u3002\u56e0\u6b64\uff0c\u6211\u4eec\u9700\u8981\u7ed9\u4ed6\u4eec\u63d0\u4f9b\u4e00\u4e2a\u7f51\u7edc\uff0c\u8fd9\u5c31\u662fRESTful\u7684\u7531\u6765\u3002\n\n\u6240\u4ee5\u6211\u4eec\u4e5f\u7a0d\u5fae\u4e86\u89e3\u4e00\u4e0bRESTful\u5427\u3002\n\n###RESTful###\n\n
REST \u4ece\u8d44\u6e90\u7684\u89d2\u5ea6\u6765\u89c2\u5bdf\u6574\u4e2a\u7f51\u7edc\uff0c\u5206\u5e03\u5728\u5404\u5904\u7684\u8d44\u6e90\u7531URI\u786e\u5b9a\uff0c\u800c\u5ba2\u6237\u7aef\u7684\u5e94\u7528\u901a\u8fc7URI\u6765\u83b7\u53d6\u8d44\u6e90\u7684\u8868\u5f81\u3002\u83b7\u5f97\u8fd9\u4e9b\u8868\u5f81\u81f4\u4f7f\u8fd9\u4e9b\u5e94\u7528\u7a0b\u5e8f\u8f6c\u53d8\u4e86\u5176\u72b6\u6001\u3002\u968f\u7740\u4e0d\u65ad\u83b7\u53d6\u8d44\u6e90\u7684\u8868\u5f81\uff0c\u5ba2\u6237\u7aef\u5e94\u7528\u4e0d\u65ad\u5730\u5728\u8f6c\u53d8\u7740\u5176\u72b6\u6001\uff0c\u6240\u8c13\u8868\u5f81\u72b6\u6001\u8f6c\u79fb\uff08Representational State Transfer\uff09\u3002
\n\n\u6211\u4eec\u7684\u4e16\u754c\u662f\u7531\u8d44\u6e90\u6765\u7ec4\u6210\u7684\uff0c\u4e00\u4e2a\u7269\u4f53\u4e5f\u5c31\u76f8\u5f53\u4e8e\u662f\u4e00\u4e2a\u8d44\u6e90\uff0c\u4ee5\u8fd9\u79cd\u65b9\u5f0f\u6765\u6784\u5efa\u6211\u4eec\u7684\u7269\u8054\u7f51\u7cfb\u7edf\uff0c\u5728\u76ee\u524d\u6765\u8bf4\u662f\u518d\u597d\u4e0d\u8fc7\u7684\u4e00\u4e2a\u65b9\u6848\u4e86\u3002\n\n
REST\u67b6\u6784\u5c31\u662f\u5e0c\u671b\u80fd\u591f\u7edf\u4e00\u8fd9\u4e00\u7c7b\u7684Hypermedia Controls, \u8d4b\u4e88\u4ed6\u4eec\u6807\u51c6\u7684, \u9ad8\u5ea6\u53ef\u6269\u5c55\u7684\u6807\u51c6\u8bed\u4e49\u53ca\u8868\u73b0\u5f62\u5f0f, \u4f7f\u5f97\u751a\u81f3\u65e0\u4eba\u5de5\u5e72\u9884\u7684\u673a\u5668\u4e0e\u673a\u5668\u95f4\u7684\u901a\u7528\u4ea4\u4e92\u534f\u8bae\u8fb9\u7684\u53ef\u80fd.
\n\n\u8fd9\u4e2a\u4e5f\u5c31\u662f\u6211\u4eec\u7684\u76ee\u7684\u4e86\uff0c\u7269\u8054\u7f51\u6700\u540e\u7684\u6838\u5fc3\u5c31\u662f\u4f7f\u7269\u4f53\u4e0e\u7269\u4f53\u4e4b\u95f4\u7684\u4ea4\u4e92\u6210\u4e3a\u53ef\u80fd\u3002\n\n\u90a3\u4e48\uff0c\u8fd9\u91cc\u4e5f\u5c31\u89e3\u91ca\u4e86\u4e3a\u4ec0\u4e48\u6211\u4eec\u8981\u7528RESTful\u6765\u505a\u8fd9\u4e2a\u6700\u5c0f\u7cfb\u7edf\u7684\u539f\u56e0\u4e86\u3002\n\n###\u6700\u5c0f\u7cfb\u7edf\u4e2d\u7684RESTful###\n\n\u4f8b\u5982\uff0c\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\uff0c\n\u5217\u4e3e\u6240\u6709\u7269\u4f53\u72b6\u6001\uff0c\n\n GET http://localhost/athome\n\n\u5448\u73b0\u67d0\u4e00\u7279\u5b9a\u72b6\u6001\uff0c\n\n GET http://localhost/athome/1/\n\n\u5269\u4e0b\u7684\u90e8\u5206\u8fd9\u91cc\u5c31\u4e0d\u591a\u8bf4\u4e86\uff0c\u591a\u8bf4\u65e0\u76ca\uff0c\u53ef\u4ee5\u81ea\u5df1\u8c37\u6b4c\u53bb\u3002\n\n\u63a5\u7740\u6211\u4eec\u8981\u8ba8\u8bba\u7684\u5c31\u662f\u7cfb\u7edf\u6846\u67b6\n\n##\u7cfb\u7edf\u6846\u67b6##\n\n###\u4e3a\u4ec0\u4e48\u662fRaspberry PI###\n\nRaspberry Pi\u5728\u8fd9\u91cc\u53ea\u662f\u5145\u5f53\u4e86\u6570\u636e\u7684\u53d1\u9001\u548c\u63a5\u6536\uff0c\u867d\u7136\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u5c06Raspberry PI\u4f5c\u4e3a\u63a7\u5236\u7684\u5bf9\u8c61\uff0c\u4f46\u662f\u5c06\u8fd9\u4e2a\u4ece\u4e2d\u5265\u79bb\u6765\u8bb2\u6e05\u695a\u7cfb\u7edf\u7684\u7ed3\u6784\u4f1a\u66f4\u52a0\u7b80\u5355\u3002\u4ece\u800c\uff0c\u53ef\u4ee5\u8ba9\u6211\u4eec\u628a\u6838\u5fc3\u6ce8\u610f\u529b\u805a\u7126\u5728\u8981\u89e3\u51b3\u7684\u95ee\u9898\u4e0a\uff0c\u4e5f\u5c31\u662f\u6570\u636e\u4f20\u9001\uff0c\u6bcf\u4e2a\u90e8\u5206\u90fd\u53ef\u4ee5\u7b80\u5355\u5730\u4ece\u7cfb\u7edf\u5265\u79bb\u51fa\u6765\uff0c\u7528\u53e6\u5916\u7684\u4e8b\u7269\u6765\u66ff\u6362\u3002\n\n\n###\u4e3a\u4ec0\u4e48\u662fArduino###\n\u8fd9\u4e2a\u95ee\u9898\u7684\u7b54\u6848\u548c\u4e0a\u9762\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u56e0\u4e3a\u6709\u4e9b\u641e\u7269\u8054\u7f51\u662f\u4ece\u8f6f\u4ef6\u8fc7\u6765\u7684\uff0c\u5bf9\u4e8e\u4ed6\u4eec\u6765\u8bf4\u53bb\u7406\u89e3\u7aef\u53e3\u7684\u96be\u9053\u53ef\u80fd\u6709\u70b9\u5927\u3002\u6240\u4ee5\uff0c\u6211\u4eec\u5728\u7b80\u5316\u7cfb\u7edf\u8bbe\u8ba1\u7684\u540c\u65f6\uff0c\u4e5f\u628a\u7cfb\u7edf\u7684\u4ee3\u7801\u7b80\u5316\u4e86\u3002\u56e0\u4e3aArduino\u8db3\u591f\u7684\u7b80\u5355\uff0c\u6211\u4eec\u53ef\u4ee5\u5173\u5fc3\u95ee\u9898\u7684\u672c\u8d28\uff0c\u800c\u4e0d\u662f\u5982\u4f55\u53bb\u7f16\u7a0b\u3002\n\n###\u4e3a\u4ec0\u4e48\u662fAjax###\n\u81f3\u4e8e\u4ec0\u4e48\u662fAjax\uff0c\n\n
AJAX\u5373\u201cAsynchronous JavaScript and XML\u201d\uff08\u5f02\u6b65\u7684JavaScript\u4e0eXML\u6280\u672f\uff09\uff0c\u6307\u7684\u662f\u4e00\u5957\u7efc\u5408\u4e86\u591a\u9879\u6280\u672f\u7684\u6d4f\u89c8\u5668\u7aef\u7f51\u9875\u5f00\u53d1\u6280\u672f\u3002\n
\n\n\u8fd9\u91cc\u7684\u76ee\u7684\u53ea\u662f\u5728\u4e8e\u6f14\u793a\u5982\u4f55\u8fd0\u7528\u8fd9\u4e9b\u6570\u636e\uff0c\u4f7f\u5b83\u5177\u6709\u4ed6\u5e94\u6709\u7684\u4ef7\u503c\uff0c\u800c\u4e0d\u5728\u4e8e\u6280\u672f\u672c\u8eab\u3002\u5f53\u7136ajax\u4e0d\u662f\u5fc5\u9700\u7684\uff0c\u5982\u679c\u4f60\u9700\u8981\u7684\u53ea\u662f\u7528\u6765\u63a7\u5236\u8fd9\u4e2a\u706f\u3002\n\n###\u4e3a\u4ec0\u4e48\u662fLaravel###\n\u53ea\u662f\u56e0\u4e3a\u4e2a\u4eba\u559c\u7231\uff0c\u4f60\u4e5f\u53ef\u4ee5\u7528Ruby On Rails\u6765\u642d\u5efa\u8fd9\u6837\u4e00\u4e2a\u529f\u80fd\uff0c\u6216\u8005\u662fJava\u3002\u53ea\u4e0d\u8fc7PHP\u5728\u6211\u7684\u670d\u52a1\u5668\u4e0a\u8fd0\u884c\u5f97\u633a\u4e0d\u9519\u7684\uff0c\u800c\u4e14\u6211\u53c8\u4e0d\u9700\u8981\u91cd\u65b0\u53bb\u5199\u914d\u7f6e\u90a3\u4e9b\u914d\u7f6e\u3002\n\u540c\u65f6Laravel\u53ef\u4ee5\u7b80\u5355\u7684\u5f00\u53d1\u6211\u4eec\u6240\u9700\u8981\u7684\u529f\u80fd\uff0c\u6362\u53e5\u8bdd\u8bf4\u4ed6\u662fPHP\u4e16\u754c\u7684Ruby On Rails\u3002\n\n[1]:http://b.phodal.com\n[2]:http://www.phodal.com/blog/bare-minimum-iot\n[3]:https://github.com/gmszone/iot/wiki\n[4]:http://www.phodal.com/blog/bare-minimum-iot-system-structure/\n[5]:http://www.phodal.com/blog/bare-minimum-iot-system-restful/\n[6]:http://www.phodal.com/blog/bare-minimum-iot-system-create-restful/\n[7]:http://www.phodal.com/blog/bare-minimum-iot-system-about-restful/\n[8]:http://www.phodal.com/blog/bare-minimum-iot-system-restful-template/\n[9]:http://www.phodal.com/blog/bare-minimum-iot-system-ajax/\n[10]:http://www.phodal.com/blog/bare-minimum-iot-system-date-commucation/\n[11]:http://www.phodal.com/blog/bare-minimum-iot-system-mcu-commucation/\n[12]:http://www.phodal.com/blog/bare-minimum-iot-system-android-example/\n[13]:https://github.com/gmszone/Home-Anywhere/raw/master/app/build/apk/app-debug-unaligned.apk\n[14]:http://bbs.phodal.com\n[15]:http://www.phodal.com/blog/bare-minimum-iot-system-add-test-for-laravel/\n[16]:http://www.phodal.com/blog/bare-minimum-iot-system-dashboard-framework-dashing/", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.phodal.com", "keywords": null, "license": "GPL version 2", "maintainer": null, "maintainer_email": null, "name": "iot", "package_url": "https://pypi.org/project/iot/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/iot/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.phodal.com" }, "release_url": "https://pypi.org/project/iot/0.1.5/", "requires_dist": null, "requires_python": null, "summary": "Open source Internet of Things", "version": "0.1.5" }, "last_serial": 1003118, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "06241d4b63dbdb798393d9ddebde78b3", "sha256": "788f7f2a119c12abaf76ce8f6b163380e2a12a5e1ac3c0c50c84bd42e7d4271f" }, "downloads": -1, "filename": "iot-0.1.0-py2.7.egg", "has_sig": false, "md5_digest": "06241d4b63dbdb798393d9ddebde78b3", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 45921, "upload_time": "2014-02-18T01:25:55", "url": "https://files.pythonhosted.org/packages/fc/82/784e9b8e3c8d0262bd8651dbfada11837b156fd040a071baed0cd2499149/iot-0.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "cf67488022611670f7d0ce43755fee70", "sha256": "d5833018bbe67969cb21a5e7100f88b2ae5b6fc0e72436d517dcabb38590eefb" }, "downloads": -1, "filename": "iot-0.1.0.tar.gz", "has_sig": false, "md5_digest": "cf67488022611670f7d0ce43755fee70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9651, "upload_time": "2014-02-18T01:23:43", "url": "https://files.pythonhosted.org/packages/ca/78/282f98ad3ba41782e7173bf2237d17e1f32aa8f8ff34d4e70aa8455b6cf1/iot-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5dd3520190a1864710ada41d323e50f9", "sha256": "a5f9fea177a3e7020e14ef491e1daf946b19270a88fe80a524836ad5f4ca0b7a" }, "downloads": -1, "filename": "iot-0.1.1-py2.7.egg", "has_sig": false, "md5_digest": "5dd3520190a1864710ada41d323e50f9", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9418753, "upload_time": "2014-02-18T09:18:08", "url": "https://files.pythonhosted.org/packages/95/30/66cbe4f743705107ece216988126d8ba01a9f8b9cb08e46cdf2978017edb/iot-0.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "cf73393dd50274718b4f5076833d6392", "sha256": "0e04fbf4bcb92fa746714fce89e50964e2a56f7cb896a0174dda2ba8356c3b25" }, "downloads": -1, "filename": "iot-0.1.1.tar.gz", "has_sig": false, "md5_digest": "cf73393dd50274718b4f5076833d6392", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9439, "upload_time": "2014-02-18T09:17:59", "url": "https://files.pythonhosted.org/packages/26/9a/9fbac11b0c0ce25f943e6042d46a4886eab16524fa9c35b6c2bcf1145f22/iot-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "db9a154beddd951028e743c12c0b31a4", "sha256": "1d1997abf507595585598db95bce0aa06a11fbc50e8fb8b3ed43fe2685cec548" }, "downloads": -1, "filename": "iot-0.1.2-py2.7.egg", "has_sig": false, "md5_digest": "db9a154beddd951028e743c12c0b31a4", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9418753, "upload_time": "2014-02-18T09:23:22", "url": "https://files.pythonhosted.org/packages/33/e2/142f87b95ddf166050e7b9828237fdeae1382b53fcf1e2be69ee435bc489/iot-0.1.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "411ababa43dde99277a5f677840e6cde", "sha256": "b06a1683ac12d72f3af07a3f37a4240c7778a9449fa152000ce4dc5602d26b9b" }, "downloads": -1, "filename": "iot-0.1.2.tar.gz", "has_sig": false, "md5_digest": "411ababa43dde99277a5f677840e6cde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9474, "upload_time": "2014-02-18T09:23:11", "url": "https://files.pythonhosted.org/packages/29/14/1cdf6f4b8b29cceab3b04612b39ac38d8757e546e79da14bca82cf40107e/iot-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "215cc49edeba9f5993ed0836370a12bb", "sha256": "3fc4f29433484f1d9273bad851a567f8e17ef1df01b57e3dd32bf47afabc173e" }, "downloads": -1, "filename": "iot-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "215cc49edeba9f5993ed0836370a12bb", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 20965, "upload_time": "2014-02-18T09:43:27", "url": "https://files.pythonhosted.org/packages/05/05/e80207663045c919de4c6f8984ffb459104353795298c9398455112f2ec0/iot-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "944697e0799eddeac086ccabbce68bf1", "sha256": "b55483024d299a96758b367dc570a83bdb554e38303fc5a011db67d1acaff4e9" }, "downloads": -1, "filename": "iot-0.1.3.tar.gz", "has_sig": false, "md5_digest": "944697e0799eddeac086ccabbce68bf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9651, "upload_time": "2014-02-18T09:43:24", "url": "https://files.pythonhosted.org/packages/3f/e4/3dce54ab1d9b64931a67558e9ec2d21cd7b11b4e3f12f9cb8666c93d1c43/iot-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "f592b3126ee0b87837ec8ec788fa9657", "sha256": "1ff70e907150534b5e95e37867c19fd7549ae9bbf9aa76fb70c30983b5b1fa2a" }, "downloads": -1, "filename": "iot-0.1.4-py2.7.egg", "has_sig": false, "md5_digest": "f592b3126ee0b87837ec8ec788fa9657", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9387666, "upload_time": "2014-02-18T09:45:18", "url": "https://files.pythonhosted.org/packages/98/5b/09b218f94494a5596b75e137bdcd32400f7b26dac64a1e010ceaf319c499/iot-0.1.4-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "f39fbee19f78e7533a76e2b2dc2bb796", "sha256": "46008395c8bc15d76ef8d6deb1d83b1f4bc0e23ffe5f5559c3e7e902f89af21e" }, "downloads": -1, "filename": "iot-0.1.4.tar.gz", "has_sig": false, "md5_digest": "f39fbee19f78e7533a76e2b2dc2bb796", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9682, "upload_time": "2014-02-18T09:45:08", "url": "https://files.pythonhosted.org/packages/4f/97/f2f407d4d6a95bca25a12306c1b06b7b91297bd4144fe810cae5ee3a7eec/iot-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "859b3955988d6886ae02d5f04d79a59d", "sha256": "eae92c319c241875b65d76768ebfb77a24d0a29a941e6d257c0edd1e7e6401b2" }, "downloads": -1, "filename": "iot-0.1.5-py2.7.egg", "has_sig": false, "md5_digest": "859b3955988d6886ae02d5f04d79a59d", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9391897, "upload_time": "2014-02-18T09:59:13", "url": "https://files.pythonhosted.org/packages/f9/60/ecedcf76d96f56362f6e0621b33319b48fe54559151bbcaea675592737c2/iot-0.1.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "bf61edc4d8db8fadc0caf4f8f2cbfb55", "sha256": "9f07ada62deda6b8117f2af0759a9fc7490ea69347aac6715deb2a6278f5c700" }, "downloads": -1, "filename": "iot-0.1.5.tar.gz", "has_sig": false, "md5_digest": "bf61edc4d8db8fadc0caf4f8f2cbfb55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10224, "upload_time": "2014-02-18T09:59:03", "url": "https://files.pythonhosted.org/packages/c0/1e/29f0e61e6d7a0916ac5a937dd6f779d3e31e461dd75aeb14db01701181b1/iot-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "859b3955988d6886ae02d5f04d79a59d", "sha256": "eae92c319c241875b65d76768ebfb77a24d0a29a941e6d257c0edd1e7e6401b2" }, "downloads": -1, "filename": "iot-0.1.5-py2.7.egg", "has_sig": false, "md5_digest": "859b3955988d6886ae02d5f04d79a59d", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9391897, "upload_time": "2014-02-18T09:59:13", "url": "https://files.pythonhosted.org/packages/f9/60/ecedcf76d96f56362f6e0621b33319b48fe54559151bbcaea675592737c2/iot-0.1.5-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "bf61edc4d8db8fadc0caf4f8f2cbfb55", "sha256": "9f07ada62deda6b8117f2af0759a9fc7490ea69347aac6715deb2a6278f5c700" }, "downloads": -1, "filename": "iot-0.1.5.tar.gz", "has_sig": false, "md5_digest": "bf61edc4d8db8fadc0caf4f8f2cbfb55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10224, "upload_time": "2014-02-18T09:59:03", "url": "https://files.pythonhosted.org/packages/c0/1e/29f0e61e6d7a0916ac5a937dd6f779d3e31e461dd75aeb14db01701181b1/iot-0.1.5.tar.gz" } ] }