WiFi Shield CC3000 для Arduino UNO и MEGA

Код:00494
Артикул:CC3000-01
В наличии:сейчас нет
WiFi Shield CC3000 для Arduino UNO и MEGA
ARDUINO CC3000 WiFi Shield for Arduino

 
 
ARDUINO CC3000 WiFi Shield for Arduino

 
ARDUINO CC3000 WiFi Shield
 
Небольшой экранированный узел на плате WiFi Shield CC3000, содержащий основную микросхему.
Предлагаем одно из решений задачи связи Wi-Fi в мире Arduino. Относится к оборудованию обеспечивающему подключение Arduino к точке доступа Wi-Fi для обмена данными по беспроводной сети. Устройство обеспечивает до четырех одновременных соединений TCP/UDP по Wi-Fi. Может работать в режиме клиента или сервера. Shield CC3000 использует для связи с микроконтроллером прибора интерфейс SPI, что дает большую скорость обмена данными. Сигналы прерываний выведены на контакты модуля. Основа WiFi Shield CC3000 для Arduino UNO и MEGA микросхема СС3000 бренда Texas Instruments. Множество разнообразных сведений о микросхеме во многом справедливых и для модуля СС3000 на русском языке здесь. В модуле предусмотрена возможность установки карты памяти microSD объемом 2 или 4 Гбт. Также устройство содержит стабилизатор питания с выходным напряжением 3,3 В, керамическую антенну и кнопку сброса.
Модуль СС3000 дает широкие возможности изучения микросхемы СС3000 для применения в оригинальных разработках. Конструкция и расположение контактов позволяют устанавливать модуль в розетки соединителей основных микроконтроллерных модулей набора Arduino типов UNO и MEGA, а также Crowduino Mega, 86Duino и A-Star 32U4 Prime. Энтузиастами получены положительные результаты по совместной работе СС3000 с Arduino Due.

ARDUINO CC3000 WiFi Shield

Установка модуля Wi-Fi преобразует лампу в интернет-вещь.
 
Характеристики
 
Питание
            напряжение, В
                        диапазон 4,5 – 9
                        номинальное 5
            ток 275 мA
Радиочастотный диапазон 2,4 ГГц
Стандарт Wi-Fi: IEEE 802.11 b/g
Встроенный IPv4 TCP/IP стек
Пропускная способность (TCP) 4 Mбод
Поддерживаемы типы шифрования WEP, WPA, WPA2, TKIP & AES
Выходная мощность +18 dBм при скорости обмена 11 Mбод, CCK
Чувствительность приемника –88 dBм, 8% PER, скорость 11 Мбод
Частота работы SPI предельная 16 МГц
Температура воздуха при работе: –20…70 ℃
Размеры 60 x 53 x 24 мм
 
Подключение
 
Необходимо использовать внешний блок питания, обеспечивающий ток нагрузки 1 А. Предельное суммарное потребление CC3000 и Arduino MEGA может достигать 600 мА. Помните, что USB порт персонального компьютера может обеспечить ток до 500 мА что недостаточно для работы двух модулей.
 
Основные контакты, используемые в работе модуля СС3000
Сигнал                       SCK    MISO              MOSI              CS       CC3000          VBAT_EN      CS SD IRQ
Номер контакта         13        12                    11                    10        5                      4                      3
 
Модуль имеет гнездо для подключения внешней антенны. Перед входом модуля СС3000 в сеть Wi-Fi проверьте положение перемычки выбирающей собственную антенну модуля или подключаемую.
 


Установка WiFi Shield CC3000 для Arduino UNO и MEGA в соединители Arduino UNO.
 


Подключение к Crowduino.
 


Подключение модуля СС3000 к 86Duino Zero.
 
Электрическая схема
 


 
Схема доступна в сокращенном виде. Вот источники для скачивания схемы: CC3000 Shield Schematic
и CC3000 Breakout Schematic.
 
Работа CC3000 через сайт
 
Рассмотрим подключение к Wi-Fi сети, отправку и прием сообщений.
 


Этапы организации управления модулем CC3000 с помощью интернета.
 
Для организации работы модуля CC3000 через сайт находящийся в интернете скачаем библиотеки ардуино, установим примеры в программный пакет Arduino IDE, подключим WiFi Shield CC3000 к модулю микроконтроллера Arduino MEGA, укажем с помощью приложения SmartConfig пароль Wi-Fi сети, зайдем на специальный сайт и вводя там команды будем управлять состоянием выходов Arduino MEGA и контролировать состояние входов.
 
Установка программ
 
Установите программный пакет ARDUINO 1.6.5  Установите библиотеки bergcloud/cc3000-arduino. Скачайте и раскройте BERGCloudCC3000Release.zip Скопируйте содержимое в папку библиотек Arduino, заменяя устаревшие файлы на новые.
Здесь содержатся следующие папки:
Adafruit_CC3000,
aJson,
BERGCloudCC3000,
Websockets.
 
Электрическое подключение Wi-Fi Shield CC3000 к Arduino MEGA
 


 
Модуль CC3000 устанавливается поверх Arduino MEGA как изображено на фото. Arduino MEGA подключен к персональному компьютеру с помощью кабеля USB. В программном пакете ARDUINO 1.6.5 выберите
 
File→Examples→BERGCloudCC3000→WiFi_to_Website и выберите загрузить
 
Откройте последовательный монитор, чтобы получать данные от Arduino.
 
Соединение с Wi-Fi
 
Приложение SmartConfig используется для конфигурирования подключения к Wi-Fi при “переезде” интернет-вещи в новую сеть. Это приложение позволяет пользователям быстро настроить подключение CC3000 к новой Wi-Fi сети. Одной из наиболее привлекательных особенностей CC3000 является возможность настройки соединения с помощью приложения на смартфоне или аналогичном мобильном устройстве. Использование SmartConfig в различных операционных системах приведено здесь. Описание SmartConfig находится здесь.  Скачать SmartConfig для Android и iOS можно отсюда.  Это важно если проект часто применяется в разных сетях Wi-Fi. Иметь способ подключения к новой сети без перепрограммирования микроконтроллера чрезвычайно удобно. Соединение с Wi-Fi проходит только в сетях стандартов 802.11 b и g. Смартфон должен быть подключен к той же сети к которой, вы хотите присоединить интернет-вещь. SSID сети должно определиться автоматически.
 


Экран смартфона при работе приложения SmartConfig.
 
Если SmartConfig не работает, то можно вручную настроить подключения к Wi-Fi CC3000 с помощью указания имени и пароля в программе Arduino. Найдите строки
 
#define WLAN_USE_SMARTCONFIG true
 
и измените true на false, а также укажите имя и пароль Wi-Fi сети, например.
 
#define WLAN_USE_SMARTCONFIG false                      
#define WLAN_SSID "my network"
#define WLAN_PASS "password"
 
Загрузить код снова. Здесь мы используем безопасность WPA2. Если вам нужен другой тип безопасности вы должны будете изменить в программе тип шифрования WLAN_SEC_WPA2 на один из других требуемых типов шифрования WLAN_SEC_UNSEC, WLAN_SEC_WEP или WLAN_SEC_WPA.
 
Управление через сайт
 
Когда Arduino подключится к Wi-Fi уникальный код для вашего Arduino и CC3000 будет выведен на дисплей компьютера с помощью последовательного монитора. Введите код на сайте. Это используется для отправки команд на устройство. Попробуйте послать сообщение для Arduino с сайта и посмотреть результат на серийном мониторе вашего компьютера.
 
Это будет выглядеть так:
 
//////////////////////////////////////////////////////////////
To complete connection visit http://getconnected.bergcloud.com
and claim your device using this claim code:
8t2d-07ze-gr38-y4ok
////////////////////////////// checking again in 5 seconds ///
 
Этот идентификатор устройства входит в сообщение в последовательном мониторе, например.
 
Connection to Berg established.
DeviceID = d2d39f37a8863f7d
 
Если вы посылаете сообщение устройству, то должны увидеть следующее в последовательном мониторе.
 
Command contents = hello
 
Теперь опробуем некоторые аппаратные функции. В примере кода есть две команды для теста. Подключите светодиод анодом через резистор к контакту 48 и катодом к общему проводу и отправьте сообщение "led-on" из сайта. Далее отправьте "led-off". Поместите переключатель между контактами 49 и GND и установите на сайте флажок Send-команда чтобы увидеть события при нажатии кнопки переключателя.
При подключении вашего устройства к вашему собственному проекту вы сможете им управлять. Зайдите на вкладку “Управление проектами” http://bergcloud.com/devcenter/projects в центре разработчиков для создания своего проекта.
 
Первые шаги в программировании CC3000
 
Чтобы проверить работоспособность и получить данные о модуле СС3000 необходимо установить программную библиотеку. Инструкции по установке и библиотека доступны для скачивания здесь. Запустите пример buildtest. В результате работы примера в окне последовательного монитора должен быть результат похожий на этот.
 
Hello, CC3000!
RX Buffer : 128 bytes
TX Buffer : 128 bytes
Free RAM: 1211
Initialising the CC3000 ...
Firmware V. : 1.24
MAC Address : 0x09 0x01 0x27 0x56 0xA3 0xF4
Networks found: 11
=============================
SSID Name : AtlantisBack
RSSI : 62
Security Mode: 1
SSID Name : nanotechnology
RSSI : 54
Security Mode: 3
SSID Name : arduino-kit.ru
RSSI : 34
Security Mode: 3
SSID Name : arduinotest
RSSI : 54
Security Mode: 1
============================
Deleting old connection profiles
Attempting to connect to Atlantis
Connected!
Request DHCP
IP Addr: 192.168.1.133
Netmask: 255.255.255.0
Gateway: 192.168.1.1
DHCPsrv: 192.168.1.1
DNSserv: 75.13.0.7
Pinging 206.59.138.245...5 replies
Ping successful!
Closing the connection
 
Попробуем сделать первые шаги в программировании CC3000. Для этого необходимо скачать библиотеку Adafruit_CC3000_Library-master и установить ее в обычном порядке. Библиотека включает в себя несколько примеров обширного использования.
Скачайте программу Prog_110_1 отсюда. В начале программы размещены следующие строки.
 
#include <Adafruit_CC3000.h>
#include <SPI.h> 

#define ADAFRUIT_CC3000_IRQ 3 // Прерывание должно быть выведено на контакт 3
#define ADAFRUIT_CC3000_VBAT 5
#define ADAFRUIT_CC3000_CS 10

 
Таким образом, мы уже можем создать экземпляр CC3000.
 
Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT, SPI_CLOCK_DIVIDER);
 
Для подключения к Wi-Fi сети необходимо указать имя SSID сети и пароль, которые устанавливаются следующими командами.
 
#define WLAN_SSID " arduino-kit.ru" // Наибольшая длина названия Wi-Fi сети 32 символа
#define WLAN_PASS " password " // Пароль
#define WLAN_SECURITY WLAN_SEC_WPA2
 
Использовано шифрование WPA2, но также доступны и другие режимы:
 
WLAN_SEC_UNSEC, WLAN_SEC_WEP или WLAN_SEC_WPA
 
В следующих строках программы проходит инициализация микросхемы WI-FI с помощью функции cc3000.begin() и проверка результата.
 
Serial.begin(115200);
Serial.println("Ищу CC3000!");
Serial.print("Инициализация CC3000 ...");
if (!cc3000.begin())
 { Serial.println("\невозможно инициализировать CC3000!" );
 Serial.flush();
 exit(0);
 }
 
В случае ошибки получаем соответствующее сообщение и выходим из программы. Если мы добились успеха, то смотрим список доступных сетей Wi-Fi с помощью следующей функции.
 
listSSIDResults()
 
Эта функция находит и выводит список доступных сетей с помощью функции cc3000.startSSIDscan(). Микросхема СС3000 запоминает последние данные соединения, полученные в сети. Рекомендуется перед подключением к сети очистить данные предыдущих соединений. Мы будем делать это путем выполнения следующих команд:
 
Serial.println("Очистка данных предыдущих соединений");
cc3000.deleteProfiles();
 
Теперь восстанавливается связь с помощью функции cc3000.connectToAP чтобы работать с точкой доступа указанной в SSID:
 
char *ssid = WLAN_SSID; /* Наибольшая длина 32 символа */
Serial.println("Попытка подключения к "); Serial.print(ssid);
if (!cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY))
{ Serial.println("Соединение невозможно..");
 Serial.flush(); exit(0);
}
Serial.print("...OK.\nConect. Жду DHCP...");
 
Если связь не восстановлена, то выводится сообщение о ошибке. В случае успеха будем запрашивать у основной микросхемы модуля данные соединения. Это займет некоторое время. Если все пойдет хорошо, мы вызываем функцию displayConnectionDetails(), чтобы увидеть IP-адрес, DNSs и другие данные.
 
Serial.print("...OK.\nConect. Жду DHCP...");
while (!cc3000.checkDHCP())
 delay(100); // Все: Время установки DHCP превышено!
Serial.println("OK.");
while (! displayConnectionDetails())
 delay(1000);
 
Соединение закрывается.
 
Serial.println("\Закрытие подключения"));
cc3000.disconnect();
 
Функция cc3000.getIPAddress(), на которой основана displayConnectionDetails, использует протокол динамической настройки узла DHCP, позволяющий приборам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP чтобы выполнить подключение.
 
Установка статического IP-адреса
 
Как мы выяснили WiFi Shield CC3000 для Arduino UNO и MEGA связывается со смартфоном находящимся в той же сети Wi-Fi и сайтами в интернете. Гораздо важнее и интереснее связаться с модулем CC3000 по интернету, а проще говоря, иметь глобальный доступ из любой точки планеты к нашему интернет-прибору. Для этого в модуль загружается программа превращающая его в веб-сервер. Но это далеко не все. Есть одна проблема.
При работе с обычным веб-сервером, соединенным кабелем с сетью, мы обращаемся к нему использую IP-адрес веб-сервера. Он за ним закреплен. Но у нас Wi-Fi и при каждом включении модуля СС3000 в локальную радиосеть Wi-Fi ему роутером назначается каждый раз новый IP-адрес случайным образом. Так работают все приборы Wi-Fi. Для установки статического адреса в модуль СС3000 записывается специальная программа, обеспечивающая ему постоянный IP-адрес. Значение IP-адреса мы укажем в тексте программы, обеспечивающей закрепление адреса за модулем. В дальнейшем используя статический IP-адрес к модулю можно обратиться из интернета.
Для этого мы используем в программе группу команд вроде этой.
 
uint32_t ipAddress = cc3000.IP2U32(192, 168, 1, 12);
uint32_t netMask = cc3000.IP2U32(255, 255, 255, 0);
uint32_t defaultGateway = cc3000.IP2U32(192, 168, 1, 1);
uint32_t dns = cc3000.IP2U32(8, 8, 4, 4);
if (!cc3000.setStaticIPAddress(ipAddress, netMask, defaultGateway, dns))
 { Serial.println(F("Не удалось установить статический IP!"));
 Serial.flush();
 Exit(0);
 }
else
 Serial.println(“IP-адрес назначен успешно”);
 
В результате будут выведены следующие данные.
 


 
Мы присвоили модулю статический IP, но и этого недостаточно для получения данных из  интернета. Дело в том, что из интернета мы видим только Wi-Fi роутер, чтобы с ним не было соединено в локальной Wi-Fi сети. Вспомним как мы выходим в интернет находясь в локальной сети Wi-Fi. У роутера есть множество портов. Когда происходит соединение изнутри Wi-Fi наружу в сеть, роутер открывает TCP-соединение, выделяя порт для этого, и ретранслирует то, что нужно передать тому, кому требуется. А когда нужно соединиться из интернета с Wi-Fi устройством в автоматическом режиме? Для решения этой проблемы приказываем роутеру: “что пришло из интернета на порт R, передавай на внутреннее устройство U”. Это указание между собой инженеры называют “проброс порта”. Теперь из интернета это выглядит, как будто это компьютер открыл порт для обмена данными. Для воплощения в реальность рассмотренных изменений в работе роутера выполним следующие действия.
В свойствах роутера в разделе NAT Setting, в меню виртуального сервера выполнить настройку трансляции. Установить входящий порт 80 Port Range. В строке локальный IP адрес указать статический IP адрес WiFi Shield CC3000 для Arduino UNO и MEGA, который мы только что указали в программе, текст которой чуть выше. Локальный порт указать 80, это константана из программной библиотеки Arduino. Номер порта Arduino участвует в программе веб сервера. Установить протокол ТСР.
Проверим, обеспечили мы доступ к модулю или нет. Выясним IP-адрес Wi-Fi роутера. Используя компьютер, подключенный к интернету, в браузере в строке адреса страниц введем IP-адрес Wi-Fi роутера, к которому подключен модуль СС3000. В окне браузера должна открыться страница веб сервера, установленного на модуле.
 
SD карта
 
Веб сервер потребует память для хранения страниц, скриптов, картинок и иконок. Недорогая SD карта решает эту проблему. Для ее установки на плате WiFi Shield CC3000 для Arduino UNO и MEGA размещен контейнер. Arduino имеет развитые программные средства поддержки SD карт. О использовании SD карты рассказано на нашем сайте на страницах специализированных модулей Arduino SD карт.
 


 
Описание модуля

Микросхема CC3000 Texas Instruments





 
Вверх