<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Arduino%3A%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%2FUdpNtpClient</id>
	<title>Arduino:Примеры/UdpNtpClient - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Arduino%3A%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%2FUdpNtpClient"/>
	<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/UdpNtpClient&amp;action=history"/>
	<updated>2026-04-10T02:31:44Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/UdpNtpClient&amp;diff=8496041&amp;oldid=prev</id>
		<title>EducationBot в 08:38, 8 июля 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/UdpNtpClient&amp;diff=8496041&amp;oldid=prev"/>
		<updated>2023-07-08T08:38:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:38, 8 июля 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l181&quot;&gt;Строка 181:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 181:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Навигационная таблица/Портал/Arduino}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/UdpNtpClient&amp;diff=7735782&amp;oldid=prev</id>
		<title>EducationBot в 08:34, 20 мая 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/UdpNtpClient&amp;diff=7735782&amp;oldid=prev"/>
		<updated>2023-05-20T08:34:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:34, 20 мая 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l28&quot;&gt;Строка 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 28:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Код==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Код==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; enclose=&quot;div&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/*&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/*&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Клиент, запрашивающий время через NTP&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Клиент, запрашивающий время через NTP&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/UdpNtpClient&amp;diff=21137&amp;oldid=prev</id>
		<title>Myagkij: Замена текста — «&lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&gt;» на «&lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot; enclose=&quot;div&quot;&gt;»</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/UdpNtpClient&amp;diff=21137&amp;oldid=prev"/>
		<updated>2016-12-13T22:36:15Z</updated>

		<summary type="html">&lt;p&gt;Замена текста — «&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot;&amp;gt;» на «&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Arduino панель перехода}}&lt;br /&gt;
{{Перевод от Сubewriter}}&lt;br /&gt;
{{Myagkij-редактор}}&lt;br /&gt;
&lt;br /&gt;
==Клиент, запрашивающий время через NTP&amp;lt;ref&amp;gt;[https://www.arduino.cc/en/Tutorial/UdpNtpClient Arduino - Network Time Protocol (NTP) Client]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
В этом примере мы воспользуемся '''Arduino''' и '''Ethernet Shield''', чтобы делать запросы к серверу '''Network Time Protocol (NTP)'''. Благодаря этому '''Arduino''' сможет получать из интернета информацию о времени.&lt;br /&gt;
&lt;br /&gt;
==Необходимое оборудование==&lt;br /&gt;
&lt;br /&gt;
* Сетевой модуль '''Arduino Ethernet Shield''';&lt;br /&gt;
* Плата '''Arduino''', совместимая с '''Ethernet Shield''';&lt;br /&gt;
&lt;br /&gt;
==Цепь==&lt;br /&gt;
&lt;br /&gt;
'''Ethernet Shield''' позволяет подключить плату '''Arduino''' к '''Ethernet'''-контроллеру '''WizNet''' (через '''SPI'''). Это подключение осуществляется при помощи '''10-ого, 11-ого, 12-ого и 13-ого''' контактов. У более поздних моделей '''Ethernet Shield''' имеется встроенный слот для '''SD'''-карты. В этом примере мы будем управлять '''SS'''-контактом этой '''SD'''-карты через '''4-ый цифровой контакт'''. &lt;br /&gt;
&lt;br /&gt;
'''Ethernet Shield''' должен быть подключен к сети при помощи '''Ethernet'''-кабеля. Также вам надо поменять сетевые настройки в скетче, чтобы они соответствовали настройкам вашей сети.&lt;br /&gt;
&lt;br /&gt;
[[Файл:EthernetShield bb.png]]&lt;br /&gt;
&lt;br /&gt;
'''Ethernet Shield''' устанавливается поверх платы '''Arduino'''.&lt;br /&gt;
&lt;br /&gt;
==Схема==&lt;br /&gt;
&lt;br /&gt;
[[Файл:EthernetShield sch.png]]&lt;br /&gt;
&lt;br /&gt;
==Код==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Клиент, запрашивающий время через NTP&lt;br /&gt;
&lt;br /&gt;
Получает информацию о времени от NTP-сервера времени.&lt;br /&gt;
Демонстрирует отправку и передачу пакетов через UDP.&lt;br /&gt;
Более подробно о время-серверах NTP и сообщениях,&lt;br /&gt;
необходимых для их коммуникации, можно прочесть тут:&lt;br /&gt;
http://en.wikipedia.org/wiki/Network_Time_Protocol.&lt;br /&gt;
 &lt;br /&gt;
Внимание: NTP-сервера подвержены временным сбоям и имеют склонность менять IP-адреса.&lt;br /&gt;
Если время-сервер, используемый для этого примера, не работает,&lt;br /&gt;
пожалуйста, пройдите сюда – http://tf.nist.gov/tf-cgi/servers.cgi.&lt;br /&gt;
&lt;br /&gt;
Создан 4 сентября 2010 Майклом Марголисом (Michael Margolis),&lt;br /&gt;
модифицирован 9 апреля 2012 Томом Иго (Tom Igoe).&lt;br /&gt;
 &lt;br /&gt;
Этот код не защищен авторским правом.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;SPI.h&amp;gt;         &lt;br /&gt;
#include &amp;lt;Ethernet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;EthernetUdp.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Ниже введите MAC-адрес вашего контроллера.&lt;br /&gt;
// У модулей Ethernet Shield самых последних моделей MAC-адрес напечатан на стикере.&lt;br /&gt;
byte mac[] = {&lt;br /&gt;
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };&lt;br /&gt;
&lt;br /&gt;
unsigned int localPort = 8888;      // локальный порт, который будет прослушиваться на предмет UDP-пакетов&lt;br /&gt;
&lt;br /&gt;
IPAddress timeServer(132, 163, 4, 101); // NTP-сервер time-a.timefreq.bldrdoc.gov &lt;br /&gt;
// IPAddress timeServer(132, 163, 4, 102); // NTP-сервер time-b.timefreq.bldrdoc.gov&lt;br /&gt;
// IPAddress timeServer(132, 163, 4, 103); // NTP-сервер time-c.timefreq.bldrdoc.gov NTP&lt;br /&gt;
&lt;br /&gt;
const int NTP_PACKET_SIZE= 48; // временная отметка NTP находится в первых 48 байтах сообщения&lt;br /&gt;
&lt;br /&gt;
byte packetBuffer[ NTP_PACKET_SIZE]; // буфер, в котором будут храниться входящие и исходящие пакеты &lt;br /&gt;
&lt;br /&gt;
// Создаем экземпляр класса EthernetUDP, который позволит нам отправлять и получать пакеты через UDP:&lt;br /&gt;
EthernetUDP Udp;&lt;br /&gt;
&lt;br /&gt;
void setup() &lt;br /&gt;
{&lt;br /&gt;
 // Инициализируем последовательную передачу данных и ждем открытия порта:&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
   while (!Serial) {&lt;br /&gt;
    ; // ждем подключения последовательного порта (нужно только для Leonardo)&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Запускаем Ethernet и UDP:&lt;br /&gt;
  if (Ethernet.begin(mac) == 0) {&lt;br /&gt;
    Serial.println(&amp;quot;Failed to configure Ethernet using DHCP&amp;quot;);  //  &amp;quot;Не удалось сконфигурировать Ethernet при помощи UDP&amp;quot;&lt;br /&gt;
    // Продолжать дальше смысла нет, поэтому дальше ничего не делаем:&lt;br /&gt;
    for(;;)&lt;br /&gt;
      ;&lt;br /&gt;
  }&lt;br /&gt;
  Udp.begin(localPort);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  sendNTPpacket(timeServer); // Отсылаем время-серверу NTP-пакет &lt;br /&gt;
&lt;br /&gt;
    // Ждем, чтобы увидеть, доступен ли ответ:&lt;br /&gt;
  delay(1000);  &lt;br /&gt;
  if ( Udp.parsePacket() ) {  &lt;br /&gt;
    // Пакет получен, значит считываем данные оттуда:&lt;br /&gt;
    Udp.read(packetBuffer,NTP_PACKET_SIZE);  // считываем содержимое пакета в буфер&lt;br /&gt;
&lt;br /&gt;
    // Временная отметка начинается с 40 байта полученного пакета&lt;br /&gt;
    // и его длина составляет четыре байта или два слова.&lt;br /&gt;
    // Для начала извлекаем два этих слова:&lt;br /&gt;
    unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);&lt;br /&gt;
    unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);  &lt;br /&gt;
    // Совмещаем четыре байта (два слова) в длинное целое. &lt;br /&gt;
    // Это и будет NTP-временем (секунды начиная с 1 января 1990 года):&lt;br /&gt;
    unsigned long secsSince1900 = highWord &amp;lt;&amp;lt; 16 | lowWord;  &lt;br /&gt;
    Serial.print(&amp;quot;Seconds since Jan 1 1900 = &amp;quot; );  //  &amp;quot;Секунды, прошедшие с 1 января 1990 = &amp;quot;&lt;br /&gt;
    Serial.println(secsSince1900);      &lt;br /&gt;
&lt;br /&gt;
    // Теперь конвертируем NTP-время в обычное время:&lt;br /&gt;
    Serial.print(&amp;quot;Unix time = &amp;quot;);  //  &amp;quot;Unix-время = &amp;quot;&lt;br /&gt;
    // Время Unix стартует с 1 января 1970 года. В секундах это 2208988800:&lt;br /&gt;
    const unsigned long seventyYears = 2208988800UL;     &lt;br /&gt;
    // Вычитаем 70 лет:&lt;br /&gt;
    unsigned long epoch = secsSince1900 - seventyYears;  &lt;br /&gt;
    // Выводим на Serial Monitor Unix-время:&lt;br /&gt;
    Serial.println(epoch);                               &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    // Выводим на Serial Monitor информацию о часах, минутах и секундах:&lt;br /&gt;
    Serial.print(&amp;quot;The UTC time is &amp;quot;);       // &amp;quot;Среднее время по Гринвичу = &amp;quot;,  // UTC – это среднее время по Гринвичу (GMT):&lt;br /&gt;
    Serial.print((epoch  % 86400L) / 3600); // выводим часы (86400 эквивалентно количеству секунд в день):&lt;br /&gt;
    Serial.print(':');  &lt;br /&gt;
    if ( ((epoch % 3600) / 60) &amp;lt; 10 ) {&lt;br /&gt;
      // У первых десяти минут каждого часа должна спереди стоять цифра «0»:&lt;br /&gt;
      Serial.print('0');&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print((epoch  % 3600) / 60); // выводим минуты (3600 эквивалентно количеству секунд в минуте):&lt;br /&gt;
    Serial.print(':'); &lt;br /&gt;
    if ( (epoch % 60) &amp;lt; 10 ) {&lt;br /&gt;
      // У первых десяти секунд каждой минуты спереди должна стоять цифра «0»:&lt;br /&gt;
      Serial.print('0');&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(epoch %60); // выводим секунды&lt;br /&gt;
  }&lt;br /&gt;
  // Ждем 10 секунд перед новым запросом о времени:&lt;br /&gt;
  delay(10000); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Отправляем NTP-запрос к время-серверу по указанному адресу: &lt;br /&gt;
unsigned long sendNTPpacket(IPAddress&amp;amp; address)&lt;br /&gt;
{&lt;br /&gt;
  // Отправляем все байты (вплоть до 0-ого) в буфер:&lt;br /&gt;
  memset(packetBuffer, 0, NTP_PACKET_SIZE); &lt;br /&gt;
  // Инициализируем значения, необходимые для формирования NTP-запроса&lt;br /&gt;
  // (подробнее о пакетах см. в URL выше):&lt;br /&gt;
  packetBuffer[0] = 0b11100011;   // LI (leap indicator, т.е. «индикатор перехода»), версия, режим работы&lt;br /&gt;
  packetBuffer[1] = 0;     // слой (или тип часов)&lt;br /&gt;
  packetBuffer[2] = 6;     // интервал запросов&lt;br /&gt;
  packetBuffer[3] = 0xEC;  // точность&lt;br /&gt;
  // 8 байтов с нулями, обозначающие базовую задержку и базовую дисперсию&lt;br /&gt;
  packetBuffer[12]  = 49; &lt;br /&gt;
  packetBuffer[13]  = 0x4E;&lt;br /&gt;
  packetBuffer[14]  = 49;&lt;br /&gt;
  packetBuffer[15]  = 52;&lt;br /&gt;
  // После заполнения всех указанных полей&lt;br /&gt;
  // вы сможете отправлять пакет с запросом о временной метке:         &lt;br /&gt;
  Udp.beginPacket(address, 123); // NTP-запрос идет на порт 123&lt;br /&gt;
  Udp.write(packetBuffer,NTP_PACKET_SIZE);&lt;br /&gt;
  Udp.endPacket(); &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См.также==&lt;br /&gt;
&lt;br /&gt;
# Arduino Ethernet Shield&lt;br /&gt;
# Getting started with the ethernet shield&lt;br /&gt;
# Ethernet library&lt;br /&gt;
# ChatServer&lt;br /&gt;
# ChatClient&lt;br /&gt;
# WebClient&lt;br /&gt;
# WebServer&lt;br /&gt;
# PachubeClient?&lt;br /&gt;
# PachubeClientString?&lt;br /&gt;
# BarometricPressureWebServer&lt;br /&gt;
# UDPSendReceiveString&lt;br /&gt;
# UdpNtpClient&lt;br /&gt;
&lt;br /&gt;
==Внешние ссылки==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Категория:Пример]]&lt;br /&gt;
[[Категория:Примеры]]&lt;br /&gt;
[[Категория:Пример программирования Arduino]]&lt;br /&gt;
[[Категория:Примеры программирования Arduino]]&lt;/div&gt;</summary>
		<author><name>Myagkij</name></author>
	</entry>
</feed>