Arduino:Примеры/GSMExamplesTest Web Server
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Тестовый веб-сервер с помощью GSM Shield[1]
Этот скетч создает веб-сервер, который будет принимать соединения, идущие к GSM Shield. Некоторые операторы связи разрешают делать запросы только в пределах их собственной сети. Поэтому, чтобы убедиться, что ваша SIM-карта может отвечать на входящие HTTP-запросы, уточните это у своего оператора связи.
Необходимое оборудование
- Плата Arduino;
- Модуль Arduino + Telefonica GSM/GPRS Shield;
- SIM-карта с тарифным планом;
Цепь
Изображение 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());
}
}
}
См.также
- GSMServer
- ready()
- beginWrite()
- write()
- endWrite()
- read()
- available()
- stop()