Индикатор наличия интернета на Arduino + LCD

Ещё со времён использования ADSL модема осталась у меня привычка держать открытой консоль всегда и пинговать что-нибудь. Это нужно было для того, что бы если вдруг что-то случится, видеть, где проблема: в локальной сети или же оборвалось DSL соединение. Интернет мы тогда делили с соседом, и по некоторым причинам иногда отваливалась локалка, тогда приходилсь предпринимать меры со своей стороны. А если отваливалось DSL соединение, то часто приходилось перезагружать модем. Потом это было автоматизировано, программа автоматически перезагружала модем, если вдруг обрывалось соединение, потому что сам модем делал это далеко не всегда…

Это всё предыстория. Всё это в прошлом было, много лет с тех пор прошло. Потом  были и USB модемы, и консоль тоже всегда была открыта, ведь по времени отклика сразу было видно, какая сеть сейчас: 3G или EDGE. Ну, и это бывало полезным, что бы не забивать канал. Но это ладно.

Вот теперь оптический интернет, а всё равно иногда отваливается коннект. Но тут уже проблемы не со стороны провайдера (хотя у него тоже бывают), а локальные, т.к. сеть проведена немного не правильным образом, но другой возможности нет.

Иногда отсутствие интернета замечаю не сразу. А это важно, что бы срочно принять меры и восстановить работоспособность сети.
Поэтому за пол часика собрал и написал простую программулину, которая выводит с помощью Arduino на LCD экран время отклика и текущее время на второй строке дисплея. Всё равно эта строка была пустой, а так и время удобней смотреть будет на внешнем экране. А то вдруг там на весь экран будет что-то открыто на компьютере? )

Программа имеет файл настроек, где задаётся com-порт Ардуины, а так же хост, который нужно пинговать. Раз в секунду программа пингует указанный хост и отправляет ардуине время отклика, а так же текущее время.
Если вдруг интернет оборвётся, то на экране будет мигать сообщение «ALERT!!!» 3 раза в секунду, что должно быть весьма заметно… )

Вот исходный код скетча для ардуино. Проще некуда… )

 

Символ «Z» является разделителем строк. Когда программа в ардуине встречает его, то переводит курсор дисплея на вторую строку.

Программу можно скачать по этой ссылке.
Программа автоматически при запуске добавляет себя в автозагрузку.
Настройки хранятся в файле pinger.cfg в папке с программой. Если программа не найдёт файл настроек, то она создаст его с дефолтными настройками, но скорее всего будет выведена ошибка, так как ком-порт нужно будет всё же задать самому, и он полюбому будет отличаться от того номера порта, который у меня был.. )
Если не охота создавать файл вручную, то можно запустить программу, она выведет ошибку о том, что не может подключиться к указанному ком-порту и закроется. После этого уже можно будет отредактировать файл настроек и указать нужный хост для пинга и ком-порт.
Настройки хранятся в таком виде: имя_параметра=значение.
А дефолтные настройки такие:
COM_PORT=COM5
ping_host=213.180.204.3

213.180.204.3 — это один из IP-адресов хоста ya.ru
Ввёл именно айпишник, а не имя хоста для того, что бы каждый раз не нужно было преобразовывать имя в адрес.

Я сделал всё как можно проще, не стал делать форму для настроек, и т.д. Но если кому-то пригодится, пишите в комментариях, доделаю, если нужно будет )
Вот и всё 🙂

Запись опубликована в рубрике Soft by Shpirat, Программы, Сети с метками , , , , , . Добавьте в закладки постоянную ссылку.

Комментарии:

7 комментариев: Индикатор наличия интернета на Arduino + LCD

  1. shpirat shpirat говорит:

    Также, если надо, то можно доработать всю эту систему и сделать так, что бы текст, выводимый на экран, можно было задавать в файле настроек тоже.
    Или сделать возможность запускать команды, указанные в файле настроек, когда пропадает интернет. А также можно пищать спикером или светодиодиками на ардуине. В общем, возможностей тут много )
    Если будут предложения какие-то, пишите тут, в комментариях. И не забывайте указывать настоящий e-mail для обратной связи )

  2. Алексей говорит:

    Шикарно, я приписал сервер warfare (альфа), теперь не буду приставать к командной строке.

  3. маг говорит:

    Скажите, как узнать какой номер ком порта записать? Все время выскакивает «несуществующий порт»

  4. karamush karamush говорит:

    А как же вы тогда ардуинку прошивали? ))
    Вот в настройках программы нужно такой же номер порта задать, что и при прошивке Arduino )
    Если у вас программа загрузилась в Arduino, то посмотреть Com-порт можно в Arduino IDE так: Инструменты -> Порт: … и тут будет выбор)

    Либо можно посмотреть в диспетчере устройств, в разделе «Порты (COM и LPT)». Там будет список COM-портов. Какой-то из них — это и будет нужный вам порт)

  5. heX hex говорит:

    А еще можно купить «Ethernet Shield W5100 R3» и пинговать самой ардуинкой без компьютера.

    • karamush karamush говорит:

      да, тоже верно 🙂
      Как раз есть такой шилд, но этой пинговалкой я давно уже не пользуюсь. Но можно дальше пойти — использовать также и WiFi шилд )
      Короче, много разных возможностей реализации 🙂

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Докажи, что ты избранный! * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.