ã¯ããã«
å€ãã®åå¿è
ã®Webéçºè
ã¯ãèªåã®äœåãã©ãã«æçš¿ããããèããŠããŸãã éåžžããããã®ç®çã«ã¯ãNIXã®ãããªã·ã¹ãã ãå®è¡ããŠãããã·ã³ã䜿çšãããŸãã ç§ã®éžæã¯Raspberry PIã§ããã
- ãã«Linuxã®å®è¡
- é·ãéããŒãã«ã®äžã«æšªããããã»ãããéããŸãã
åçãªå€éšIPã¢ãã¬ã¹ã䜿çšããŠããããã¯ãŒã¯äžã§å®è¡ãããŠãããµãŒããŒãæ§æããæ¹æ³ã«ã€ããŠèª¬æããŸãã ãã®ãããªãœãªã¥ãŒã·ã§ã³ã¯ã倧èŠæš¡ãªãããžã§ã¯ãã®ç«ã¡äžãã«ã¯é©ããŠããŸããããããŒããã©ãªãªãšå人çšã¢ããªã±ãŒã·ã§ã³ã®ãã¢ã«ã¯éåžžã«é©ããŠããŸãã

å¿
èŠã«ãªããŸã
- Raspberry PIã¢ãã«BãB +ããŸãã¯Raspberry PI 2ïŒãããã®ã¢ãã«ã®ããŒãã«ã¯ã€ãŒãµããããããããïŒãšRaspbianãã€ã³ã¹ããŒã«ãããSSHãµãŒããŒãã¢ã¯ãã£ãã«ãªã£ãŠããã èšå®ã«ã€ããŠã¯ã ãã¡ã ã ãã¡ãããŸãã¯ãã¡ããã芧ãã ãã ã ã©ãºããªãŒã®ã©ã¹ãã¢ã³ã«å ããŠãå€æ°ã®ä»£æ¿ ãã£ã¹ããªãã¥ãŒã·ã§ã³ããããŸãã ããã§ã¯ã圌ããèšãããã«ããããããå³ãšè²ã®ããã«ãã
- åäœäžã®Djangoã¢ããªã±ãŒã·ã§ã³ã
- DDNS察å¿ã«ãŒã¿ãŒã DDNSã¯malinkèªäœã§èšå®ã§ããããããã®é
ç®ã¯ãªãã·ã§ã³ã§ãã
ã¢ãã«B +ã®ã©ãºããªãŒã䜿çšããŸãã
æºåãã
Raspbian 7.8ã¯raspberryã«ã€ã³ã¹ããŒã«ãããŸãã
ãŸããsshçµç±ã§æ¥ç¶ããããã«ãããã¯ãŒã¯äžã®ã©ãºããªãŒãèŠã€ããå¿
èŠããããŸãã
nmap -sP 192.168.1.1/24 | grep raspberry

ç§ã®å Žåããããã¯ãŒã¯ã«ã¯2ã€ã®ã©ãºããªãŒãããããã®ãã¡ã®1ã€ã¯IPã¢ãã¬ã¹192.168.1.100ã®ã©ãºããªãŒã§ãã äžéšã®ãããã¯ãŒã¯ã§ã¯ãnmapã¯ãããã¯ãŒã¯ããã€ã¹åã衚瀺ããŸããã

ãã®å Žåããã¬ãã£ãã¯ã¹B8ïŒ27ïŒEBãæã€MACã¢ãã¬ã¹ã§raspberry piãèŠã€ããããšãã§ããŸãã
sudo nmap -sP -n 192.168.1.1/24 | grep -B 2 B8:27:EB

grepã®-Bãªãã·ã§ã³ã¯ãå°å·ããåã®è¡æ°ã決å®ããŸãã
sshäžã®ã©ãºããªãŒã«æ¥ç¶ããŠããŸãã
ssh pi@192.168.1.100

å§ããããã«ã
raspi-configã䜿çšããŠã©ãºããªãŒã1 GHzã«å éããŸãã
Pythonããã±ãŒãžãããŒãžã£ãŒãã€ã³ã¹ããŒã«ãã
sudo apt-get install python-pip
å¿
èŠãªããã±ãŒãžã®ã€ã³ã¹ããŒã«ã«é²ã¿ãŸãã ç§ã®Webã¢ããªã±ãŒã·ã§ã³ã¯MySQL DBMSã䜿çšããŠããŸãã FrontginãšBackendã¯ãããããnginxãšgunicornã§ãã
sudo apt-get install nginx gunicorn mysql-client mysql-server python-mysqldb

mysqlã®ã€ã³ã¹ããŒã«äžã«ãã«ãŒãDBMSãŠãŒã¶ãŒã®ããŒã¿ãå
¥åããå¿
èŠããããŸãã
python-mysqldbã¯ãDjangoã§ã¢ãã«ãæäœãããšãã«å¿
èŠãªãã©ã€ããŒã§ãã PythonãªããžããªããDjangoãã€ã³ã¹ããŒã«ããŸãã
sudo pip install django
å·çæç¹ã§ãã©ãºããªãŒ1.2.1ããã³0.14.5ã®ãªããžããªã«ããnginxããã³gunicornã®çŸåšã®ããŒãžã§ã³ã ã©ãºããªãŒ5.5ã®MySQLããŒãžã§ã³ã Djangoã䜿çšããã«ã¯ã
SciPyãã€ã³ã¹ããŒã«ããå¿
èŠããã
ãŸã ã
sudo apt-get install python-scipy
nginx 1.2.1ã¯éæšå¥šã§ãã æ°ãããã®ã¯
sourceããã³ã³ãã€ã«ã§ããŸãã æ°é®®ãªgunicornã¯ãPythonãªããžããªããã€ã³ã¹ããŒã«ã§ããŸãã
ãµãŒããŒã®ã»ããã¢ãã
Webã¢ããªã±ãŒã·ã§ã³ãã©ãºããªãŒã«é
眮ããŸãïŒããšãã°ã/ home / piã«ïŒã
åäœããèšå®ãããå Žåã¯ãé©åãªãã£ã¬ã¯ããªã«ã³ããŒããã ãã§ãïŒ
- nginx / etc / nginx /ãµã€ã察å¿/
- gunicorn /etc/gunicorn.d/ã®å Žå
nginxã§è€éãªããšã¯ãããŸããã gunicornã®èšå®ã«æ³šæãæãããã§ãã
CONFIG = { 'mode': 'wsgi', 'working_dir': '/home/pi/project',
working_dirïŒwsgy.pyãã¡ã€ã«ãžã®ãã¹ïŒã
'/home/pi/project/project'
ãšããŠæå®ãããargsã§
'wsgi:application'
ãšããŠæå®ãããŠããå ŽåãMalinkaã§ã¯ãŒã«ãŒãæåã«èµ·åããçç±ã瀺ãããšãªãæ»äº¡ããŸãïŒããšãã°ãUbuntuã®å Žåã gunicornã¯äž¡æ¹ã®ãªãã·ã§ã³ã§åäœããŸãïŒã
MySQLã®ç§»è¡
mysqldumpãŠãŒãã£ãªãã£ã䜿çšããŠãæ¢åã®ããŒã¿ããŒã¹ããã³ãã§ããŸãã
mysqldump -u root -p dbname > dbname.sql
çµæã®ãã¡ã€ã«ã¯ãæ§é ãšããŒã¿ããŒã¹ã«ä¿åãããæ
å ±ã埩å
ããäžé£ã®SQLã¹ããŒãã¡ã³ãã§æ§æãããŸãã

ã©ãºããªãŒã«ããŒã¿ããŒã¹ãäœæããŸãã mysqlã·ã§ã«ãèµ·åããŸãã
mysql -u root -p
æ°ããããŒã¿ããŒã¹ãè¿œå ããŸãã
mysql> create database dbname character set utf8 collate utf8_general_ci; mysql> grant all privileges on dbname.* to someusr@localhost identified by 'somepassword';
ãã³ãããããŒã¿ã埩å
ããŸãã ãã³ããµã€ãºã162 MBã®å Žåãå埩æéã¯çŽ10åã§ããã
mysql -u root -p dbname < dbname.sql
ããŒã¿ããŒã¹ãå€éšãã©ã€ãã«ä¿åããããšããå§ãããŸããããããªããšãé »ç¹ãªæžã蟌ã¿æäœã®ããã«micro SDã«ãŒããããã«äœ¿çšã§ããªããªãå¯èœæ§ããããŸãã ãããè¡ãæ¹æ³ã¯
ããã§èªãããšãã§ã
ãŸã ã mysqlæ§æã¯ããã¹/etc/mysql/my.cnfã«ãããŸã
確èªãã
nginxãšgunicornãåèµ·åããŸãã ãã¹ãŠãæ£ããæ§æãããŠããã°ãã¡ã€ã³ããŒãžãéãããšãã§ããŸãã

ã¹ãã¬ã¹ãã¹ãã«åæ ŒããŸãã Apacheãã³ãããŒã¯ãã€ã³ã¹ããŒã«ããŸãã
sudo apt-get install apache2-utils
1000åã®Raspberry PIã¢ãã«B +ã¯ãšãªã䜿çšããŠ4ã€ã®ã¹ã¬ããã§ãã¹ãããŸãã
ab -c 4 -n 1000 http://192.168.1.100/
vladislav@vladislav-N53SV:~$ ab -c 4 -n 1000 http://192.168.1.100/ This is ApacheBench, Version 2.3 <$Revision: 1528965 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.1.100 (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.8.0 Server Hostname: 192.168.1.100 Server Port: 80 Document Path: / Document Length: 24839 bytes Concurrency Level: 4 Time taken for tests: 1309.607 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 25018000 bytes HTML transferred: 24839000 bytes Requests per second: 0.76 [
ã»ãšãã©ã®å Žåãã¯ãšãªã¯ããŒã¿ããŒã¹ãæäœãããããã¯ãšãªã¯é
ããªããŸãã Raspberry PI 2ã¢ãã«Bãæè¿ç»å ŽããŸããããåãèšå®ãšããŒã¿ã§äœãã§ããã®ãèŠãŠã¿ãŸãããã
vladislav@vladislav-N53SV:~$ ab -c 4 -n 1000 http://192.168.1.14/ This is ApacheBench, Version 2.3 <$Revision: 1528965 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.1.14 (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.8.0 Server Hostname: 192.168.1.14 Server Port: 80 Document Path: / Document Length: 24838 bytes Concurrency Level: 4 Time taken for tests: 170.083 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 25017000 bytes HTML transferred: 24838000 bytes Requests per second: 5.88 [
Raspberry PI 2ã¯ããªã¯ãšã¹ããå¹³å6.16åé«éã§åŠçããŸãã Raspberryéçºè
ã¯ã ãŸãããŸããã
DDNSã»ããã¢ãã
ã«ãŒã¿ãŒãŸãã¯ã©ãºããªãŒèªäœã§DDNSãæ§æã§ããŸãã æ°å¹Žåãã䜿çšããŠããããã
No IPãéžæããŸããã ç¡æã§äœ¿çšããããšãæ€èšããŠãã ããã
ãã¹ãç»é²ã¢ã«ãŠã³ãããæã¡ã®å Žåã¯æ¿èªãè¡ãããã以å€ã®å Žåã¯
ç»é²ããŸãã æ¿èªåŸã
ããã«è¡ã
ãŸã ã

[AddHost]ãã¯ãªãã¯ããŠããã©ãŒã ã«å
¥åããŸãã

以äžã§AddHostãã¿ã³ãã¯ãªãã¯ããŸã
ãã¹ããè¿œå ãããŸããã ãã¹ãåã®å³åŽã«ããããã¯ãŒã¯ã®å€éšIPã¢ãã¬ã¹ã衚瀺ãããŸãã

ã«ãŒã¿ãŒã§DDNSãæ§æãã
ããšãã°ãpadavanããŒãžã§ã³3.4.3.9-091ã®ãã¡ãŒã ãŠã§ã¢ã䜿çšããŠãASUS RT-N56Uã§DDNSãæ§æããŸãã ã«ãŒã¿ãŒã®ã¡ãã¥ãŒããŒãžãéã
ïŒäŸïŒ192.168.1.1ïŒã WAN-> DDNSã

no-ip.comãµãŒãã¹ãéžæããç»é²ããŒã¿ãšè¿œå ãã¹ãïŒtechnopark-test.ddns.netïŒãæå®ããŸãã
æ®ãã®ãã©ã¡ãŒã¿ãŒã¯èªç±ã«èšå®ããŸãã

ããã§ãå€éšIPã¢ãã¬ã¹ãå€æŽããŠããã¢ããªã±ãŒã·ã§ã³ã¯ãããã¯ãŒã¯äžã§äœ¿çšå¯èœã®ãŸãŸã«ãªããŸãã
ããŒã転éèšå®
ãã¹ãã«ã¢ã¯ã»ã¹ãããšããMalinkaã¯Webã¢ããªã±ãŒã·ã§ã³ãæäŸããå¿
èŠããããŸãã ã«ãŒã¿ãŒã¯ãããŒãXããå
éšããŒãYãžã®å€éšããã®çä¿¡ãã±ããã®è»¢éãè¡ã£ãŠããŸããã«ãŒã¿ãŒã¡ãã¥ãŒã§ã[WAN]> [ããŒã転é]ã«ç§»åããŸãã å€éš80ããŒããraspberry 80ããŒãã«ãªãã€ã¬ã¯ãããå¿
èŠããããŸãã æ°ããã«ãŒã«ãè¿œå ããŠãå€æŽãé©çšããŸãã

ããã§ãMalinkaã¯ãã¹ãŠã®çä¿¡ãã±ãããããŒã80ã§åŠçããŸãã ãã©ãŠã¶ã®ã¢ãã¬ã¹ããŒã«IPãªãã§åä¿¡ãããã¹ããå
¥åããŠç¢ºèªããŸãã

ããã§ãã€ã³ã¿ãŒããããŠãŒã¶ãŒãWebã¢ããªã±ãŒã·ã§ã³ã䜿çšã§ããããã«ãªããŸããã
ã©ãºããªãŒã§DDNSãæ§æããŸã
raspberryã«
ãã©ã€ããŒãIPãããå Žåããã®ãªãã·ã§ã³ã¯é©åã§ã¯ãããŸãããããã¯ãããŒã«ã«IPã¢ãã¬ã¹ãNo IPãµãŒãã¹ã«è»¢éããããã§ãã
ããã¯ãã©ãºããªãŒLANã®IPã¢ãã¬ã¹ãèŠã€ããå¥ã®æ¹æ³ã§ãã DDNSã¯ã©ã€ã¢ã³ããã€ã³ã¹ããŒã«ããŸãã
sudo apt-get install ddclient
ã€ã³ã¹ããŒã«äžã«ããµãŒãã¹ãéžæããå¿
èŠããããŸãã ãã®ä»ãéžæããdynupdate.no-ip.comããããã³ã«dyndns2ããŠãŒã¶ãŒåããã¹ã¯ãŒããã€ã³ã¿ãŒãã§ãŒã¹-eth0ããã¹ãåãå
¥åããŸãã

æ€èšŒã®ããã«ãIPæŽæ°ééã60ç§ã«èšå®ããŸããã ãã¡ã€ã«/ etc / default / ddclientã§ãå€daemon_interval = "60"ãèšå®ããå¿
èŠããããŸãã
ãã¶ãŒã
ç§ã®ã©ãºããªãŒã¯é·ãéããŒãã«ã®äžã«
暪ããã ãtm1638ãš
DHT11ãšãšãã«ã»ãããéããŠãéšå±ã®æž©åºŠãšæ¹¿åºŠã®è¡šç€ºããã®ä»ã®æ
å ±ã衚瀺ããŠããŸããã
ããã§ããç§ã¯ãžã£ã³ãŽããGPIO Raspberry PIãå¶åŸ¡ããããšããããšã«èå³ããããŸããã åæã®ä»äºãçµã¿åãããã·ã³ãã«ãªWebã¢ããªã±ãŒã·ã§ã³ãéçºããŸããã DHT11ã§æž¬å®ãã枩床ãšæ¹¿åºŠãããã€ãã®æçšãªæ
å ±ã確èªãã8ãªã¬ãŒã¢ãžã¥ãŒã«ïŒé»å補åã®å¶åŸ¡ã«äœ¿çšå¯èœïŒãå¶åŸ¡ããããã¹ããtm1638ã«éä¿¡ã§ããŸãã

GPIOã管çããã«ã¯ãã«ãŒãæš©éã§ãµãŒããŒãå®è¡ããå¿
èŠããããŸãã ããã¯æœåšçãªè匱æ§ã§ãã
Webã¢ããªã±ãŒã·ã§ã³ãå®å
šã«äœ¿çšããã«ã¯ããµãŒããŒãã¹ãŒããŒãŠãŒã¶ãŒæš©éãªãã§åäœããhttpsãæ§æããã¢ã«ãŠã³ãã管çããæ©èœãè¿œå ãããã°ãç¶æãã管ç察象ããã€ã¹ãžã®ã¢ã¯ã»ã¹ãå
±æããé»å補åã®ã¹ã±ãžã¥ãŒã«ãããæäœãªã©ãè¡ããŸãã
ãã ããããã¯ãŸã£ããå¥ã®èšäºã§ãã
ãããã«
Raspberry PIã¢ãã«BãB +ãŸãã¯Raspberry PI 2ã
ãã¯ãŒãã³ã¯ ãããã³ããªãŒãã³ãã€ãŒãµããããžã£ãã¯ã䜿çšãããšããã¹ããã©ã¯ãã£ã¹ãå®èšŒããããã«äœ¿çšã§ããã³ã³ãã¯ããªãµãŒããŒãåŸãããŸãã Raspbianãå®è¡ããŠããRaspberry PIã§Djangoã¢ããªã±ãŒã·ã§ã³çšã®ãµãŒããŒãã»ããã¢ããããããšã¯ãä»ã®Linuxãã«ããšå€§å·®ãããŸããã ãªããžããªå
ã®ããã±ãŒãžã¯å»æ¢ãããå¯èœæ§ããããŸãã æ°ããããŒãžã§ã³ã䜿çšããã«ã¯ããœãŒã¹ããããã°ã©ã ãæåã§ã³ã³ãã€ã«ã§ããŸãã
ãã¢ã¢ããªã±ãŒã·ã§ã³
ã®ãœãŒã¹ã³ãŒã ã
PSãã¯ãããŒã¯ã®ååãè³æã®æºåã«ååããŠãããããšã«æè¬ããŸãã
PSSè¯ãã¢ããã€ã¹ãã³ã¡ã³ããèããŠãè³æãä¿®æ£ããæºåãã§ããŠããŸãã
ãã®èšäºã¯ãTechnopark Mail.Ruèšäºã³ã³ãã¹ãïŒpark.mail.ruïŒã®äžç°ãšããŠäœæãããŸããã