Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

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

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

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Тестовый веб-сервер с помощью 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()

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

  1. Arduino - GSM Test Web Server