77 проектов Arduino
.pdf
Эксперимент 69 |
311 |
} toArduino+="relay1=on;";checked1="checked";
else {
} toArduino+="relay1=off;";checked1="";
if(data.indexOf("relay2=on")!=-1) {
} toArduino+="relay2=on";checked2="checked";
else {
} toArduino+="relay2=off";checked2="";
toArduino+="$"; Serial.print(toArduino);
Полностью посмотреть код и скачать скетч запуска сервера, выдачи страницы и отправки данных на Arduino можно на сайте Arduino-kit по ссылке
https://arduino-kit.ru/scetches/exp_69_02.zip.
Переключатели на плате Arduino+WiFi необходимо установить следующим образом:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
OFF |
OFF |
OFF |
OFF |
ON |
ON |
ON |
|
|
|
|
|
|
|
И загрузить скетч в модуль ESP8266.
Теперь подключим релейный модуль к Arduino. Схема соединений показана на рис. 69.1.
На Arduino загружаем скетч получения данных по последовательному порту из модуля ESP8266 и изменения состояния реле.
Содержимое скетча DE показано в листинге 69.3.
Листинг 69.3.
//пины подключения реле int pinRelay1=7;
int pinRelay2=6;
//данные, пришедшие из последовательного порта
String inputString = "";
//строка пришла
boolean stringComplete = false;
void setup(){
//конфигурация пина реле pinMode(pinRelay1,OUTPUT); pinMode(pinRelay2,OUTPUT);
//и выключить digitalWrite(pinRelay1,HIGH); digitalWrite(pinRelay2,HIGH);
//запуск последовательного порта
Эксперимент 69 |
313 |
void serialEvent1() { boolean flag1=false;
while (Serial.available() && flag1==false) { // получить байт:
char inChar = (char)Serial.read(); Serial.write(inChar);
if (inChar == '$') { stringComplete = true; flag1=true;
}
else // добавление в строку inputString += inChar;
}
}
Скачать данный скетч можно на сайте Arduino-kit по ссылке https://arduino-kit.ru/scetches/exp_69_03.zip.
Для загрузки этого скетча на плату Arduino переключатели на плате Arduino+WiFi необходимо установить следующим образом:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
OFF |
OFF |
ON |
ON |
OFF |
OFF |
OFF |
|
|
|
|
|
|
|
После загрузки скетча на Arduino, необходимо перевести плату в режим ATmega328 ESP8266. Переключатели необходимо установить следующим образом:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
ON |
ON |
OFF |
OFF |
OFF |
OFF |
OFF |
|
|
|
|
|
|
|
Теперь Arduino и ESP8266 соединены по последовательному порту.
Заходим из браузера по адресу сервера и видим страницу для изменения состояния реле (рис. 69.2).
Рис.69.2.Страница управления реле
Проверяем, изменяя состояние checkbox-ов на странице
Эксперимент 70.
Web-сервер управления текстом для бегущей строки на 4-х разрядной светодиодной матрице
В этом эксперименте создадим web-сервер и создадим страницу, с которой будем управлять текстом
и скоростью движения бегущей строки на 4-х разрядной светодиодной матрице
Вэксперименте мы будем использовать следующие компоненты: Плата Arduino UNO – 1;
Кабель USB – 1;
Плата прототипирования – 1; 4-х разрадная светодиодная матрица – 1; Потенциометр – 1;
Провода MM – 2; Провода MF – 4.
Вэтом эксперименте будем изменять содержимое "бегущей строки" на 4-х разрядной светодиодной матрице, отправляя данные на Arduino по последовательному порту со страницы web-сервера на ESP8266.
Насерверенеобходимоформироватьстраницу,кодкоторойпоказанвлистинге70.1.
Листинг 69.1.
<!DOCTYPE HTML> <html>
<form name='form1' id='form1' action='' method='GET'> <br> Text for the ticker <input name='text1' >
<br> <input type='submit' name='send1' value='Send' > </form>
</html>
В скетче 69_02 изменяем код выдачи страницы и код обработки данных, приходящих из браузера и формирования строки для отправки в Arduino:
// анализ данных запроса и отправка данных на Arduino String toArduino="*";
int n1=data.indexOf("?text1="); int n2=data.indexOf("&send1");
toArduino+=data.substring(n1+7,n2)+"$"; Serial.print(toArduino+String(n1)+" "+String(n2)); // отправить заголовки и страницу client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html");
Эксперимент 70 |
315 |
client.println("Connection: close"); client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>");
client.println("<form name='form1' id='form1' action='' method='GET'>");
client.println("<br> Text for the ticker <input name='text1' >"); client.println("<br> <input type='submit' name='send1'
value='Send' >"); client.println("</form>"); client.println("</html>"); break;
}
Полностью посмотреть код и скачать скетч запуска сервера, выдачи страницы и отправки данных на Arduino можно на сайте Arduino-kit по ссылке
https://arduino-kit.ru/scetches/exp_70_02.zip.
Переключатели на плате Arduino+WiFi необходимо установить следующим образом и загрузить скетч на модуль ESP8266:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
OFF |
OFF |
OFF |
OFF |
ON |
ON |
ON |
|
|
|
|
|
|
|
Теперь подключаем к Arduino 4-х разрядную светодиодную матрицу. Схема соединений показана на рис. 70.1.
Рис.70.1.Схема соединения для "бегущей строки"на 4-х разрядной светодиодной матрице
Эксперимент 70 |
317 |
//очистка экрана matrix.fillScreen(LOW);
//вывод строки с позиции offset
for ( int i = 0 ; i < text.length(); i++ ) { matrix.setRotation( i, 1 ); if(i*6+offset>(-6) && i*6+offset<32) {
matrix.drawChar(i*6+offset, 0, text[i], HIGH, LOW, 1);
}
}
matrix.write();
//задержка (скорость) delay(speed1);
//изменение смещения offset=offset-1;
//в начало - позиция 32 if(offset+text.length()*6==0)
offset=32;
}
//
void serialEvent() { boolean flag1=false;
while (Serial.available() && flag1==false) { // получить байт:
char inChar = (char)Serial.read(); if (inChar == '#') {
stringComplete = true; flag1=true;
}
else // добавление в строку inputString += inChar;
}
}
Скачать данный скетч можно на сайте Arduino-kit по ссылке https://arduino-kit.ru/scetches/ exp_70_03.zip.
Для загрузки этого скетча на плату Arduino переключатели на плате Arduino+WiFi необходимо установить следующим образом:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
OFF |
OFF |
ON |
ON |
OFF |
OFF |
OFF |
|
|
|
|
|
|
|
Загружаем скетч на плату Arduino и наблюдаем "бегущую строку". Пробуем менять содержимое отправкой команды из монитора последовательного порта.
После загрузки скетча на Arduino, необходимо перевести плату в режим ATme-
Эксперимент 71.
Домашняя метеостанция для сервиса Народный мониторинг
В этом эксперименте мы приступим к созданию метеостанции для сервиса Народный мониторинг
Вэксперименте мы будем использовать следующие компоненты: Плата Arduino+WiFi – 1;
Кабель USB – 1.
Вэкспериментах 67-70 мы рассматривали использование нашей платы в качестве WiFi web-сервера. В этом эксперименте будем использовать плату Arduino+WiFi
вкачестве web-клиента. Рассмотрим отправку данных в сервис Народный мониторинг.
На карте мира сайта Народный мониторинг собираются и отображаются практически в реальном времени показания от различных датчиков среды, установленных как на улице, так и в помещении.
Чтобы стать участником проекта, необходимо зарегистрироваться. Заходим на сайт http://www.narodmon.ru и выбираем пункт меню Вход Стать участником проекта. В форме вводим адрес электронной почты, куда будут отправлены логин и пароль для входа в профиль (см. рис. 71.1).
Рис.71.1.Регистрация в сервисе Народный мониторинг
