Zyxel Keenetic 4G, arduino рдФрд░ ds18b20 рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░

рдЫрд╡рд┐ рд╣рд╛рдп рд╣рдмреНрдмрд░! рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд░рд╛рдЙрдЯрд░ рд╕реЗ Arduino рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!
рдЖрдзреБрдирд┐рдХ рд░рд╛рдЙрдЯрд░ рдЫреЛрдЯреЗ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдХреА рддрд░рд╣ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЙрдкрдХрд░рдг рдкрд░, рд▓рд┐рдирдХреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдк-рдбрд╛рдЙрди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рднрд╛рдЧ рдХреЗ рд╕рд╛рдеред рдореЗрд░реЗ рд╕рд╛рдордиреЗ рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ, рдХрд┐ рдореЗрд░реЗ рд░рд╛рдЙрдЯрд░ - рдЬрд╝реЗрдХреНрд╕реЗрд▓ рдХреАрдиреЗрдЯрд┐рдХ 4 рдЬреА рд╕реЗ рдЖрд░реНрдбрд┐рдиреЛ рдХреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛? рдереЛрдбрд╝рд╛ рд╕рд╛ рдЧреВрдЧрд▓, рдореИрдВ рдПрдХ рдЕрджреНрднреБрдд рдордВрдЪ рдкрд░ рдЖрдпрд╛ рдерд╛, рдЬрд╣рд╛рдВ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдХреАрдиреЗрдЯрд┐рдХ 4 рдЬреА рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕рдВрд╢реЛрдзрд┐рдд рдлрд░реНрдорд╡реЗрдпрд░ рдмрдирд╛рдпрд╛ рдерд╛ред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, Arduino рдХреЛ php_serial.class.php рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рд▓рд╛рдЗрдЯрдЯреИрдк + php рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд▓рд╛рдЗрдЯ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо arduino рдХреЛ рджреЛ рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ (рдШрд░, рд╕рдбрд╝рдХ) рд╕реЗ рд░реАрдбрд┐рдВрдЧ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХрд░реЗрдВрдЧреЗ, Sqlite3 рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╡реЗрдм рдкреЗрдЬ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред

рд░рд╛рдЙрдЯрд░ рддреИрдпрд╛рд░реА

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рд░рд╛рдЙрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Zyxel Keenetic 4G рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯреА рдЖрдВрддрд░рд┐рдХ рдореЗрдореЛрд░реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдпреВрдПрд╕рдмреА-рд╣рдм рдФрд░ рдПрдХ рдЫреЛрдЯреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдореИрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рд╕рднреА рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд▓рд┐рдВрдХ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ред рддреБрд░рдВрдд рдПрдХ рд▓рдВрдмреА рдФрд░ рдердХрд╛рдК рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдЗрдПред
  1. рд╡реИрдХрд▓реНрдкрд┐рдХ рдлрд░реНрдорд╡реЗрдпрд░ ( рдЪрд░реНрдЪрд╛ )ред рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Opkg Systemред (рд╣рдордиреЗ WIKI рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рд╛, рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдЪрд┐рддреНрд░рд┐рдд рд╣реИ)
  2. Sqlite3 рдХреЛ opkg install <рд╕рдВрдХреБрд▓ рдирд╛рдо> рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдЬрд╣рд╛рдБ <рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо> рдкреИрдХреЗрдЬ рдХрд╛ рдкреВрд░реНрдг рдкрде рд╣реИред рд╣рдо рдпрд╣рд╛рдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд▓реЗрддреЗ рд╣реИрдВ ред
  3. рд▓рд╛рдЗрдЯрдЯреИрдк рдФрд░ php рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред

рд╕реЗрдВрд╕рд░ рдХрдиреЗрдХреНрд╢рди

Ds18b20 рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рдХреЛ рдЖрд░реНрдбрд┐рдиреЛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдкреНрд░рддрд┐рд░реЛрдзрдХ рд░реЗрдЯрд┐рдВрдЧ 4.7 kOhm рд╣реИ
рдЫрд╡рд┐
рд╕реНрдХреЗрдЪ

рд╕реНрдХреЗрдЪ рднрд░реЗрдВред рдЗрд╕ рдкрд╛рда рдХреЗ рдХреЛрдб рдХреЛ рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
#include <OneWire.h> int nc; OneWire ds(10); //   OneWire ds2(11); //   byte addr[8]; byte addr2[8]; void setup(void) { Serial.begin(9600); ds.search(addr); ds2.search(addr2); } void loop(void) { byte i; byte present = 0; byte data[12]; int Temp; int znak; if (Serial.available() > 0) { nc = Serial.read(); if (nc==1) { ds.reset(); ds.select(addr); ds.write(0x44,1); present = ds.reset(); ds.select(addr); ds.write(0xBE); for ( i = 0; i < 9; i++) { data[i] = ds.read(); } Temp=(data[1]<<8)+data[0]; Temp=Temp; znak=((Temp%16)*100)/16; if (znak<0){ znak=znak*-1; } Serial.print(Temp/16); Serial.print("."); Serial.print(znak); Serial.println(); } if (nc==2) { ds2.reset(); ds2.select(addr2); ds2.write(0x44,1); present = ds2.reset(); ds2.select(addr2); ds2.write(0xBE); for ( i = 0; i < 9; i++) { data[i] = ds2.read(); } Temp=(data[1]<<8)+data[0]; Temp=Temp; znak=((Temp%16)*100)/16; if (znak<0){ znak=znak*-1; } Serial.print(Temp/16); Serial.print("."); Serial.print(znak); Serial.println(); } } } 

рд╣рдо рдХрдорд╛рдВрдб рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЙрддреНрддрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ

рдПрдХ рд╕реНрдХреЗрдЪ рдореЗрдВ рджреЛ рдЯреАрдореЗрдВ рд╣реЛрддреА рд╣реИрдВ - "1" рдФрд░ "2"ред Arduino рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЬрд╛рдиреЗ-рдорд╛рдиреЗ Jquery рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд╡рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрдЯрди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдореЗрд░реЗ рдкреГрд╖реНрда рдкрд░ 2 рдмрдЯрди рдФрд░ 2 рд╕рд╛рд░рдгреАрдмрджреНрдз рдлрд╝реАрд▓реНрдб рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рд╕реЗ рдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (index.php рджреЗрдЦреЗрдВ)ред POST рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ arduino.php рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдЖрджреЗрд╢реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣рд╛рдБ, рдХрдорд╛рдВрдбреНрд╕ рд╕реАрдзреЗ Arduino рдкрд░ рдкреНрд░реЗрд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрд╛рдкрдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝реА рдЬрд╛рддреА рд╣реИ, рд╕рд╛рде рд╣реА Sqlite3 рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ arduino.php)ред рдкреНрд▓реЗрдЯ рдореЗрдВ рддрд╛рдкрдорд╛рди рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП readbd.php рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрдЯрди рдХреЗ рд╕реБрдВрджрд░ рдбрд┐рдЬрд╛рдЗрди рдХреЛ "рд╕реАрдПрд╕рдПрд╕ 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 3 рдбреА рдмрдЯрди" рд▓реЗрдЦ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

index.php:
 <?php include("readbd.php"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ru"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <head> <link href="style.css" rel="stylesheet" media="all" /> <title>     </title> <link href="flot/examples/layout.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="jquery.js"></script> </head> <body class="body"> <br> <div class="container"> <header> <h1><span></span></h1> </header> </div> <div class="ul1" > <br> <table width="60px" border="0"><tr> <td><a href="#" id="led6" class="button black" onMouseDown="command(1);"></a></td> <td><a href="#" id="led6" class="button yellow" onMouseDown="command(2);"></a></td> </tr><tr> <td class="c1"><div id="content1" ><?php echo ''.$temp1.""; ?></div></td> <td class="c1"><div id="content2" ><?php echo ''.$temp2.""; ?></div></td> </tr> </table> </div> <br> <script> function command(id) { $.ajax({ type:'POST', url:'arduino.php', data:{msg:id}, cache: false, success: function(html){ $("#content"+id).html(html); } }) } </script> </center> </body> </html> 

arduino.php:
 <?php include "php_serial.class.php"; $serial = new phpSerial; //   Arduino (      ) $serial->deviceSet("/../../../../dev/ttyACM0"); //  $serial->confBaudRate(9600); $serial->confParity("none"); $serial->confCharacterLength(8); $serial->confStopBits(1); $serial->confFlowControl("none"); $serial->deviceOpen(); //  $serial->sendMessage(chr($_POST['msg'])); //  Arduino $read = $serial->readPort(); //  $serial->deviceClose(); try { //        $db = new PDO('sqlite:'.dirname(__FILE__).DIRECTORY_SEPARATOR.'arduino.db'); //   temp,    $db->exec('CREATE TABLE IF NOT EXISTS temp ( idtemp INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, temperature VARCHAR(255) NOT NULL, datetime VARCHAR(255) NOT NULL )'); $db->exec('CREATE TABLE IF NOT EXISTS temp2 ( idtemp INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, temperature VARCHAR(255) NOT NULL, datetime VARCHAR(255) NOT NULL )'); //     $d=date("dmy, G:i:s"); // //$db->exec('UPDATE temp SET temperature="'.$read.'", datetime="'.$d.'" WHERE idtemp='.$_POST['msg'].''); if ($_POST['msg']==1){ //     $db->exec('INSERT INTO temp (temperature, datetime) VALUES ("'.$read.'","'.$d.'" )'); //   $st = $db->query('SELECT MAX(idtemp) as id, temperature FROM temp'); $results = $st->fetchAll(); foreach ($results as $row) { echo ''.$row['temperature']."\n"; } } if ($_POST['msg']==2){ $db->exec('INSERT INTO temp2 (temperature, datetime) VALUES ("'.$read.'","'.$d.'" )'); $st = $db->query('SELECT MAX(idtemp) as id, temperature as tempe FROM temp2'); $results = $st->fetchAll(); foreach ($results as $row) { echo ''.$row['tempe']."\n"; } } } catch (PDOException $e) { die($e->getMessage()); } ?> 

рдЬрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдореБрдЭреЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛
  1. рд░рд╛рдЙрдЯрд░ рдореЗрдВ Arduino рдХреЛ / dev / ttyACM0 рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рди рдХрд┐ dev / ttyUSB0 рдХреЗ рд░реВрдк рдореЗрдВред
  2. Php рдХреЗ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рддреНрд░реБрдЯрд┐ рд▓рдЧрд╛рддрд╛рд░ рд╕рд╛рдордиреЗ рдЖрддреА рд░рд╣реА - рдХреЛрдИ рд╕реНрдЯреЗрдмрд▓ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ, рдЪрд▓рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдеред тАЭ, E_USER_RRORред
  3. рдХрдорд╛рдВрдб рднреЗрдЬрддреЗ рд╕рдордп, рдЕрд░реБрдбрд┐рдиреЛ рдиреЗ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рджреНрд░реЛрд╣ рдХрд┐рдпрд╛ред

рд╕рдорд╛рдзрд╛рди
  1. рдЪреВрдВрдХрд┐ рд╡реЗрдм рд╕рд░реНрд╡рд░ USB рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреА php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред 777 / dev / ttyACM0 рдпрд╛ / dev / ttyUSB0 (Arduino рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ) рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реЗрдЯ рдХрд░реЗрдВред
     deviceSet("/../../../../dev/ttyACM0"); 
  2. Php_serial.class.php рдореЗрдВ рдПрдХ рдХреЛрдб рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛:
      if($this->_exec("stty --version") === 0) { register_shutdown_function(array($this, "deviceClose")); } else { trigger_error("No stty availible, unable to run.", E_USER_ERROR); } 
  3. GND рдФрд░ рд░реАрд╕реЗрдЯ рдкрд┐рди рдХреЗ рдмреАрдЪ Arduino рдореЗрдВ рд╕реНрдХреЗрдЪ рднрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рдВрдзрд╛рд░рд┐рддреНрд░ рдХреЛ 22 mF рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рд░рд┐рдмреВрдЯ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред

рдЪрд┐рддреНрд░реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА

рдЫрд╡рд┐

рдЫрд╡рд┐

рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдкреБрдирд╢реНрдЪ

рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд░рд╛рдЙрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЖрд░реНрдбрд┐рдиреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдФрд░ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдмрд╛рддреЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ Arduino рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдШрд░ рдХреЗ рдХрд┐рд╕реА рднреА рдЙрдкрдХрд░рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВред

рдЖрдордВрддреНрд░рд┐рдд UFO рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/In141865/


All Articles