{"id":416,"date":"2015-12-20T03:33:11","date_gmt":"2015-12-20T00:33:11","guid":{"rendered":"http:\/\/arduinolab.pw\/?p=416"},"modified":"2015-12-20T03:33:11","modified_gmt":"2015-12-20T00:33:11","slug":"vebserver-na-arduino-i-enc28j60","status":"publish","type":"post","link":"https:\/\/arduinolab.pw\/index.php\/2015\/12\/20\/vebserver-na-arduino-i-enc28j60\/","title":{"rendered":"\u0412\u0435\u0431\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 Arduino \u0438 ENC28J60"},"content":{"rendered":"<p>\u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0432\u0435\u0431\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 \u0430\u0440\u0434\u0438\u043d\u043e \u0441 \u0435\u0437\u0435\u0440\u043d\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u0435\u043c 28J60 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 DS18B20, \u043a\u043e\u0434 \u0438\u0437 <a href=\"https:\/\/youtu.be\/KbIY0Y_d7dA\" target=\"_blank\">\u0432\u0438\u0434\u0435\u043e<\/a>.<\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<pre>#include\u00a0&lt;<span style=\"color: #cc6600;\">OneWire<\/span>.h&gt;\r\n#include\u00a0&lt;etherShield.h&gt;\r\n#include\u00a0&lt;ETHER_28J60.h&gt;\r\n\r\n<span style=\"color: #cc6600;\">static<\/span> uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x10, 0x24};  \r\n<span style=\"color: #cc6600;\">static<\/span> uint8_t ip[4] = {192, 168, 3, 15};    \r\n<span style=\"color: #cc6600;\">static<\/span> uint16_t port = 80;  \r\n\r\nETHER_28J60\u00a0ethernet;\r\n<span style=\"color: #cc6600;\">OneWire<\/span>  ds(7); <span style=\"color: #7e7e7e;\">\/\/   \u0432\u0445\u043e\u0434 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 18b20<\/span>\r\n\r\n<span style=\"color: #cc6600;\">byte<\/span> addr[8]; \r\n\r\n<span style=\"color: #cc6600;\">float<\/span> getTemp(){   <span style=\"color: #7e7e7e;\">\/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430<\/span>\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">byte<\/span> data[12];    <span style=\"color: #7e7e7e;\">\/\/ \u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0443<\/span>\r\n\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">search<\/span>(addr);   \r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">reset_search<\/span>(); \r\n\u00a0\u00a0\r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">reset<\/span>();            \r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">select<\/span>(addr);        \r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">write<\/span>(0x44);      \r\n\u00a0\u00a0<span style=\"color: #cc6600;\">delay<\/span>(1000);   \r\n\u00a0\u00a0\r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">reset<\/span>();\r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">select<\/span>(addr);    \r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">write<\/span>(0xBE);          \r\n\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">for<\/span> (<span style=\"color: #cc6600;\">int<\/span> i = 0; i &lt; 9; i++) data[i] = ds.<span style=\"color: #cc6600;\">read<\/span>(); \r\n\u00a0\u00a0<span style=\"color: #cc6600;\">int<\/span> raw = (data[1] &lt;&lt; 8) | data[0]; <span style=\"color: #7e7e7e;\">\/\/ \u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0432 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443   <\/span>\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">if<\/span> (data[7] == 0x10) raw = (raw &amp; 0xFFF0) + 12 - data[6];  \r\n\u00a0\u00a0\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">return<\/span> raw \/ 16.0;\r\n}\r\n\r\n\r\n<span style=\"color: #cc6600;\">void<\/span> <span style=\"color: #cc6600;\"><b>setup<\/b><\/span>(){ \r\n\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\"><b>setup<\/b><\/span>(mac, ip, port);\r\n}\r\n\r\n<span style=\"color: #cc6600;\">void<\/span> <span style=\"color: #cc6600;\"><b>loop<\/b><\/span>()\r\n{\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">if<\/span> (ethernet.serviceRequest())\r\n\u00a0\u00a0{\u00a0\r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(<span style=\"color: #006699;\">\"&lt;html&gt;&lt;head&gt;&lt;title&gt;temperature&lt;\/title&gt; &lt;\/head&gt;\"<\/span>);\r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(<span style=\"color: #006699;\">\"&lt;body&gt;&lt;CENTER&gt;&lt;H2&gt;temperature&lt;\/H2&gt;&lt;\/BR&gt;&lt;H1&gt;\"<\/span>);\r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(getTemp());\r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(<span style=\"color: #006699;\">\"C&lt;\/H1&gt;&lt;\/CENTER&gt;&lt;\/body&gt;&lt;\/html&gt;\"<\/span>);\r\n\u00a0\u00a0\u00a0\u00a0ethernet.respond();\r\n\u00a0\u00a0}\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">delay<\/span>(100);\r\n}\r\n\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<pre>#include\u00a0&lt;<span style=\"color: #cc6600;\">OneWire<\/span>.h&gt;\r\n#include\u00a0&lt;etherShield.h&gt;\r\n#include\u00a0&lt;ETHER_28J60.h&gt;\r\n\r\n<span style=\"color: #cc6600;\">static<\/span> uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x10, 0x24};  \r\n<span style=\"color: #cc6600;\">static<\/span> uint8_t ip[4] = {192, 168, 3, 15};    \r\n<span style=\"color: #cc6600;\">static<\/span> uint16_t port = 80;  \r\n\r\nETHER_28J60\u00a0ethernet;\r\n\r\n<span style=\"color: #cc6600;\">OneWire<\/span>  ds(7); <span style=\"color: #7e7e7e;\">\/\/   \u0432\u0445\u043e\u0434 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 18b20<\/span>\r\n\u00a0\u00a0\r\n<span style=\"color: #cc6600;\">float<\/span> getTemp(){   <span style=\"color: #7e7e7e;\">\/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430<\/span>\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">byte<\/span> data[12];   <span style=\"color: #7e7e7e;\">\/\/ \u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043d\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u0443<\/span>\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">byte<\/span> addr[8];  \r\n\u00a0\u00a0\r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">search<\/span>(addr);   \r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">reset_search<\/span>(); \r\n\u00a0\u00a0\r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">reset<\/span>();            \r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">select<\/span>(addr);        \r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">write<\/span>(0x44);      \r\n\u00a0\u00a0<span style=\"color: #cc6600;\">delay<\/span>(1000);   \r\n\u00a0\u00a0\r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">reset<\/span>();\r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">select<\/span>(addr);    \r\n\u00a0\u00a0ds.<span style=\"color: #cc6600;\">write<\/span>(0xBE);          \r\n\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">for<\/span> (<span style=\"color: #cc6600;\">int<\/span> i = 0; i &lt; 9; i++) data[i] = ds.<span style=\"color: #cc6600;\">read<\/span>(); \r\n\u00a0\u00a0<span style=\"color: #cc6600;\">int<\/span> raw = (data[1] &lt;&lt; 8) | data[0]; <span style=\"color: #7e7e7e;\">\/\/ \u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u043c \u0432 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443   <\/span>\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">if<\/span> (data[7] == 0x10) raw = (raw &amp; 0xFFF0) + 12 - data[6];  \r\n\u00a0\u00a0\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">return<\/span> raw \/ 16.0;\r\n}\r\n\r\n\r\n<span style=\"color: #cc6600;\">void<\/span> <span style=\"color: #cc6600;\"><b>setup<\/b><\/span>(){ \r\n\u00a0\u00a0<span style=\"color: #cc6600;\"><b>Serial<\/b><\/span>.<span style=\"color: #cc6600;\">begin<\/span>(9600);\r\n\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\"><b>setup<\/b><\/span>(mac, ip, port);\r\n\u00a0\r\n}\r\n\u00a0\r\n<span style=\"color: #cc6600;\">void<\/span> <span style=\"color: #cc6600;\"><b>loop<\/b><\/span>(){\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">char<\/span>* params;\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">if<\/span> (params = ethernet.serviceRequest())  {     \r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(<span style=\"color: #006699;\">\"&lt;html&gt;&lt;head&gt;&lt;title&gt;temperature&lt;\/title&gt; &lt;\/head&gt;\"<\/span>);\r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(<span style=\"color: #006699;\">\"&lt;body&gt;&lt;CENTER&gt;&lt;H2&gt;temperature&lt;\/H2&gt;&lt;\/BR&gt;&lt;H1&gt;\"<\/span>);\r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(getTemp());\r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(<span style=\"color: #006699;\">\"C&lt;\/H1&gt;\"<\/span>); \r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(<span style=\"color: #006699;\">\"&lt;A HREF='?cmd=1'&gt;1111 &lt;\/A&gt;\"<\/span>);\r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(<span style=\"color: #006699;\">\"&lt;A HREF='?cmd=2'&gt;2222&lt;\/A&gt;\"<\/span>);\r\n\u00a0\u00a0\u00a0\u00a0ethernet.<span style=\"color: #cc6600;\">print<\/span>(<span style=\"color: #006699;\">\"&lt;\/CENTER&gt;&lt;\/body&gt;&lt;\/html&gt;\"<\/span>);\r\n\u00a0\r\n\u00a0\u00a0\u00a0\u00a0ethernet.respond();\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0<span style=\"color: #cc6600;\"><b>Serial<\/b><\/span>.<span style=\"color: #cc6600;\">println<\/span>(params);  \r\n\u00a0\u00a0}\r\n\u00a0\u00a0<span style=\"color: #cc6600;\">delay<\/span>(100);\r\n}\r\n\r\n\r\n<\/pre>\n<p>&nbsp;<\/p><div class=\"dhble6ab4819975fac\" ><hr>\n<!-- Yandex.RTB R-A-1793072-2 -->\n<div id=\"yandex_rtb_R-A-1793072-2\"><\/div>\n<script>window.yaContextCb.push(()=>{\n  Ya.Context.AdvManager.render({\n    renderTo: 'yandex_rtb_R-A-1793072-2',\n    blockId: 'R-A-1793072-2'\n  })\n})<\/script><\/div><style type=\"text\/css\">\r\n@media screen and (min-width: 1201px) {\r\n.dhble6ab4819975fac {\r\ndisplay: block;\r\n}\r\n}\r\n@media screen and (min-width: 993px) and (max-width: 1200px) {\r\n.dhble6ab4819975fac {\r\ndisplay: block;\r\n}\r\n}\r\n@media screen and (min-width: 769px) and (max-width: 992px) {\r\n.dhble6ab4819975fac {\r\ndisplay: block;\r\n}\r\n}\r\n@media screen and (min-width: 768px) and (max-width: 768px) {\r\n.dhble6ab4819975fac {\r\ndisplay: block;\r\n}\r\n}\r\n@media screen and (max-width: 767px) {\r\n.dhble6ab4819975fac {\r\ndisplay: block;\r\n}\r\n}\r\n<\/style>\r\n\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0432\u0435\u0431\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0430 \u0430\u0440\u0434\u0438\u043d\u043e \u0441 \u0435\u0437\u0435\u0440\u043d\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u0435\u043c 28J60 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443 \u0441 \u0434\u0430\u0442\u0447\u0438\u043a\u0430 DS18B20, \u043a\u043e\u0434 \u0438\u0437 \u0432\u0438\u0434\u0435\u043e.<\/p>\n","protected":false},"author":1,"featured_media":417,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[5,53,15],"class_list":["post-416","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-video","tag-ds18b20","tag-enc28j60","tag-termometr"],"_links":{"self":[{"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/posts\/416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/comments?post=416"}],"version-history":[{"count":0,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/posts\/416\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/media\/417"}],"wp:attachment":[{"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/media?parent=416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/categories?post=416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arduinolab.pw\/index.php\/wp-json\/wp\/v2\/tags?post=416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}