ãŸãã Black Swiftãã€ã³ã³ãããžã§ã¯ãã«é¢ããããã€ãã®éèŠãªãã¥ãŒã¹ã次ã«ã¡ã€ã³ãããã¯ã§ããOpenWRTã䜿çšããŠå®å šãªçµã¿èŸŒã¿ããã€ã¹ããã€ã³ã³ã«å€æããæ¹æ³ã«é²ã¿ãŸãããã
ç§ã®æèŠã§ã¯ãæ¬æ Œçãªçµã¿èŸŒã¿ã³ã³ãã¥ãŒã¿ãŒã¯æ¬¡ã®2ã€ã®ããšãªãã«ã¯äžå¯èœã§ãã
- GPIOå ¥åãå«ããããŸããŸãªçç±ã«ããå²ã蟌ã¿ãµããŒã
- é«è§£å床ã®ããŒããŠã§ã¢ã¿ã€ããŒã®ãµããŒã
ããããªããã°ãå®éã®èªååã®åé¡ã®å€§éšåã¯ãŸã£ãã解決ãããªããããŸã£ãã解決ãããªãæ¹ãããæ¹æ³ã§è§£æ±ºãããŸãã äŸå€ã¯æãäžè¬çã§ã-ãªã¬ãŒãåŒããŠãLEDãç¹æ» ãããããã€ãã®ãã¿ã³ã远跡ããŸãã æ£ç¢ºãªã¿ã€ãã³ã°ããã³/ãŸãã¯å€éšã€ãã³ãã«å¯Ÿããå€ããå°ãªããè¿ éãªåå¿ãå¿ èŠãšãããã¹ãŠã¯ã察å¿ããæ©èœãå€éšã³ã³ãããŒã©ãŒã«è»¢éããããšãªãã«ã¯å®è¡äžå¯èœã§ãããäžèšã®ããšãè¡ãããšãã§ããããã€ã¹èšèšãç¡æå³ã«ããŸãã
Atheros AR9331 SoCã«ååãªæ°ã®ãã€ã¯ãã³ã³ãã¥ãŒã¿ãŒãæèŒããOpenWRTã§ããã2ã€ã®æ©èœããµããŒãããçµã¿èŸŒã¿ãœãªã¥ãŒã·ã§ã³ãšããŠæ£ç¢ºã«é 眮ãããå®äŸ¡ãªRalink RT5350ã䜿çšãããšããã¹ãŠãéåžžã«æ²ãããªããŸãã ããã§ããã¡ããããã®ã¬ãã«ã®ãµããŒãã§ãããã®ãã€ã¯ãã³ã³ãã¥ãŒã¿ãŒãå¿ èŠãªã®ã¯èª°ãªã®ããšããçåãçããŸãããããã空äžã«ã¶ãäžããŠã¿ãŸãããã
ãã ãã TCP / IPãä»ããŠèŠããšãå¥åº·ãªäººã®ããã«ããŠã³ããå¯èœæ§ããããŸãã
ããããæåã«ããã¥ãŒã¹ïŒ
- Black Swiftã®æåã®ãããã¯ãã·ã¢ã«ãããã«ãŒãã«ã®äºå泚æã«åŸã£ãŠæ¢ã«éä¿¡ãããŠããŸãïŒã€ãŸããKickstarterã§äœæãããŠããŸããïŒã äºå泚ææã«é éãæå®ããå Žåã¯ãåŸ ã£ãŠãã ãããèªåã§ãããåãåãå Žåã¯ããªãã£ã¹ã«é»è©±ããŠé転ããŠãã ããã
- äºå泚æã¯ããªãã£ãããBlack Swiftãè³Œå ¥ãããå Žåã¯ããªãã£ã¹ã«é»è©±ããŠãã©ã€ãããŠãã ãããäºçŽæ³šæã®éãè¶ ããããŒãããããããããŸãã é éãæé ããããšãã§ããŸãããæãããªçç±ã«ãããäºçŽæ³šæã®æåŸå°Ÿã«ç«ã¡ãŸãã
- FCCèªèšŒã¯éããªãå®äºããŸãã
- çŽæã©ãããKickstarterã®æ¯æŽè ãžã®æºè¶³ã¯6æã«äºå®ãããŠããŸãã Kickstarterã®æè¡çç¹åŸŽã«å¿ããŠããã·ã¢èªã話ã人ãä»ã®å¥ã®æ¯æŽè ã«æ²ç€ºæ¿ãéãããšã¯ã§ããŸããã
- æéãäžè¶³ããŠãããããããã¥ã¡ã³ããåŸã ã«è£å ãããŠããŸãã äž»ã«è±èªã§ãã
- ç¹ã«ãOpenWRT SDKãšEclipseã䜿çšããä»®æ³ãã·ã³ã®ã€ã¡ãŒãžãããã«ãããŸã ïŒæ°æ¥åŸã«ããããã䜿çšããŠSDKã®ææ°ããŒãžã§ã³ã«æŽæ°ããŸãïŒã OpenWRTã®äžã§äœããæžãããããå®éã«ã¯ãã®æ¹æ³ãç解ããŠããªã人ã«åœ¹ç«ã¡ãŸãã
ããŠãä»-ãããã¯ã«ã
çè«
Atheros AR9331ã«ã¯ãçµã¿èŸŒã¿ã³ã³ãã¥ãŒã¿ãŒã«ãšã£ãŠéåžžã«éèŠãª2ã€ã®èŠçŽ ããããŸãïŒããŒããŠã§ã¢ã¿ã€ããŒïŒã·ã¹ãã ãã¹ã®åšæ³¢æ°ã§4ãã£ãã¯ããŒãã«éãããšå²ã蟌ã¿ãçæïŒãšGPIOã¬ãã°ã®å²ã蟌ã¿ïŒä¿¡å·ã®äž¡åŽã§åäœå¯èœïŒã
æ®å¿µãªããããœãããŠã§ã¢ã¬ãã«ã§ã¯ãOpenWRTã¯ã©ã¡ãããµããŒãããŠããŸãããã€ãŸããããã€ãã®ééãã«ãŠã³ãããŠã³ããããããã€ãã®ãããã³ã«ããšãã¥ã¬ãŒããããå Žåã¯ãudelayïŒïŒãæå ã«ããããã«ãã¿ã¹ã¯ã«ãªãããšãæã¿ãŸã誰ãããªãã®ãããã³ã«ã®ãšãã¥ã¬ãŒã·ã§ã³ã®çãäž-éŠã«åãŸããªãã§ãããã GPIO IRQããµããŒãããããã«ãåé¡ã®äžéšã®ã¿ã解決ããçãç°å¢ã§åºãç¥ãããŠãããããããããŸããå²ã蟌ã¿ãååŸããã ãã§ã¯äžååã§ããããããåŠçããŠãç¬èªã®ããã°ã©ã ãæ¢ã«ååšãããŠãŒã¶ãŒã¹ããŒã¹ã«é 眮ããå¿ èŠããããŸãã ãã¡ãããããããé©çšããã«ã¯ããã¹ãŠã®ãã¡ãŒã ãŠã§ã¢ãèªåã§çµã¿ç«ãŠãå¿ èŠããããŸããã¿ã¹ã¯ã¯è¿ éã§ã¯ãªããhemoã§ã¯ãããŸããã
ã¿ã€ããŒããµããŒããããã®ã¯äœããããŸããã
ããæ£ç¢ºã«ã¯ãæè¿ãŸã§ããã§ã¯ãããŸããã§ããã
GPIOããã®å²ã蟌ã¿ããã£ãããããŠãŒã¶ãŒç©ºéãžã®ä¿¡å·ãšããŠéä¿¡ããã«ãŒãã«ã¢ãžã¥ãŒã«ã¯æ¬¡ã®ãšããã§ããgithub.com / blackswift / gpio-irq-handler
åçŽã«æ©èœããŸããæ¬äŒŒãã¡ã€ã«/ sys / kernel / debug / gpio-irqã«ã+ GPIO PIDããšããè¡ãæžã蟌ãå¿ èŠããããŸããGPIOã¯å¿ èŠãªã¬ãã°ã®çªå·ãPIDã¯ã·ã°ãã«ãéä¿¡ããããã»ã¹ã§ãã 次ã«ãã·ã°ãã«ãã³ãã©ãŒçªå·42ãéžæããçå®ã«åŸ æ©ããŸãã å²ã蟌ã¿ãåé€-åããã¡ã€ã«å ã®ã-GPIO PIDãã
ããŒããŠã§ã¢ã¿ã€ããŒãµããŒããå®è£ ããã«ãŒãã«ã¢ãžã¥ãŒã«ã¯ãã¡ãã§ãïŒ github.com/blackswift/timer-irq-handler
é£ããããšã§ã¯ãããŸããïŒæåã«/ sys / kernel / debug / timer-irq writeâ + TIMER TICKâãããã§TIMERã¯ã¿ã€ããŒã®æ°ã§ãïŒ0ãã3ãã·ã¹ãã ã«ãã£ãŠå æãããŠãããã®ã¯ãããŸããã TICK-ãã€ã¯ãç§åäœã®è§£å床ïŒãã£ãã¯ããšã«å²ã蟌ã¿ãçæãããããã20ÎŒsæªæºã«èšå®ããªãã§ãã ããïŒã 次ã«ãã+ TIMER TIMEOUT PIDãããããŸããããã§ãTIMEOUTã¯ã·ã°ãã«ãåä¿¡ãããæéã§ãPIDã¯ããã»ã¹ã§ãã ã·ã°ãã«çªå·ã¯43ã§ããã¿ã€ããŒã1åã ãåäœãããå Žåã¯ãæåŸã«ãonceããšããåèªãè¿œå ããŸãã äžèŠãªå Žåã¯ãäžèšã®ãã¡ã€ã«ã«ã-TIMERããšèšããŸã§æ©èœããŸãã
ä»ã®ãããã«ã¯ç°ãªãã¬ãžã¹ã¿ã¢ãã¬ã¹ããããããã«ãŒãã«ã¢ãžã¥ãŒã«ã¯ã»ãšãã©ã®å ŽåAR9331ã§ã®ã¿åäœããŸãã ããã«ãGPIO IRQãæ©èœãããã«ã¯ãåè¿°ã®ããããåãããã¡ãŒã ãŠã§ã¢ãå¿ èŠã«ãªããŸãããçŸæç¹ã§ã¯ãããã«ããã®ãããªãã¡ãŒã ãŠã§ã¢ã¯Black Swiftã§ã®ã¿å ¥æã§ããŸãã
ç·Žç¿ãã
ç¿åŸããç¥èã䜿çšããå¿ èŠããããŸããã€ãŸããã¿ã€ããŒãšå²ã蟌ã¿ã«åœ¹ç«ã€äœããåéããããã§ãã ç§ã«ãšã£ãŠã¯æ°è±¡èŠ³æž¬æã«ãªããŸãïŒKDPVãåç §ïŒã ãªãã§ïŒ 第äžã«ã誰ããç解ããŠããããšããããŠç¬¬äºã«ãäžè¬çãªDHT22ã»ã³ãµãŒã¯ãŸã èŠçã§ãã 1-Wireã«é¡äŒŒãããããã³ã«ãåããŠããŸãããããã§ã¯1-Wireã«åæãããå Žåã«ã®ã¿ããã¹ããããŒã¿ã¬ãã°ãã°ã©ã³ãã«äžåºŠåŒã£åŒµããšãã»ã³ãµãŒèªäœãå¿çããŠåºå41ãã«ã¹ããã«ã¹ããŸãã ã0ããšã1ãã®ãã«ã¹å¹ ã¯ç°ãªããŸã-28ÎŒs察70ÎŒsã
ãã³ãŒãããã®ã¯ããªãäžæå¿«ãªããšã§ããçä¿¡ããçããã«ã¹ã®é·ããèšç®ããå¿ èŠããããŸãã äžæããããšãªã解決ãããŸãããççŽã«èšã£ãŠãäœæ¥ã®å®å®æ§ãæ°ã«å ¥ããªãã§ãããã å¿ èŠã«å¿ããŠããããã³ã«ã®ãœãããŠã§ã¢å®è£ ãæäŸããŸãã ãã£ãŠã¿ãŠ
å²ã蟌ã¿ã䜿çšãããšãåé¡ã¯æ ¹æ¬çã«ç°¡çŽ åãããŸããå€ãã®äœæ¥ãããã«ãç®çã®ã¬ãã°ã§å²ã蟌ã¿ããã£ããããããããéåžžã®udelayïŒïŒã§35ÎŒsãã«ãŠã³ãããåãã¬ãã°ã®ã¬ãã«ã枬å®ããã«ãŒãã«ã¢ãžã¥ãŒã«ãäœæã§ããŸãã ã1ããããå Žåãä¿¡å·ã¯35ÎŒsããé·ããå®éã«ã¯ã1ãã§ãã å®éã«ã¯ãããã ãã§ãã ã«ãŒãã«ã¢ãžã¥ãŒã«ãç§ãã¡ããå°ãé£ããæžãå ŽåããœãŒã¹ã¯æ¬¡ã®ãšããã§ãïŒ github.com/blackswift/gpio-dht-handler
ã»ã³ãµãŒããããŒã¿ãååŸãããšãã¢ãžã¥ãŒã«ã¯ãããã«ãŒãã«åºåïŒlogreadã³ãã³ããåç §ïŒã«çºè¡ããããæå®ãããPIDã®ã¢ããªã±ãŒã·ã§ã³ã«ä¿¡å·44ãçºè¡ããŸãã CRCãšã©ãŒãçºçãããšãã³ã³ãœãŒã«ã«ããšã©ãŒãããã¢ããªã±ãŒã·ã§ã³ã«0ã衚瀺ãããŸãã
ããã«ã€ããŠã¯ãã¢ããªã±ãŒã·ã§ã³èªäœãèšè¿°ããå¿ èŠããããŸããåžœåããã¶ããã©ããã確èªããããã«ã«ãŒãã«ãã°ã«ã¢ââã¯ã»ã¹ããŸããã
ããã§ã¯ãã¹ãŠãããããªãã®ã§ããããšãããããŸãã1åã«1åã«ãã«ããšé³ãç«ãŠãããŒããŠã§ã¢ã¿ã€ããŒãéå§ããŸãïŒå¯èœãªæ倧ã«ãã«ãæéã¯UINT_MAXãã€ã¯ãç§ãã€ãŸã71å匷ã§ãïŒã ã·ã°ãã«ãããããæ¥ãŠããã®ãã³ãã©ãŒããªã¯ãšã¹ããDHT22ãããã³ã«ã¢ãžã¥ãŒã«ã«éä¿¡ããŸã-åã«æ¬äŒŒãã¡ã€ã«ã«æžã蟌ã¿ãŸãã ããã«10ããªç§åŸãDHT22ããã®å¿çä¿¡å·ãå°çããŸããå®éã«ã¯ããã³ãã©ãŒããããåŠçããŸãããã®äŸã§ã¯ããã¡ã€ã«ã«æžã蟌ã¿ãŸãã
void irq_handler(int n, siginfo_t *info, void *unused) { //every minute counter++; dht_request_data(); } void dht_request_data() { int fd=open("/sys/kernel/debug/irq-dht", O_WRONLY); sprintf(buf, "%d %u", DHT_GPIO, getpid()); // gpio-dht-handler kernel module write(fd, buf, strlen(buf) + 1); close(fd); } void dht_handler(int n, siginfo_t *info, void *unused) { if (info->si_int == 0) // DHT protocol CRC error { if (++failcounter > 10) { printf("Error retrieving data from DHT sensor\n"); failcounter = 0; return; } usleep(3000000); // wait 3 seconds between attempts dht_request_data(); return; } float humidity = (float)((info->si_int) >> 16)/10.0; // 2xMSB float temperature = (float)((info->si_int) & 0xFFFF)/10.0; //2xLSB // ... } int main(int argc, char* argv[]) { int timer = TIMER_TIMER; int tick = 1000*1000; // 1 sec unsigned int timeout = 1000*1000*60; // 60 sec if (!init_handler(timer, tick, timeout)) { printf("Error initializing timer %d\n", timer); return -1; } struct sigaction sig; sig.sa_sigaction = dht_handler; sig.sa_flags = SA_SIGINFO | SA_NODEFER; sigaction(SIG_DHT_IRQ, &sig, NULL); // ... }
ãã£ãä»ãæå°éã®åŽåã§ãæåéãã®æå³ã§ãèã®äžã§30åã枩床ãšæ¹¿åºŠã®ãã°ãããã¹ããã¡ã€ã«ã«ä¿åããæ°è±¡èŠ³æž¬æãã§ããŸããã åãããã«ç°¡åã«ãããã¹ããã¡ã€ã«ãããšãã°sqlite3ããŒã¿ããŒã¹ã«å€æŽã§ããŸãã
ããã¹ããã¡ã€ã«ã¯logreadã³ãã³ããããåªããŠããŸããããããŸã§ã®ãšãããå€ããå°ãªããå¥åº·ãªäººãèªå® ã§æã¡ãããã®ãšã¯ãŸã£ããéããŸãã ããŒã¿ãã°ã©ãã§çŸãã衚瀺ããå¿ èŠããããŸãã PNGãã¡ã€ã«ãžã®åºåã䜿çšããŠCã§ã°ã©ããæç»ããããšã¯ããªãéèŠãªã¿ã¹ã¯ã§ãããããããçŽ æã§ããã解決ããããªãã ãã§ãªãããããå®è¡ã§ããã©ã€ãã©ãªãæ¢ããŠãã ããã 幞ããªããšã«ããã€ã¯ãã³ã³ãã¥ãŒã¿ãŒã§æ¬æ ŒçãªLinuxãå®è¡ããŠããã®ã§ããã®ãããªããšãããå¿ èŠã¯ãããŸãããgnuplotããã±ãŒãžãã€ã³ã¹ããŒã«ããŠãããããŒã¿ãéä¿¡ããŸãã
set terminal png medium size 600,300 set format x "" set key below set xrange [60:0] set yrange [0:100] set grid ytics lc rgb "#bbbbbb" lw 1 lt 0 set grid xtics lc rgb "#bbbbbb" lw 1 lt 0 set output "/www/light/img/last_60m.png" plot "-" using 0:1 title "Temperature" with lines, "-" using 0:1 title "Humidity" with lines
ç¹°ãè¿ããŸããããã®æž©åºŠãã©ã®ããã«èªèããŸããïŒ ã¯ããããã¯åºæ¬ã§ãïŒWebãµãŒããŒãã»ããã¢ãããïŒããšãã°ãopkg install lighttpd-å¿ èŠã«å¿ããŠPHPã䜿çšã§ãããšããäºå®ã«æ³šç®ããŠãããããwebtpãlighttpdãã€ã³ã¹ããŒã«ããŸãïŒãç»åãåã蟌ãHTMLããŒãžãäœæããåæã«çŸåšã®ããŒã¿æ°åã§ã ãããå¹æã«èããå¿ èŠããªãå Žåã¯ãPHPã§ãã¹ãŠãè¡ãããšãã§ããŸããå¿ èŠã«å¿ããŠãsedãšãã£ã¿ãŒã䜿çšããŠæåãªsedãšãã£ã¿ãŒïŒããã³ä»ã®ãŠãŒã¶ãŒãè ããïŒã«ãã£ãŠçŸåšã®ããŒã¿ãéçãªHTMLãã¡ã€ã«ã«å€æŽããæ°ããããŒã¿ã
SR_TIME="class=\"time\">.*</span" RP_TIME="class=\"time\"> $3 </span" SR_TEMP="class=\"temp\">.*</span" RP_TEMP="class=\"temp\"> $1\°C $2% </span" cat /www/light/index.html | sed -es,"$SR_TIME","$RP_TIME", | sed -es,"$SR_TEMP","$RP_TEMP",
ä»ã«äœãæ®ã£ãŠããŸããïŒ ãŸãããã¶ãããã§äœãèµ·ãã£ãŠããã®ããç®ã§èŠãŠã¿ããšåœ¹ã«ç«ã€ã§ãããã Webã«ã¡ã©ã䜿çšããBlack Swiftã®USB-OTGã¢ããã¿ãŒãä»ããŠè²Œãä»ããfswebcamãŠãŒãã£ãªãã£ã䜿çšããŠã1åéã«1ã€ã®ç»åã衚瀺ããŸãã ãªã³ã¯ã«åŸã£ãŠãã©ãŠã¶ãéããŠèŠãŠãã ããã
ãªã³ã¯ïŒ ãªã³ã¯ã¯ãã¡ãïŒ http ïŒ //files.black-swift.com ïŒ 9000 /
ããŒãã¯Black Swiftã«çŽæ¥è»¢éãããããããªã³ã¯ã«è¡šç€ºããããã®ã¯ãã¹ãŠãã®ããŒãã§ã®ã¿ã¹ãã³ããŸãã
ãŸãã圌ãã¯æè¿ããµãŒãã¹narodmon.ruã®ãã«ã³ããŒã§äœåºŠæã£ãŠãããã«é¢ããããŒã¿ã衚瀺ããããšãæµè¡ã ãšèšããŸãã æ£çŽãªãšãããç§ã¯ããã䜿çšããããšã¯ãããŸããã§ããããããã»ã©é£ãããªãããšãå€æããŸãã-PHPãµã³ãã«ãããã¥ã¡ã³ãããã³ããŒããBlack Swiftã®/root/narodmon.phpãã¡ã€ã«ã«æžã蟌ã¿ã/ã§15åããšã«ãœãããŠã§ã¢ãããã«ããŸãusr / bin / php-cgi/root/narodmon.phpãPHPãããã䜿çšããæºåãã§ããŠããããã§ãã ãã¡ããããã©ã¡ãŒã¿ãæž¡ãããšãå¿ããªãã§ãã ããã
ããã§èªè ã¯é©ããããããããŸãã-ãªãç§ãã¡ã¯ãã®ãããªããŸããŸãªèšèªãšãŠãŒãã£ãªãã£ãå¿ èŠãšããã®ã§ããããïŒ å šéšæžããã»ãããããããªãã§ãã
Cã®åºæ¬çãªç¥èãäžè¬çãªUnixãŠãŒãã£ãªãã£ã®ç¥è-以äžã§å®äºã§ãã PHPãå¿ èŠã§ã-ããã«ãããŸãã ããŒã¿ããŒã¹ã«ããã-ãããååŸãã眲åããŸãã ã¢ã»ã³ãã©ãŒã«ããã-å¯èœã§ãããéåžžã«é«äŸ¡ã§ãã
äœãæ©èœããã誰ããã®çç±ãç¥ããŸãã
çè«ã¯ããã¹ãŠãç¥ã£ãŠããããäœãæ©èœããªããšãã§ãã ç·Žç¿ã¯ãã¹ãŠããŸããããŸããããã®çç±ã¯èª°ã«ãããããŸããã ç§ãã¡ã®ç 究宀ã§ã¯ãçè«ãšå®è·µãçµã¿åããããŠããŸããäœãæ©èœããã誰ããã®çç±ãç¥ããŸããã
ããããèªåãè³è³ããªãããã«ãç§ã¯æ³šæããŸã-ãããŸã§ã®ãšããããã¹ãŠãåžæã©ããã«æ©èœãããšã¯éããŸããã
github ãæ©ãåããš ãå éšã§éåžžã«çŸããäœãããDHT22ãæäœããããã®ä»£æ¿ã¢ãžã¥ãŒã«ãç°¡åã«èŠã€ããããšãã§ããŸããããã¯ãçä¿¡ãã«ã¹ã®æç¶æéãæåéã枬å®ããŸãã ãã€ã¯ãç§åäœã ãããŠéåžžã«æ£ç¢ºã«-ãã£ãªãã¬ãŒã·ã§ã³ããããžã§ãã¬ãŒã¿ãŒã§ã¯ãã¹ãããŸããã§ããããDHT22ããã®ããŒã¿ã¯ãããŒã¿ã·ãŒãã«ç€ºãããŠããããŒã¿ãš3ã4ãã€ã¯ãç§ããç°ãªããŸããã
1ã€ã®äŸå€ãé€ããŸãã
OpenWRTã®å¥¥æ·±ãã«ã¯ãæäœäžã«ä»ã®ãã¹ãŠã®å²ã蟌ã¿ãåœè£ ããããéªæªãªUSBå²ã蟌ã¿ãã³ãã©ãŒããããŸããé·æéåäœããããã30ã40ãã€ã¯ãç§ããããŸãã ãã®çµæããã®å ŽåãGPIOããã®äžæã®äžéšãã¹ãããããã ãã§ãããããé·ãé 延ã§ãããåä¿¡ã§ããŸãã æ®å¿µãªããã1999幎ã®ã¢ã»ã³ãã©ãŒãšèäœæš©ã®äžçã§ã¯ããŸã å®å šã«ã¯è§£æãããŠããŸããããã®ããããã«ã¹ããšã«2ã€ã®å²ã蟌ã¿ãåŠçããã¢ãžã¥ãŒã«ãèã«çœ®ãå¿ èŠããããŸãããã®ãããªæ¡ä»¶äžã§æåã®å²ã蟌ã¿ããã£ãããããããã35ÎŒsã枬å®ããæ¹ãã¯ããã«ä¿¡é Œæ§ããããŸãã
ããã§ã圌ã¯2ã€ã®å²ã蟌ã¿ãé£ã¹ã3çªç®ã®å²ã蟌ã¿ãããã·ã¥ããŸããã
ããã«ãUSBãã¢ã¯ãã£ãã«åäœããŠããå ŽåïŒããšãã°ãWebã«ã¡ã©ããã¹ããªãŒãã³ã°ãããå ŽåïŒããã®ãããªé 延ãé »ç¹ã«çºçããããã1ã€ã®å²ã蟌ã¿ã®ã¿ãå¿ èŠãšããã¢ãžã¥ãŒã«ãå±éºã«ãããããŸãã ãã ããæ°åãã€ã¯ãç§ã®é 延ãããã»ã©éèŠã§ãªããããã«éèŠåºŠã®äœããã®ã§ã¯ãããã«æ°ä»ããªãã§ããããããããããã¯ãã¹ãŠåãããã«äžå¿«ã§ãã
ããã«ã€ããŠäœãèšãããããšãããã°ãç§ãã¡ã¯èå³ãæã£ãŠèããŸãã
次ã®ã·ãªãŒãºã§
OpenWRTã«ã¯ãUARTã§ã³ã³ãœãŒã«åºåãå®å šã«ç¡å¹ã«ããæå¹ãªæ¹æ³ããªãããšããåç¥ã§ããïŒ
ã¯ããããã¯å¥ã®é¢çœããã©ããã§ãïŒã©ããªãã©ã¡ãŒã¿ãŒããã¡ã€ã«ã«æžã蟌ãã§ããUARTã§ããŒããããŒããããšå€§éã®ãŽããéšã«ãªããŸãã ãŠãŒã¶ãŒãå©çšã§ãããã©ã¡ãŒã¿ãŒã¯ããã®å±±ã®ãµã€ãºã®ã¿ã決å®ããŸã-ãããŠãããã¯åžžã«ãŒãã§ã¯ãããŸããã
Black Swiftã§ã¯ããã¹ãŠã®ã³ã³ãœãŒã«ãUARTããå®å šã«åæããã«ã¯ãã³ãã³ããfw_setenv silent 1ããå ¥åããŠåèµ·åããŸãã ããããããã¯å¥ã®è©±ã§ãã
PSææ¥ãD.Aãã ãã§ãªãSkolkovo Startup Villageã«æ¥ãŸã ã¡ãããŒãžã§ãã§ãããç¹ã«ç§ã¯ãã®ã€ãã³ãã«åå ããŠããŸãã ã ã¯ã©ãŠããã¡ã³ãã£ã³ã°ããã³/ãŸãã¯ïŒã€ãã³ãã®ç¯å²å€ã§ïŒBlack Swiftã«ã€ããŠè©±ãããå Žåã¯ãè¡ã£ãŠãã ããã