77 проектов Arduino
.pdf
Эксперимент 63 |
281 |
Рис.63.1.Схема соединений для подключения модуля TEA5767 к плате Arduino.
Листинг 63.1
//Подключение библиотеки для I2C #include <Wire.h>
//частота воспроизведения
float f = 103.2;
void setup() {
Wire.begin(); // запуск радио
unsigned int freqB = 4 * (f * 1000000 + 225000) / 32768; byte freqH = freqB >> 8;
byte freqL = freqB & 0XFF; Wire.beginTransmission(0x60); Wire.write(freqH); Wire.write(freqL); Wire.write(0xB0); Wire.write(0x10); Wire.write(0x00); Wire.endTransmission();
}
void loop() {;}
282 Эксперимент 63
Скачать данный скетч можно на сайте Arduino-kit по ссылке https://arduino-kit.ru/scetches/exp_63_01.zip.
Загрузим данный скетч на плату Arduino и проверим работу радио.
Для более удобной работы с модулем создана Arduino-библиотека TEA5767, которую можно скачать с сайта Arduino-kit по ссылке
https://arduino-kit.ru/scetches/TEA5767.zip.
В скетче (листинге 63.2) показана реализация работы радио на определенной частоте (выберите известную вам частоту).
Листинг 63.2
//Подключение библиотек
#include <TEA5767.h> #include <Wire.h>
//Создание экземпляра объекта
TEA5767 Radio;
void setup() {
Wire.begin();
//запуск радио
Radio.init();
//установка частоты
Radio.set_frequency(103.2);
}
void loop() {;}
Скачать данный скетч можно на сайте Arduino-kit по ссылке https://arduino-kit.ru/scetches/exp_63_02.zip.
Загрузим данный скетч на плату Arduino и проверим работу радио.
Эксперимент 64.
Радиоприемник на модуле TEA5767
В этом эксперименте создадим радиоприемник на модуле TEA5767
В эксперименте мы будем использовать следующие компоненты:
Плата Arduino UNO – 1;
Кабель USB – 1;
Плата прототипирования – 1;
Модуль FM-радио TEA5767 – 1;
УНЧ стерео – 1;
LCD Keypad shield – 1;
Провода MM – 27
Переключатели на плате Arduino+WiFi установите следующим образом:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
OFF |
OFF |
ON |
ON |
OFF |
OFF |
OFF |
|
|
|
|
|
|
|
В этом эксперименте создадим маленький радиоприемник с поиском доступных радиостанций. Данные о найденной радиостанции будем отображать на экране LCD Keypad shield. При нажатии на кнопки LEFT и RIGHT будем осуществлять поиск радиостанций. Модуль TEA5767 может работать в режиме поиска радиостанций. Поиск останавливается, когда обнаружена станция, имеющая уровень сигнала выше заданного порогового значения. В случае приема слабого сигнала происходит переключение из режима стерео в режим моно.
Схема подключения показана на рис. 64.1.
При написании скетча будем использовать библиотеку TEA5767. Содержимое скетча показано в листинге 64.1.
Листинг 64.1
//Подключение библиотек
#include <TEA5767.h> #include <Wire.h> #include <LiquidCrystal.h>
//оздание экземпляров
TEA5767 Radio;
284 Эксперимент 64
Рис.64.1.Схема соединений радиоприемника на модуле TEA5767
LiquidCrystal lcd(8,9,4,5,6,7);
// служебные переменные double old_frequency; double frequency;
int search_mode = 0; int search_direction;
void setup() {
Wire.begin();
//запуск радио
Radio.init();
//станция по умолчанию
Radio.set_frequency(105.4); Serial.begin(9600);
//запуск дисплея lcd.begin(16,2); lcd.clear();
}
void loop() {
285
Эксперимент 65.
Загрузка скетчей в модуль ESP8266
платы Arduino+WiFi
В этом эксперименте рассмотрим загрузку скетчей в WiFi-модуль ESP8266, который
установлен на плате Arduino+WiFi
В эксперименте мы будем использовать следующие компоненты:
Плата Arduino UNO – 1;
Кабель USB – 1;
На плате Arduino+WiFi интегрированы Arduino UNO R3 и WiFi-модуль ESP8266. Они могут работать вместе или каждый в отдельности. В этом эксперименте мы рассмотрим загрузку скетчей из Arduino IDE на модуль ESP8266.
Для загрузки скетчей переключатели на плате Arduino+WiFi необходимо установить следующим образом:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
OFF |
OFF |
OFF |
OFF |
ON |
ON |
ON |
|
|
|
|
|
|
|
В Arduino IDE выбираем плату
Generic ESP8266 Module (Инструменты Плата ) Generic ESP8266 Module. Выбираем любой пример, например Blink, подаем питание на плату Arduino+WiFi, выбираем порт подключения и загружаем скетч на плату (рис. 65.1).
Теперь загрузим на модуль ESP8266 скетч подключения модуля к доступной точке доступа. Перед загрузкой скетча нажимаем кнопку ESP reboot. Содержимое скетча показано в листинге 65.1. Вам необходимо изменить в нем значения переменных ssid и password на свои.
Листинг 65.1
//подключение библиотек
#include <ESP8266WiFi.h>
//данные SSID и пароль точки доступа
const |
char* |
ssid |
= |
"Kassa1"; |
const |
char* |
password = |
"12345678"; |
|
Эксперимент 65 |
287 |
Рис.65.1.Успешная загрузка скетча на модуль ESP8266 платы Arduino+WiFi
void setup() {
Serial.begin(115200);
delay(5000);
//
Serial.println();
Serial.println(); Serial.print("Connecting to "); Serial.println(ssid);
//Подключение к точке доступа
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) { delay(500);
Serial.print(".");
}
//успешно - вывести IP-адрес
Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP());
}
288 Эксперимент 65
void loop() {
;
}
Скачать данный скетч можно на сайте Arduino-kit по ссылке https://arduino-kit. ru/scetches/exp_65_01.zip.
Загрузим данный скетч в модуль ESP8266, откроем монитор последовательного порта и убедимся в подключении модуля к точке доступа WiFi (рис. 65.2).
Рис.65.2.Процесс подключения модуля ESP8266 к точке доступа WiFi
Теперь загрузим в модуль ESP8266 скетч создания сервера. Содержимое скетча показано в листинге 65.2. Вам необходимо изменить в нем значения переменных ssid и password на свои.
Powered by TCPDF (www.tcpdf.org)
Эксперимент 65 |
289 |
Листинг 65.2
//подключение библиотек
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h>
//данные SSID и пароль точки доступа
const |
char* |
ssid |
= |
"Kassa1"; |
const |
char* |
password = |
"12345678"; |
|
//создание объекта сервера
ESP8266WebServer server(80);
//код вывода главной страницы void handleRoot() {
server.send(200, "text/html", "Arduino-KIT - <br>
Server Arduino+WiFi!");
}
//код вывода страницы about void handleAbout() {
server.send(200, "text/html", "<a href='https://arduino-kit.ru/'> Site Arduino-kit</a>");
}
//код вывода страницы 404
void handleNotFound(){
String message = "File Not Found\n\n"; message += "URI: ";
message += server.uri(); message += "\nMethod: ";
message += (server.method() == HTTP_GET)?"GET":"POST"; message += "\nArguments: ";
message += server.args(); message += "\n";
for (uint8_t i=0; i<server.args(); i++){
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
}
void setup(void){
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("");
// Подсоединение к точке доступа
while (WiFi.status() != WL_CONNECTED) { delay(500);
Serial.print(".");
290 Эксперимент 65
}
Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP());
//главная страница server.on("/", handleRoot);
//страница /about server.on("/about", handleAbout);
//страница 404 - не найдена server.onNotFound(handleNotFound);
//запуск сервера
server.begin();
Serial.println("HTTP server started");
}
Рис.65.3.Запуск WiFi сервера на модуле ESP8266
void loop(void){ server.handleClient();
}
Скачать данный скетч можно на сайте Arduino-kit по ссылке https://arduino-kit.ru/scetches/exp_65_02.zip.
ЗагрузимданныйскетчвмодульESP8266,откроеммониторпоследовательногопорта и убедимся в подключении модуля к точке доступа WiFi и запуске сервера(рис. 65.3).
Заходим из браузера на страницу сервера (рис. 65.4, 65.5, 65.6).
