![]() |
![]() |
#21 |
Junior Member
Регистрация: 11.12.2012
Сообщений: 8
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
установил вдобавок luci-proto-3g luci-proto-ppp и настроил 3G через веб интерфейс. Спасибо
|
![]() |
![]() |
![]() |
#22 |
Junior Member
Регистрация: 29.11.2012
Сообщений: 28
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Я чего-то торможу, но как послать с помощью gnokii смской данные полученные, например, от Ардуино? Величину температуры или напряжения? Просто послать смс в случае превышения дельты измеряемой величины нет проблем, но хочется иметь в тесте точные значения датчиков....
|
![]() |
![]() |
![]() |
#23 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
1. На роутере должна "крутится" какая-то программа-сервер (писать на С и компилировать) или скрипт на bash или perl, которая будет вести диалог с ардуиной и запускать gnokii передавая ей данные.
2. gnokii программа довольно сложная, которая может работать самостоятельно в качестве демона и взаимодействовать с MySQL БД. Эта возможность конечно расширяет ее возможности, но требует инструмента (программы) взаимодействующей с этой БД и ардуино, опять же возвращаемся к п.1 Вот здесь есть пример реализации на bash Последний раз редактировалось andr128; 23.01.2013 в 20:14. |
![]() |
![]() |
![]() |
#24 |
Junior Member
Регистрация: 29.11.2012
Сообщений: 28
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Вот как раз данные как передать?
gnokii "test" | --sendsms '+7*****' - передает текст, а как передать данные с переменной? Допустим Ардуинка просто пихает в порт раз 10 секунд строчку с температурой, ну например Temp1=23.04 или выдает её по запросу скрипта - неважно в общем. Скрипт считывает или пишет в базу данные, а дальше то как? Попробовал на скрипт на bash Вариант такого типа не прокатывает ----- temp=23.04 gnokii temp | --sendsms '+7*****' PS. Я всё как-то больше с микроконтроллерным программированием сталкиваюсь, там все проще - послал в порт/считал с порта... |
![]() |
![]() |
![]() |
#25 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
вот ваш пример:
Код:
#!/bin/sh DATA=25.2 echo "Temperature: $DATA" | gnokii --sendsms '+7905ХХХХХХХ'; задайте ему права chmod 755 /usr/sbin/sms и тестируйте А как вы будите получать данные с ардуино с помощь bash скрипта я не знаю. Нужно сначала научиться вести диалог с ардуиной т.е. какой-то минимальный протокол должен быть. |
![]() |
![]() |
![]() |
#26 |
Junior Member
Регистрация: 29.11.2012
Сообщений: 28
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Спасибо, работает, знак доллара в переменной потерял, когда пробовал. Задачка пока простая (в планах большее, но сначала с минимума плясать будем) - считать на роутер данные с 4-5 датчиков с аналога Ардуинки в какой нибудь файл, раз 5-10 минут считывать данные оттуда BASH скриптом и по СМС запросу выдать последние данные обратной СМС-кой. Планирую в автозапуске поставить скрипт на прием/передачу СМС и отправку СМС по превышению условий с датчиков. Скрипт записи данных в текстовый файл с Ардуины будет крутится отдельно, на чем его делать пока не знаю, везде вообще советуют СУБД прикрутить.
На много пока не замахиваюсь, я больше "железячник", вот за пару-тройку часов сделать печатную плату с паяльной маской и химическим лужением проводников это мне более просто и понятно. PS.Проще было бы на SIM900D задачку решить, но у роутера возможностей "допиливания" гораздо больше... |
![]() |
![]() |
![]() |
#27 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
теперь вам нужна программка умеющая общаться с ардуинкой и записывать данные в файл или в выходной поток. Самый простой способ без кросс-компиляции это на Perl написать. Можно в инете поискать примеры perl serial.
|
![]() |
![]() |
![]() |
#28 |
Junior Member
Регистрация: 29.11.2012
Сообщений: 28
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Не, я её на PHP с библиотекой php_serial.class.php сварганил и загнал в cron. Уже несколько часов в тестовом режиме работает. Был затык именно с СМС.
Программа считывания данных start.php PHP код:
*/1 * * * * wget http://192.168.1.99/start.php -O /dev/null - запуск PHP скрипта каждую минуту скрипт на bash - считывает последние данные из файла arduino.txt и бросает их в виде СМС и в файл лога каждые 30с. Код:
#!/bin/sh while : do q=`tail -1 /srv/www/arduino.txt` echo "temper: $q" | gnokii --sendsms '+7926*****' - отправка СМС echo $q >>/srv/www/db2.txt - запись лога отправки sleep 30 - выполняем каждые 30 секунд done /srv/www/"имя файла".sh & Файлы пока тестовые для пробы и проверки стабильности передачи, реально скрипт будет посложнее. |
![]() |
![]() |
![]() |
#29 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
временные данные лучше записывать в /tmp а то быстро флэшку убъете
|
![]() |
![]() |
![]() |
#30 |
Junior Member
Регистрация: 29.11.2012
Сообщений: 28
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Не совсем верно, вернее совсем неверно - /TMP ведь на флешке располагается?. Писать нужно в большой файл в режиме добавления данных и стирать его как можно реже, идеально вообще при переполнении флешки. Тогда в цикле записи будут использоваться разные части флешки и уменьшится износ отдельных ячеек. А вот где файл будет располагаться совершенно безразлично - начало и конец данных на флеше читаются одинаково. В существенном уменьшении износа есть смысл, если бросать временные данные в ОЗУ когда её много....
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|