Отправляет email-рассылки с помощью сервиса Sendsay
←  Предыдущая тема Все темы Следующая тема →
пишет:

ESP8266 - основа IoT.

В основе построения интернета вещей  (internet of thing) лежат устройства радиопередачи. Одно из них это модуль wifi ESP8266, имеющий на сегодня 13 версий. Использующийся протокол связи IEEE 802.11b/g/n дает прекрасную возможность подключения устройств к домашнему роутеру. Вариация прошивок для данного модуля увеличивает гибкость в их управлении, например АТ-команды или язык Lua и другое. Применение к данным модулям микроконтроллера AVR в качестве управления дает прекрасную возможность в сборе данных и их отсылке, например в веб- интерфейс для анализа и управления каким либо устройством, либо объектом. Ниже пример инициализации модуля, поднятия на нем TCP-сервера и при запросе с браузера по адресу и порту, вывод температуры измеренной микроконтроллером  в браузер.

#define F_CPU 8000000L
#include <stdio.h> /*Подключаем необходимые библиотеки компилятора*/
/*Здесь мы пропустили  define, библиотеки, функции UART. Нас интересуют АТ-команды*/
................................................
   int main(void){
      uint8_t block[5]; /*Буфер для записи данных*/
/*Инициализация диода*/
./*LED_DDR |= (1<<LED_PIN); Используем диод для наладки
LED_OFF;
LED_ON;*/
      sei();
      uart_init(RXUBRR); /*Инициализируем интерфейс. Передаем регистр. Кто забыл смотрим статью №40*/
      uart_puts("AT\r\n");  /*Простая проверка*/
      uart_wite_for("OK"); /*Ответ*/
      uart_puts("AT+CIPMODE=0\r\n"); /*Режим передачи данных для сервера или клиента. У нас смешанный режим. В режиме сервера: 0 - сервер отправляет данные клиенту и принимает данные от клиента. 1 -сервер отправляет данные клиенту, но не принимает данные от клиента. В режиме клиента: 0 - клиент отправляет данные серверу и принимает данные от сервера. 1 - клиент не отправляет данные серверу, но принимает данные от сервера.*/
      uart_wite_for("OK"); 
      uart_puts("AT+CIPMUX=1\r\n");  /*Режим одиночного или множественного соединения. Зависит от AT+CIPMODE. При 0 с модулем соединяется только один клиент. При запросе другого, в это же время,  получает таймаут. При 1 соединяется до 5 клиентов.*/
      uart_wite_for("OK");
      uart_puts("AT+CIPSERVER=1,88\r\n");  /*Конфигурирует и запускает сервер на модуле ESP8266.    При CIPMUX=1. При подключении клиента к серверу, ему присваивается идентификатор соединения id.*/
      uart_wite_for("OK");
      uart_puts("AT+CIPSTO=5\r\n"); /*Таймаут сервера, после его старта. Может быть установлен в диапазоне 0..7200 секунд.*/
      uart_wite_for("OK");
      ds18b20_search(); /*Поиск датчиков*/
      while(1) {
           read_ds18b20(); /*Читаем температуру*/
           dtostrf(hg[0],5,1,&block[0]);  /*Преобразуем в строку*/
           uart_puts("AT+CIPSEND=0,5\r\n");  /* При одиночном соединении указывается только длина отправляемых байт. При множественном идентификатор и длина. Длина данных в пакете до 2048 байт. Между пакетами интервал 20мс. После получения данной команды модуль возвращает ">" и переходит в режим приема данных по RX, после приема данных необходимой длины передает их в радиоканал. При успешной передаче возвращает "SEND OK". Прервать режим приема данных и перейти в командный режим можно последовательностью "+++" */
           /*Ждем символ “>” И вводим данные. Мы здесь упускаем проверку на этот символ*/
           delay_ms(10);
           uart_puts(block);
 /*Также упускаем проверку на SEND ОК*/
           delay_ms(2000);
     }
}

Подробнее читайте по ссылке.

Вступите в группу, и вы сможете просматривать изображения в полном размере

Это интересно
0

16.03.2016
Пожаловаться Просмотров: 1523  
←  Предыдущая тема Все темы Следующая тема →


Комментарии временно отключены