Arduino:Примеры/WiFiStatus

Материал из Онлайн справочника
Версия от 00:16, 14 декабря 2016; Myagkij (обсуждение | вклад) (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


Проверка статуса WiFi на Yun[1]

Этот скетч запускает скрипт под названием «pretty-wifi-info.lua», установленный на Yun в папке «/usr/bin». Он выводит информацию о статусе WiFi-соединения. Вывод информации осуществляется при помощи последовательной передачи данных, поэтому Yun и компьютер нужно подключить друг к другу при помощи USB-кабеля, а перед запуском выбрать нужный порт в меню Port.

Необходимое оборудование

  • Плата Arduino Yun;
  • Беспроводная сеть;

Цепь

Для этого примера цепи строить не нужно.

Код

Во-первых, подключаем класс Process.

#include <Process.h>

В секции setup() инициализируем Serial (последовательную передачу данных) и библиотеку Bridge. Далее делаем так, чтобы дальнейшая часть скетча не запускалась до тех пор, пока не будет установлено последовательное соединение.

void setup() {
  Serial.begin(9600); 
  while(!Serial);      

  Serial.println("Starting bridge...\n");  // "Активируем Bridge...\n"
  pinMode(13,OUTPUT);  
  digitalWrite(13, LOW);  
  Bridge.begin();  
  digitalWrite(13, HIGH);  // когда Bridge активируется, загорится светодиод, подключенный к 13-ому контакту

  delay(2000);  
}

В секции loop() инициализируем новый процесс, который будет запускать скрипт проверки WiFi. Сделаем это при помощи функции runShellCommand(), указав в ней путь к скрипту.

void loop() {
  Process wifiCheck;
  wifiCheck.runShellCommand("/usr/bin/pretty-wifi-info.lua");

Выводим на Serial Monitor все символы, возвращенные скриптом, а затем ждем несколько секунд перед тем, как начать снова.

while (wifiCheck.available() > 0) {
    char c = wifiCheck.read();
    Serial.print(c);
  }

  Serial.println();

  delay(5000);
}

Весь код полностью – ниже:

/*
Проверка статуса WiFi 

Этот скетч запускает скрипт «pretty-wifi-info.lua»,
установленный на Yun в папке «/usr/bin»,
а затем выводит информацию о статусе WiFi-соединения. 

Для вывода информации используется Serial Monitor,
поэтому Yun Должна быть подключена к компьютеру при помощи USB-кабеля.
Кроме того, вам нужно выбрать нужный порт в меню Port.

Создан 18 июня 2013 Федерико Фиссоре (Federico Fissore)

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

*/

#include <Process.h>

void setup() {
  Serial.begin(9600);  // инициализируем последовательную передачу данных
  while(!Serial);      // ничего не делаем, пока не откроется Serial Monitor

  Serial.println("Starting bridge...\n");  // "Активируем Bridge...\n"
  pinMode(13,OUTPUT);  
  digitalWrite(13, LOW);  
  Bridge.begin();  // устанавливаем контакт с процессором Linux
  digitalWrite(13, HIGH);  // когда Bridge активируется, включаем светодиод на 13-ом контакте

  delay(2000);  // ждем 2 секунды
}

void loop() {
  Process wifiCheck;  // инициализируем новый процесс

  wifiCheck.runShellCommand("/usr/bin/pretty-wifi-info.lua");  // команда, которую мы запускаем

  // Если наш процесс возвращает какие-либо символы,
  // выводим их на Serial Monitor:
  while (wifiCheck.available() > 0) {
    char c = wifiCheck.read();
    Serial.print(c);
  }

  Serial.println();

  delay(5000);
}

См.также

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