Arduino:Примеры/WiFiStatus: различия между версиями
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">») |
Нет описания правки |
||
Строка 21: | Строка 21: | ||
Во-первых, подключаем класс '''Process'''. | Во-первых, подключаем класс '''Process'''. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <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 | <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 | <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 | <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 | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Проверка статуса WiFi | Проверка статуса WiFi |
Версия от 12:35, 20 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Проверка статуса 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);
}