Академический Документы
Профессиональный Документы
Культура Документы
Arduino
Полезное применение для старого девайса
Asus RTG32 считается не очень удачным, однако если установить на него прошивку OpenWrt, то он становится не
только вполне работоспособным, но ещё и может превратиться в подобие «умного дома» если к нему подключить
ардуину.
Итак, если Вы являетесь владельцем такого девайса и хотите найти ему расширенное применение, то эта статья
для Вас.
Прошивка
Скачиваем прошивку (RTG32C1.bin). Внимание! Прошивка для версии C1.
Если ктото захочет собрать её самостоятельно, то сможет воспользоваться инструкцией с сайта OpenWrt.
Далее нам понадобится TFTPсервер.
Пользователи Linux могут с лёгкостью установить его вот так: (скорее всего он уже есть)
sudo aptget install tftp
А владельцы Win скачают его здесь.
Теперь подготовим компьютер и роутер. В сетевых настройках укажите статический IPадрес — 192.168.1.10 и маску
— 255.255.255.0, а шлюз и DNS оставьте пустыми.
Справедливо для всех ОС.
Соедините сетевым кабелем компьютер и любой из LANпортов роутера (жёлтенькие).
На обесточенном роутере зажмите кнопку Reset, включите питание (не отпуская кнопки), досчитайте до десяти и
отпустите ресет. Роутер будет «длинно» мигать лампочкой WPS и ожидать прошивку.
Обратите внимание, после прошивки у роутера не будет webинтерфейса, а неудачная прошивка приведёт к
«окирпичиванию».
Для Win:
Отключите антивирусы и прочие файрволы.
Запустите tftpd32(64).exe от имени администратора и выберите вкладку «Tftp Client».
В поле «Server Interface» введите IPадрес 192.168.1.10.
В поле «Host» введите IPадрес роутера — 192.168.1.1.
В поле «Local File» выберите скачанную прошивку — RTG32C1.bin и нажмите кнопку «Put».
Второй вариант — из командной строки скомандовать:)
cd \
tftp i 192.168.1.1 put RTG32C1.bin
Предварительно поместив файл RTG32C1.bin на диск С:\.
Для Linux:
Скопируйте прошивку в домашнюю папку и в терминале наберите по очереди:
tftp 192.168.1.1
tftp>binary
tftp>put /home/user/RTG32C1.bin
После обновления дождитесь пока роутер перезагрузится (минуты три) и ничего не трогайте до завершения.
В сетевых настройках компьютера включите автоматическое получение IPадреса и перегрузите роутер.
Теперь нужно зайти на роутер по telnet и активировать ssh. Как это сделать я подробно описал здесь.
После всех процедур Вы увидите такую картину.
Ардуина
Суть всей затеи заключается в том, что подключаясь к роутеру по ssh можно взаимодействовать с ардуиной
через UART.
В качестве примера к роутеру будет подключена ардуина с датчиком влажности и температуры — DHT22, однако
ничто не мешает добавить функционала в эту конструкцию.
Потребуется библиотека DHTsensor.
Залейте скетч:
#include "DHT.h"
#define DHTPIN 9
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
int hum = 100; // влажность
int thum = 0; // температура
int count = 0; // счётчик просто для того чтоб было видно, что программа работает
void setup()
{
Serial.begin(9600);
dht.begin();
}
void loop()
{
thum = dht.readTemperature();
hum = dht.readHumidity();
count++;
if(count > 10) count=0;
delay(1000);
Serial.print("Count: ");
Serial.println(count);
Serial.print("Temp: ");
Serial.println(thum);
Serial.print("Vlaga: ");
Serial.println(hum);
Serial.println("");
}
Ардуина раз в три секунды отсылает данные в уарт.
Пришло время разобрать роутер и подключиться к UARTу. (винтики спрятаны под резиновыми опорами)
Подключите всё по следующей схеме.
ардуина RX <> TX роутер
ардуина TX <> RX роутер
GND <> GND
Подайте питание на роутер и ардуину, зайдите на роутер и дайте команду чтения из устройства:
cat /dev/ttyS1
В терминале появится желаемое…
На тот случай если Вы захотите поуправлять чемлибо, то достаточно будет залить в ардуину этот код:
int led = 13;
void setup()
{
Serial.begin(57600);
pinMode(led, OUTPUT);
}
void loop()
{
if (Serial.available())
{
byte insim = Serial.read();
switch (insim)
{
case 'a':
digitalWrite(led, HIGH);
break;
case 'b':
digitalWrite(led, LOW);
break;
}
}
}
При отправке в ардуину символов a и b, в ответ будет зажигаться и гаснуть D13.
В терминале дать команды:
echo 'a' > /dev/ttyS1
echo 'b' > /dev/ttyS1
Подробнее об управлении ардуиной читайте здесь.
На этом всё.
По причине малого объёма памяти и отсутствия возможности подключить флешку, управление через веб
интерфейс не получится.
Поболтать о статье на форуме...
Asus RTG32, OpenWrt, Arduino
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.