<?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%2FBarometricPressureWebServer</id>
	<title>Arduino:Примеры/BarometricPressureWebServer - История изменений</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%2FBarometricPressureWebServer"/>
	<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/BarometricPressureWebServer&amp;action=history"/>
	<updated>2026-04-06T08:14:10Z</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/BarometricPressureWebServer&amp;diff=8495835&amp;oldid=prev</id>
		<title>EducationBot в 08:32, 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/BarometricPressureWebServer&amp;diff=8495835&amp;oldid=prev"/>
		<updated>2023-07-08T08:32:43Z</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:32, 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-l270&quot;&gt;Строка 270:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 270:&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/BarometricPressureWebServer&amp;diff=7673333&amp;oldid=prev</id>
		<title>EducationBot в 14:18, 14 мая 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/BarometricPressureWebServer&amp;diff=7673333&amp;oldid=prev"/>
		<updated>2023-05-14T14:18:20Z</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;Версия от 18:18, 14 мая 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-l34&quot;&gt;Строка 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 34:&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;Отображение данных от датчика атмосферного давления SCP1000&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;Отображение данных от датчика атмосферного давления SCP1000&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikihandbkcom:diff::1.12:old-20941:rev-7673333 --&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/BarometricPressureWebServer&amp;diff=20941&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/BarometricPressureWebServer&amp;diff=20941&amp;oldid=prev"/>
		<updated>2016-12-13T18:58:01Z</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;
==Веб-сервер, публикующий данные от датчика атмосферного давления&amp;lt;ref&amp;gt;[https://www.arduino.cc/en/Tutorial/BarometricPressureWebServer Arduino - Barometric Pressure Web Server]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Этот пример показывает, как при помощи '''SPI'''-соединения считывать данные с датчика атмосферного давления '''SCP1000''', а также то, как потом публиковать эти данные в интернет при помощи тандема '''Arduino''' и '''Ethernet Shield''', работающих в качестве простого веб-сервера. Используя библиотеку '''Ethernet''', ваш девайс будет отвечать на '''HTTP'''-запросы посредством передачи браузеру '''HTML'''-кода для отображения данных о температуре и атмосферном давлении, считанных с датчика. &lt;br /&gt;
&lt;br /&gt;
Настроив цепь и загрузив скетч (см. ниже), просто введите в браузере '''IP'''-адрес '''Ethernet Shield''', и на экране появятся данные от датчика.&lt;br /&gt;
&lt;br /&gt;
Более подробно о том, как работает датчика атмосферного давления, можно узнать из примера [[Arduino:Примеры/BarometricPressureSensor|'''«Использование SPI для считывания данных с датчика атмосферного давления»''']].&lt;br /&gt;
&lt;br /&gt;
==Необходимое оборудование==&lt;br /&gt;
&lt;br /&gt;
* Плата с датчиком атмосферного давления '''SCP1000''';&lt;br /&gt;
* Сетевой модуль '''Arduino Ethernet Shield''';&lt;br /&gt;
&lt;br /&gt;
==Цепь==&lt;br /&gt;
&lt;br /&gt;
Датчик атмосферного давления нужно подсоединить к '''6-ому, 7-ому, 11-ому, 12-ому и 13-ому''' контактам тандема '''«Arduino и Shield»''', а также запитать его через выходной '''3,3-вольтовый контакт'''. Контакт '''DRDY''' ('''Data Ready''', т.е. '''«данные готовы для считывания»''') подключите к '''6-ому цифровому контакту''', а контакт '''CSB''' ('''Chip Select'''; т.е. '''«выбор ведомого устройства»''') – к '''7-ому'''. &lt;br /&gt;
&lt;br /&gt;
Контакт '''MOSI''' ('''Master Out''', '''Slave In'''; для передачи данных от ведущего устройства к ведомому) должен быть подключен к '''11-ому цифровому контакту''', а его '''«брат-близнец»''' '''MISO''' ('''Master In, Slave Out'''; для передачи данных от ведомого устройства к ведущему) – к '''12-ому'''. И, наконец, контакт '''SCK''' ('''Serial Clock'''; для передачи последовательного тактового сигнала) подключите к '''13-ому цифровому контакту''', а также убедитесь, что оба устройства подключены к одной и той же '''«земле»'''.&lt;br /&gt;
&lt;br /&gt;
Закончив с подключением контактов, подсоедините '''Ethernet Shield''' к сети при помощи '''Ethernet'''-кабеля. Кроме того, вам надо будет поменять сетевые настройки, чтобы они соответствовали вашей сети.&lt;br /&gt;
&lt;br /&gt;
[[File:BaromettricPressureSensorWebServer_bb.png]]&lt;br /&gt;
&lt;br /&gt;
Модуль '''Ethernet Shield''' крепится поверх платы '''Arduino'''.&lt;br /&gt;
&lt;br /&gt;
==Схема==&lt;br /&gt;
&lt;br /&gt;
[[File:BaromettricPressureSensorWebServer_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;
Отображение данных от датчика атмосферного давления SCP1000&lt;br /&gt;
&lt;br /&gt;
Этот скетч служит для вывода данных от датчика атмосферного давления на веб-страницу.&lt;br /&gt;
Более подробно об этом датчике можно прочесть тут:&lt;br /&gt;
- http://www.sparkfun.com/commerce/product_info.php?products_id=8161&lt;br /&gt;
- http://www.vti.fi/en/support/obsolete_products/pressure_sensors&lt;br /&gt;
&lt;br /&gt;
Этот скетч создан на основе примера Нэйтана Зидле (Nathan Seidle) для PIC:&lt;br /&gt;
http://www.sparkfun.com/datasheets/Sensors/SCP1000-Testing.zip&lt;br /&gt;
 &lt;br /&gt;
Цепь:&lt;br /&gt;
Датчик SCP1000 подключен к 6-ому, 7-ому, 11-ому, 12-ому и 13-ому цифровым контактам.&lt;br /&gt;
* DRDY – к 6-ому&lt;br /&gt;
* CSB – к 7-ому&lt;br /&gt;
* MOSI – к 11-ому&lt;br /&gt;
* MISO – к 12-ому&lt;br /&gt;
* SCK – к 13-ому&lt;br /&gt;
&lt;br /&gt;
Создан 31 июля 2010 Томом Иго (Tom Igoe)&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Ethernet.h&amp;gt;&lt;br /&gt;
// Датчик коммуницирует через SPI, поэтому подключаем соответствующую библиотеку:&lt;br /&gt;
#include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Здесь указываем MAC-адрес для Ethernet-контроллера:&lt;br /&gt;
byte mac[] = { &lt;br /&gt;
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};&lt;br /&gt;
// Указываем IP-адрес контроллера:&lt;br /&gt;
IPAddress ip(192,168,1,20);&lt;br /&gt;
IPAddress gateway(192,168,1,1); &lt;br /&gt;
IPAddress subnet(255, 255, 255, 0);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Инициализируем библиотеку Ethernet Server&lt;br /&gt;
// с необходимыми для нас IP-адресом и портом&lt;br /&gt;
// (порт 80 используется для HTTP по умолчанию):&lt;br /&gt;
EthernetServer server(80);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Адреса регистров памяти датчика:&lt;br /&gt;
const int PRESSURE = 0x1F;      // 3 самых важных бита данных о давлении&lt;br /&gt;
const int PRESSURE_LSB = 0x20;  // 16 менее важных битов данных о давлении&lt;br /&gt;
const int TEMPERATURE = 0x21;   // 16 битов данных о температуре&lt;br /&gt;
&lt;br /&gt;
// Контакты, которые используются для подключения к датчику &lt;br /&gt;
// (другие необходимые вам контакты управляются библиотекой SPI):&lt;br /&gt;
const int dataReadyPin = 6;&lt;br /&gt;
const int chipSelectPin = 7;&lt;br /&gt;
&lt;br /&gt;
float temperature = 0.0;&lt;br /&gt;
long pressure = 0;&lt;br /&gt;
long lastReadingTime = 0;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Запускаем библиотеку SPI:&lt;br /&gt;
  SPI.begin();&lt;br /&gt;
&lt;br /&gt;
  // Запускаем Ethernet-соединение и работу сервера:&lt;br /&gt;
  Ethernet.begin(mac, ip);&lt;br /&gt;
  server.begin();&lt;br /&gt;
&lt;br /&gt;
  // Инициализируем контакты Data Ready (DRDY) и Chip Select (CSB):&lt;br /&gt;
  pinMode(dataReadyPin, INPUT);&lt;br /&gt;
  pinMode(chipSelectPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
&lt;br /&gt;
  // Настраиваем SCP1000, чтобы в данных было меньше шума:&lt;br /&gt;
  writeRegister(0x02, 0x2D);&lt;br /&gt;
  writeRegister(0x01, 0x03);&lt;br /&gt;
  writeRegister(0x03, 0x02);&lt;br /&gt;
&lt;br /&gt;
  // Даем немного времени датчику и Ethernet Shield – чтобы настроиться:&lt;br /&gt;
  delay(1000);&lt;br /&gt;
&lt;br /&gt;
  // Выставляем датчик в режим высокого разрешения – чтобы начать считывание:&lt;br /&gt;
  writeRegister(0x03, 0x0A);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() { &lt;br /&gt;
  // Проверяем данные от датчика не чаще одного раза в секунду:&lt;br /&gt;
  if (millis() - lastReadingTime &amp;gt; 1000){&lt;br /&gt;
    // Если данные готовы, приступаем к их считыванию.&lt;br /&gt;
    // Ничего не делам, пока контакт DRDY не получит значение HIGH:&lt;br /&gt;
    if (digitalRead(dataReadyPin) == HIGH) {&lt;br /&gt;
      getData();&lt;br /&gt;
      // Делаем временную отметку о времени последнего считывания:&lt;br /&gt;
      lastReadingTime = millis();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Слушаем входящие Ethernet-соединения:&lt;br /&gt;
  listenForEthernetClients();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void getData() {&lt;br /&gt;
  Serial.println(&amp;quot;Getting reading&amp;quot;);  //  &amp;quot;Начинаем считывание&amp;quot;&lt;br /&gt;
  // Считываем данные о температуре:&lt;br /&gt;
  int tempData = readRegister(0x21, 2);&lt;br /&gt;
&lt;br /&gt;
  // Конвертируем их в градусы Цельсия и выводим на экран:&lt;br /&gt;
  temperature = (float)tempData / 20.0;&lt;br /&gt;
&lt;br /&gt;
  // Считываем 3 самых важных бита в данных о давлении:&lt;br /&gt;
  byte  pressureDataHigh = readRegister(0x1F, 1);   &lt;br /&gt;
  pressureDataHigh &amp;amp;= 0b00000111; // вам нужны лишь биты со 2-ого по 0-ой&lt;br /&gt;
&lt;br /&gt;
  // Считываем другие 16 битов данных о давлении:&lt;br /&gt;
  unsigned int pressureDataLow = readRegister(0x20, 2);    &lt;br /&gt;
  // Соединяем обе части в одного 19-битное число:&lt;br /&gt;
  pressure = ((pressureDataHigh &amp;lt;&amp;lt; 16) | pressureDataLow)/4;&lt;br /&gt;
&lt;br /&gt;
  Serial.print(&amp;quot;Temperature: &amp;quot;);  //  &amp;quot;Температура: &amp;quot;&lt;br /&gt;
  Serial.print(temperature);&lt;br /&gt;
  Serial.println(&amp;quot; degrees C&amp;quot;);  //  &amp;quot; градусов Цельсия&amp;quot;&lt;br /&gt;
  Serial.print(&amp;quot;Pressure: &amp;quot; + String(pressure));  //  &amp;quot;Давление: &amp;quot;&lt;br /&gt;
  Serial.println(&amp;quot; Pa&amp;quot;); //  &amp;quot; паскалей&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
void listenForEthernetClients() {&lt;br /&gt;
  // Слушаем подключающихся клиентов:&lt;br /&gt;
  EthernetClient client = server.available();&lt;br /&gt;
  if (client) {&lt;br /&gt;
    Serial.println(&amp;quot;Got a client&amp;quot;);  //  &amp;quot;Клиент подключен&amp;quot;&lt;br /&gt;
    // HTTP-запрос заканчивается пустой линией: &lt;br /&gt;
    boolean currentLineIsBlank = true;&lt;br /&gt;
    while (client.connected()) {&lt;br /&gt;
      if (client.available()) {&lt;br /&gt;
        char c = client.read();&lt;br /&gt;
        // Если вы добрались до конца строки (получили символ новой строки),&lt;br /&gt;
        // и эта строка – пустая, это значит, что это конец HTTP-запроса,&lt;br /&gt;
        // так что теперь можно слать ответ:&lt;br /&gt;
        if (c == '\n' &amp;amp;&amp;amp; currentLineIsBlank) {&lt;br /&gt;
          // Отправляем стандартный для HTTP-ответа заголовок:&lt;br /&gt;
          client.println(&amp;quot;HTTP/1.1 200 OK&amp;quot;);&lt;br /&gt;
          client.println(&amp;quot;Content-Type: text/html&amp;quot;);&lt;br /&gt;
          client.println();&lt;br /&gt;
          // Передаем считанные данные (в HTML-формате):&lt;br /&gt;
          client.print(&amp;quot;Temperature: &amp;quot;);&lt;br /&gt;
          client.print(temperature);&lt;br /&gt;
          client.print(&amp;quot; degrees C&amp;quot;);&lt;br /&gt;
          client.println(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;
          client.print(&amp;quot;Pressure: &amp;quot; + String(pressure));&lt;br /&gt;
          client.print(&amp;quot; Pa&amp;quot;);&lt;br /&gt;
          client.println(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);  &lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
        if (c == '\n') {&lt;br /&gt;
          // Начинаем новую строку:&lt;br /&gt;
          currentLineIsBlank = true;&lt;br /&gt;
        } &lt;br /&gt;
        else if (c != '\r') {&lt;br /&gt;
          // У нас есть символ в текущей строке:&lt;br /&gt;
          currentLineIsBlank = false;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    // Даем браузеру немного времени, чтобы получить данные:&lt;br /&gt;
    delay(1);&lt;br /&gt;
    // Прерываем соединение:&lt;br /&gt;
    client.stop();&lt;br /&gt;
  }&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
// Передаем на SCP1000 команду записи:&lt;br /&gt;
void writeRegister(byte registerName, byte registerValue) {&lt;br /&gt;
  // SCP1000 ожидает, что имя регистра указано в первых («верхних») шести битах байта:&lt;br /&gt;
  registerName &amp;lt;&amp;lt;= 2;&lt;br /&gt;
  // Сама команда (считывание или запись) располагается в двух последних («нижних») битах:&lt;br /&gt;
  registerName |= 0b00000010; // команда записи&lt;br /&gt;
&lt;br /&gt;
  // Даем контакту Chip Select значение LOW, чтобы выбрать девайс:&lt;br /&gt;
  digitalWrite(chipSelectPin, LOW); &lt;br /&gt;
&lt;br /&gt;
  SPI.transfer(registerName); // отсылаем адрес регистра&lt;br /&gt;
  SPI.transfer(registerValue); // отсылаем значение, чтобы записать его в регистр &lt;br /&gt;
&lt;br /&gt;
  // Даем контакту Chip Select значение HIGH, чтобы отменить выбор девайса:&lt;br /&gt;
  digitalWrite(chipSelectPin, HIGH); &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Считываем данные из регистра SCP1000:&lt;br /&gt;
unsigned int readRegister(byte registerName, int numBytes) {&lt;br /&gt;
  byte inByte = 0;           // данные, считанные через SPI &lt;br /&gt;
  unsigned int result = 0;   // результат, который нужно вернуть &lt;br /&gt;
&lt;br /&gt;
  // SCP1000 ожидает, что название регистра будет в первых («верхних») шести битах байта:&lt;br /&gt;
  registerName &amp;lt;&amp;lt;=  2;&lt;br /&gt;
  // Команда (считывание или запись) идет в последних («нижних») двух битах:&lt;br /&gt;
  registerName &amp;amp;= 0b11111100; // команда считывания&lt;br /&gt;
&lt;br /&gt;
  // Даем контакту Chip Select значение LOW, чтобы выбрать девайс:&lt;br /&gt;
  digitalWrite(chipSelectPin, LOW); &lt;br /&gt;
  // Отсылаем девайсу информацию о регистре, данные которого хотим сосчитать:&lt;br /&gt;
  int command = SPI.transfer(registerName); &lt;br /&gt;
  // Отсылаем «0», чтобы сосчитать первый возвращенный байт:&lt;br /&gt;
  inByte = SPI.transfer(0x00); &lt;br /&gt;
  &lt;br /&gt;
  result = inByte;&lt;br /&gt;
  // Если было возвращено более одного байта, &lt;br /&gt;
  // перемещаемся от первого байта ко второму:&lt;br /&gt;
  if (numBytes &amp;gt; 1){&lt;br /&gt;
    result = inByte &amp;lt;&amp;lt; 8;&lt;br /&gt;
    inByte = SPI.transfer(0x00); &lt;br /&gt;
    result = result |inByte;&lt;br /&gt;
}&lt;br /&gt;
  // Даем контакту Chip Select значение HIGH, чтобы отменить выбор девайса:&lt;br /&gt;
  digitalWrite(chipSelectPin, HIGH); &lt;br /&gt;
  // Возвращаем результат:&lt;br /&gt;
  return(result);&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>