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

Код

/*
Стандартный веб-сервер 

Простой веб-сервер, который получает запрос, но ничем не отвечает,
а выводит его (вместе с IP-адресом сервера) на Serial Monitor.

Цепь:
* GSM Shield, подключенный к Arduino

Создан Дэвидом Куартиллье (David Cuartielles),
модифицирован 21 ноября 2012 Томом Иго (Tom Igoe).

http://arduino.cc/en/Tutorial/GSMToolsTestWebServer

Этот код не защищен авторским правом. 
*/

#include <GSM.h>

// PIN-код:
#define PINNUMBER ""

// Данные об APN:
#define GPRS_APN       "GPRS_APN" // замените то, что в кавычках, своим APN
#define GPRS_LOGIN     "login"    // впишите свой логин 
#define GPRS_PASSWORD  "password" // впишите свой пароль

// Создаем экземпляры классов:
GPRS gprs;
GSM gsmAccess;     // включая параметр «true» для активации отладки
GSMServer server(80); // порт 80 (это порт для HTTP по умолчанию)

// Задержка:
const unsigned long __TIMEOUT__ = 10*1000;

void setup()
{
  // Инициализируем последовательную передачу данных:
  Serial.begin(9600);
Serial.println("starting,..");  //  "Начинаем..."
  // Состояние соединения:
  boolean connected = true;

  // Запускаем GSM Shield.
  // Если у вашей «симки» есть PIN-код, делаем его параметром функции begin():
  while(!connected)
  {
    if((gsmAccess.begin(PINNUMBER)==GSM_READY) &
        (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY))
      connected = true;
    else
    {
      Serial.println("Not connected");  "Подключиться не удалось"
      delay(1000);
    }
  }

  Serial.println("Connected to GPRS network");  "Подключение к GPRS прошло успешно"

  // Запускаем сервер:
  server.begin();

  // Получаем IP:
  IPAddress LocalIP = gprs.getIPAddress();
  Serial.println("Server IP address=");  "IP-адрес сервера = "
  Serial.println(LocalIP);
}

void loop(){
  GSMClient client = server.available();

 if (client) {
   if (client.available()) {
    Serial.write(client.read()); 
   }
}

}

См.также

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

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