<?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%2FGSMExamplesSendSMS</id>
	<title>Arduino:Примеры/GSMExamplesSendSMS - История изменений</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%2FGSMExamplesSendSMS"/>
	<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/GSMExamplesSendSMS&amp;action=history"/>
	<updated>2026-06-26T14:48:26Z</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/GSMExamplesSendSMS&amp;diff=8495916&amp;oldid=prev</id>
		<title>EducationBot в 08:34, 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/GSMExamplesSendSMS&amp;diff=8495916&amp;oldid=prev"/>
		<updated>2023-07-08T08:34:58Z</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, 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-l283&quot;&gt;Строка 283:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 283:&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/GSMExamplesSendSMS&amp;diff=7735719&amp;oldid=prev</id>
		<title>EducationBot в 08:32, 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/GSMExamplesSendSMS&amp;diff=7735719&amp;oldid=prev"/>
		<updated>2023-05-20T08:32:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/GSMExamplesSendSMS&amp;amp;diff=7735719&amp;amp;oldid=21006&quot;&gt;Внесённые изменения&lt;/a&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/GSMExamplesSendSMS&amp;diff=21006&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/GSMExamplesSendSMS&amp;diff=21006&amp;oldid=prev"/>
		<updated>2016-12-13T20:19:06Z</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;
==Отправка SMS&amp;lt;ref&amp;gt;[https://www.arduino.cc/en/Tutorial/GSMExamplesSendSMS Arduino - Send SMS]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Этот скетч отправляет '''SMS'''-сообщение, используя для этого тандем из платы '''Arduino''' и модуля '''GSM Shield'''. Номер, на который будет передано '''SMS''', а также само сообщение вводятся через '''Serial Monitor'''.&lt;br /&gt;
&lt;br /&gt;
==Необходимое оборудование==&lt;br /&gt;
&lt;br /&gt;
* Плата '''Arduino''';&lt;br /&gt;
* Модуль '''Arduino + Telefonica GSM/GPRS Shield''';&lt;br /&gt;
* '''SIM'''-карта;&lt;br /&gt;
&lt;br /&gt;
==Цепь==&lt;br /&gt;
&lt;br /&gt;
[[Файл:GSMShield ArduinoUno.png|650px]]&lt;br /&gt;
&lt;br /&gt;
Изображение модуля '''Arduino GSM Shield''', установленного поверх платы '''Arduino Uno'''&lt;br /&gt;
&lt;br /&gt;
==Код==&lt;br /&gt;
&lt;br /&gt;
Для начала импортируем библиотеку '''GSM'''.&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;
#include &amp;lt;GSM.h&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При помощи директивы #define определяем '''PIN'''-код как константу, чтобы разблокировать '''SIM'''-карту. Если '''PIN'''-кода нет, оставляем это место пустым.&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;
#define PINNUMBER &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем экземпляры классов '''GSM''' и '''GSM_SMS'''. &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;
GSM gsmAccess; &lt;br /&gt;
GSM_SMS sms;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В блоке setup() запускаем последовательную передачу данных на компьютер. Запустив, отсылаем на '''Serial Monitor''' сообщение, информирующее о начале работы скетча.&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;
void setup(){&lt;br /&gt;
  Serial.begin(9600); &lt;br /&gt;
  Serial.println(&amp;quot;SMS Messages Sender&amp;quot;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем локальную переменную, чтобы отслеживать статус соединения. Это нужно для того, чтобы скетч не начинал работать, пока '''SIM'''-карта не подключится к сети.&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;
boolean notConnected = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подключаемся к сети при помощи функции gsmAccess.begin(), и '''PIN'''-код в ней будет в качестве аргумента. Размещаем эту функцию в цикле while(), чтобы постоянно проверять статус соединения. Когда модем подключится, gsmAccess() вернет значение '''GSM_READY''', и это будет сигналом для того, чтобы задать для переменной notConnected значение true или false. Если подключиться не удалось, информируем об этом через '''Serial Monitor'''.&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;
while(notConnected)&lt;br /&gt;
  {&lt;br /&gt;
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)&lt;br /&gt;
      notConnected = false;&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      Serial.println(&amp;quot;Not connected&amp;quot;);&lt;br /&gt;
      delay(1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Заканчиваем секцию setup() выводом на '''Serial Monitor''' сообщения о том, что инициализация '''GSM''' прошла успешно.&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;
Serial.println(&amp;quot;GSM initialized.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем функцию типа int под названием readSerial. Она будет делать перебор входящих данных, присланных через '''Serial Monitor''', попутно сохраняя номер, на который вы хотите отправить '''SMS''', а также само сообщение. В качестве аргумента у нее будет массив типа char.&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;
int readSerial(char result[])&lt;br /&gt;
{&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем переменную, которая будет пересчитывать содержимое буфера последовательного порта, а потом запускаем цикл while(), который будет выполнятся непрерывно.&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;
int i = 0;&lt;br /&gt;
  while(1)&lt;br /&gt;
  {&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Покуда в буфере последовательного порта доступна какая-либо информация, считываем ее в переменную под названием '''inChar'''.&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;
while (Serial.available() &amp;gt; 0)&lt;br /&gt;
    {&lt;br /&gt;
      char inChar = Serial.read();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&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;
if (inChar == '\n')&lt;br /&gt;
      {&lt;br /&gt;
        result[i] = '\0';&lt;br /&gt;
        Serial.flush();&lt;br /&gt;
        return 0;&lt;br /&gt;
      }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если входящий символ является '''ASCII'''-символом, а не символом новой строки или возврата строки, добавляем его к массиву и увеличиваем индекс. Затем закрываем циклы while() и саму функцию.&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;
if(inChar!='\r')&lt;br /&gt;
      {&lt;br /&gt;
        result[i] = inChar;&lt;br /&gt;
        i++;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В секции loop() создаем массив типа char под названием remoteNumber, чтобы хранить в нем номер, на который вы хотите отправить '''SMS'''. Далее вызываем только что созданную функцию readSerial(), где remoteNumber будет в качестве аргумента. Эта функция заполнит массив remoteNumber номером, которому будет адресоваться '''SMS'''-сообщение.&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;
Serial.print(&amp;quot;Enter a mobile number: &amp;quot;);&lt;br /&gt;
  char remoteNumber[20];&lt;br /&gt;
  readSerial(remoteNumber);&lt;br /&gt;
  Serial.println(remoteNumber);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем еще один массив типа char, но уже под названием txtMsg. Он будет содержать в себе содержимое вашего SMS и станет аргументом для функции readSerial().&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;
Serial.print(&amp;quot;Now, enter SMS content: &amp;quot;);&lt;br /&gt;
  char txtMsg[200];&lt;br /&gt;
  readSerial(txtMsg);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее вызываем три функции. Первая (чтобы начать отправку сообщения) – это sms.beginSMS() с аргументом в виде массива remoteNumber. Вторая (чтобы отправить сообщение) – sms.print(). Третья (чтобы завершить процесс отправки) – sms.endSMS(). Печатаем пару '''«диагностических»''' сообщений и закрываем loop(). Ваше сообщение полетело к адресату!&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;
Serial.println(&amp;quot;SENDING&amp;quot;);&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println(&amp;quot;Message:&amp;quot;);&lt;br /&gt;
  Serial.println(txtMsg);&lt;br /&gt;
&lt;br /&gt;
  sms.beginSMS(remoteNumber);&lt;br /&gt;
  sms.print(txtMsg);&lt;br /&gt;
  sms.endSMS(); &lt;br /&gt;
  Serial.println(&amp;quot;\nCOMPLETE!\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Загрузив код, открываем '''Serial Monitor'''. Убедитесь, что он настроен таким образом, что при нажатии на клавишу ввода отсылается только символ новой строки. Когда скетч попросит вас ввести желаемый номер, впишите цифры и нажмите клавишу ввода. Затем вас попросят ввести сообщение. Напечатайте его и снова нажмите клавишу ввода.&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;
Отправщик SMS&lt;br /&gt;
&lt;br /&gt;
Этот скетч, предназначенный для Arduino GSM Shield, &lt;br /&gt;
отправляет на указанный адрес SMS-сообщение, введенное через Serial Monitor.&lt;br /&gt;
Подключив Shield к Arduino и настроив скетч, откройте Serial Monitor&lt;br /&gt;
и, увидев сообщение READY, начинайте писать сообщение.&lt;br /&gt;
Убедитесь, что Serial Monitor настроен таким образом,&lt;br /&gt;
чтобы при нажатии на клавишу ввода отправлять только символ новой строки.&lt;br /&gt;
&lt;br /&gt;
Цепь:&lt;br /&gt;
* GSM Shield, подключенный к Arduino&lt;br /&gt;
&lt;br /&gt;
Создан 25 февраля 2012 Томом Иго (Tom Igoe).&lt;br /&gt;
&lt;br /&gt;
Этот код не защищен авторским правом.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
// Библиотека:&lt;br /&gt;
#include &amp;lt;GSM.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define PINNUMBER &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Создаем экземпляры классов GSM и GSM_SMS:&lt;br /&gt;
GSM gsmAccess; // включая параметр «true» для активации отладки&lt;br /&gt;
GSM_SMS sms;&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // Инициализируем последовательную передачу данных:&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;SMS Messages Sender&amp;quot;);  //  &amp;quot;Отправщик SMS-сообщений&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // Состояние соединения:&lt;br /&gt;
  boolean notConnected = true;&lt;br /&gt;
&lt;br /&gt;
  // Запускаем GSM Shield.&lt;br /&gt;
  // Если ваша SIM-карта заблокирована PIN-кодом,&lt;br /&gt;
  // ставим его параметром в функции gsmAccess.begin():&lt;br /&gt;
  while(notConnected)&lt;br /&gt;
  {&lt;br /&gt;
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)&lt;br /&gt;
      notConnected = false;&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      Serial.println(&amp;quot;Not connected&amp;quot;);  //  &amp;quot;Подключиться не удалось&amp;quot;&lt;br /&gt;
      delay(1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;GSM initialized&amp;quot;);  //  &amp;quot;GSM не инициализирован&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  Serial.print(&amp;quot;Enter a mobile number: &amp;quot;);  //  &amp;quot;Введите мобильный номер&amp;quot;&lt;br /&gt;
  char remoteNumber[20];  // телефонный номер, которому будем слать SMS&lt;br /&gt;
  readSerial(remoteNumber);&lt;br /&gt;
  Serial.println(remoteNumber);&lt;br /&gt;
&lt;br /&gt;
  // Текст SMS-сообщения:&lt;br /&gt;
  Serial.print(&amp;quot;Now, enter SMS content: &amp;quot;);  //  &amp;quot;Теперь введите SMS-сообщение: &amp;quot;&lt;br /&gt;
  char txtMsg[200];&lt;br /&gt;
  readSerial(txtMsg);&lt;br /&gt;
  Serial.println(&amp;quot;SENDING&amp;quot;);  //  &amp;quot;Отправка&amp;quot;&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println(&amp;quot;Message:&amp;quot;);  //  &amp;quot;Сообщение:&amp;quot;&lt;br /&gt;
  Serial.println(txtMsg);&lt;br /&gt;
&lt;br /&gt;
  // Отправляем сообщение:&lt;br /&gt;
  sms.beginSMS(remoteNumber);&lt;br /&gt;
  sms.print(txtMsg);&lt;br /&gt;
  sms.endSMS(); &lt;br /&gt;
  Serial.println(&amp;quot;\nCOMPLETE!\n&amp;quot;);  //  &amp;quot;\nГотово!\n&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
Считываем входящие данные, пришедшие через последовательный порт&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int readSerial(char result[])&lt;br /&gt;
{&lt;br /&gt;
  int i = 0;&lt;br /&gt;
  while(1)&lt;br /&gt;
  {&lt;br /&gt;
    while (Serial.available() &amp;gt; 0)&lt;br /&gt;
    {&lt;br /&gt;
      char inChar = Serial.read();&lt;br /&gt;
      if (inChar == '\n')&lt;br /&gt;
      {&lt;br /&gt;
        result[i] = '\0';&lt;br /&gt;
        Serial.flush();&lt;br /&gt;
        return 0;&lt;br /&gt;
      }&lt;br /&gt;
      if(inChar!='\r')&lt;br /&gt;
      {&lt;br /&gt;
        result[i] = inChar;&lt;br /&gt;
        i++;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См.также==&lt;br /&gt;
&lt;br /&gt;
# GSM Constructor&lt;br /&gt;
# GSM.begin()&lt;br /&gt;
# GSM.shutdown()&lt;br /&gt;
# GSM_SMS Constructor&lt;br /&gt;
# beginSMS()&lt;br /&gt;
# ready()&lt;br /&gt;
# endSMS()&lt;br /&gt;
# available()&lt;br /&gt;
# remoteNumber()&lt;br /&gt;
# read()&lt;br /&gt;
# write()&lt;br /&gt;
# print()&lt;br /&gt;
# peek()&lt;br /&gt;
# flush()&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>