Arduino:Примеры/WiFiStatus: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
м (Замена текста — «<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">»)
 
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 21: Строка 21:
Во-первых, подключаем класс '''Process'''.
Во-первых, подключаем класс '''Process'''.


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
#include <Process.h>
#include <Process.h>
</syntaxhighlight>
</syntaxhighlight>
Строка 27: Строка 27:
В секции setup() инициализируем '''Serial''' (последовательную передачу данных) и библиотеку '''Bridge'''. Далее делаем так, чтобы дальнейшая часть скетча не запускалась до тех пор, пока не будет установлено последовательное соединение.
В секции setup() инициализируем '''Serial''' (последовательную передачу данных) и библиотеку '''Bridge'''. Далее делаем так, чтобы дальнейшая часть скетча не запускалась до тех пор, пока не будет установлено последовательное соединение.


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
void setup() {
void setup() {
   Serial.begin(9600);  
   Serial.begin(9600);  
Строка 44: Строка 44:
В секции loop() инициализируем новый процесс, который будет запускать скрипт проверки '''WiFi'''. Сделаем это при помощи функции runShellCommand(), указав в ней путь к скрипту.
В секции loop() инициализируем новый процесс, который будет запускать скрипт проверки '''WiFi'''. Сделаем это при помощи функции runShellCommand(), указав в ней путь к скрипту.


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
void loop() {
void loop() {
   Process wifiCheck;
   Process wifiCheck;
Строка 52: Строка 52:
Выводим на '''Serial Monitor''' все символы, возвращенные скриптом, а затем ждем несколько секунд перед тем, как начать снова.
Выводим на '''Serial Monitor''' все символы, возвращенные скриптом, а затем ждем несколько секунд перед тем, как начать снова.


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
while (wifiCheck.available() > 0) {
while (wifiCheck.available() > 0) {
     char c = wifiCheck.read();
     char c = wifiCheck.read();
Строка 66: Строка 66:
Весь код полностью – ниже:
Весь код полностью – ниже:


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
/*
/*
Проверка статуса WiFi  
Проверка статуса WiFi  
Строка 122: Строка 122:


<references />
<references />
{{Навигационная таблица/Портал/Arduino}}
[[Категория:Пример]]
[[Категория:Пример]]
[[Категория:Примеры]]
[[Категория:Примеры]]
[[Категория:Пример программирования Arduino]]
[[Категория:Пример программирования Arduino]]
[[Категория:Примеры программирования Arduino]]
[[Категория:Примеры программирования Arduino]]

Текущая версия от 12:39, 8 июля 2023

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


Проверка статуса 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);
}

См.также

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