Arduino:Примеры/GSMExamplesTest Web Server

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Тестовый веб-сервер с помощью GSM Shield[1]

Этот скетч создает веб-сервер, который будет принимать соединения, идущие к GSM Shield. Некоторые операторы связи разрешают делать запросы только в пределах их собственной сети. Поэтому, чтобы убедиться, что ваша SIM-карта может отвечать на входящие HTTP-запросы, уточните это у своего оператора связи.

Необходимое оборудование

  • Плата Arduino;
  • Модуль Arduino + Telefonica GSM/GPRS Shield;
  • SIM-карта с тарифным планом;

Цепь

GSMShield ArduinoUno.png

Изображение Arduino GSM Shield, установленного поверх платы Arduino Uno

Код

 1 /*
 2 Стандартный веб-сервер 
 3 
 4 Простой веб-сервер, который получает запрос, но ничем не отвечает,
 5 а выводит его (вместе с IP-адресом сервера) на Serial Monitor.
 6 
 7 Цепь:
 8 * GSM Shield, подключенный к Arduino
 9 
10 Создан Дэвидом Куартиллье (David Cuartielles),
11 модифицирован 21 ноября 2012 Томом Иго (Tom Igoe).
12 
13 http://arduino.cc/en/Tutorial/GSMToolsTestWebServer
14 
15 Этот код не защищен авторским правом. 
16 */
17 
18 #include <GSM.h>
19 
20 // PIN-код:
21 #define PINNUMBER ""
22 
23 // Данные об APN:
24 #define GPRS_APN       "GPRS_APN" // замените то, что в кавычках, своим APN
25 #define GPRS_LOGIN     "login"    // впишите свой логин 
26 #define GPRS_PASSWORD  "password" // впишите свой пароль
27 
28 // Создаем экземпляры классов:
29 GPRS gprs;
30 GSM gsmAccess;     // включая параметр «true» для активации отладки
31 GSMServer server(80); // порт 80 (это порт для HTTP по умолчанию)
32 
33 // Задержка:
34 const unsigned long __TIMEOUT__ = 10*1000;
35 
36 void setup()
37 {
38   // Инициализируем последовательную передачу данных:
39   Serial.begin(9600);
40 Serial.println("starting,..");  //  "Начинаем..."
41   // Состояние соединения:
42   boolean connected = true;
43 
44   // Запускаем GSM Shield.
45   // Если у вашей «симки» есть PIN-код, делаем его параметром функции begin():
46   while(!connected)
47   {
48     if((gsmAccess.begin(PINNUMBER)==GSM_READY) &
49         (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY))
50       connected = true;
51     else
52     {
53       Serial.println("Not connected");  "Подключиться не удалось"
54       delay(1000);
55     }
56   }
57 
58   Serial.println("Connected to GPRS network");  "Подключение к GPRS прошло успешно"
59 
60   // Запускаем сервер:
61   server.begin();
62 
63   // Получаем IP:
64   IPAddress LocalIP = gprs.getIPAddress();
65   Serial.println("Server IP address=");  "IP-адрес сервера = "
66   Serial.println(LocalIP);
67 }
68 
69 void loop(){
70   GSMClient client = server.available();
71 
72  if (client) {
73    if (client.available()) {
74     Serial.write(client.read()); 
75    }
76 }
77 
78 }

См.также

  1. GSMServer
  2. ready()
  3. beginWrite()
  4. write()
  5. endWrite()
  6. read()
  7. available()
  8. stop()

Внешние ссылки