Официальный бесплатный интернет от YOTA, для проектов "умный дом"
- Войдите на сайт для отправки комментариев
Добрый день!
Давно искал возможность передачи информации на свой сервер. Сразу оговорюсь, что требовалось мониторить частный летний домик, где не предполагалось платить ежемесячно. Впрочем кто не хочет сэкономить.
Изначально разрабатывал проект на SIM800, но из-за ежемесячных платежей и периодичного возвращения к проекту, понял, что это не мое. На текущий момент выбар пал на использование модульного решения, средствами ESP8266, роутера и GSM свистка.
Все многообещающие тарифы были сразу отвергнуты, т.к. очень много подводных камней. Из всего разнообразия в моем городе, выбор пал на оператора YOTA с тарифом для ПК и роутеров. Достоинством оказалось, что там безлимитный тариф, и бесплатный, с небольшой оговоркой. Бесплатно он работает только на скорости 64кб, что мне очень достаточно (для перидачи информации с датчиков) , но за эту бесплатность пришлось немного раскошелиться.
Сразу хочу сделать небольшие выводы:
- с SIM800 данная симкарта не заработает, т.к. там жестко 4G и больше никак.
- каждый день в одно и то же время вылетает страница-заглушка с предложением переключиться на другую скорость.
Так же мной был приобретен GSM роутер skylink v-fl500, с OpenWRT на борту, что помогло решить вторую проблему со страницей-заглушкой.
А как?:
Для выполнения данных действий, сначала необходимо было зайти на роутер
под пользователем root.
- заходим на роутер по ssh под стандартной учеткой admin:admin
- в файле /etc/rc.local. перед exit 0 вставляем строчку:
(echo root ; sleep 1 ; echo root) | passwd root
- сохраняемся и перезагружаем роутер
- входим по ssh под пользователем root:root
- Добавить в /etc/firewall.user команду: iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64 (необходимости нет. требуется для телевона, выяснил позже)
после чего был добавлен скрипт в папку root и добавлена задача через crontab -e
Сам скрипт /root/check_yota.sh:
{
#!/bin/sh
edate=`date`
checkhost=ya.ru # здесь указываем адрес сайта с минимальным телом (пустая страница) будет выполняться проверка на ответ 404
useragaent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0"
COMMANDACCESS="accept_lte=1&redirurl=http%3A%2F%2Fwww.$checkhost&connection_type=sa&service_id=Sliders_Free_Temp"
CHECK="/usr/bin/curl -A "\"$useragaent\"""
#CHECK="/usr/bin/wget -U \"$useragaent\""
COMMANDCHECK="$CHECK -s -I $checkhost"
#COMMANDCHECK="$CHECK -S --spider $checkhost"
SCRIPTRUN="$CHECK --data \"$COMMANDACCESS\" http://hello.yota.ru/php/go.php"
#SCRIPTRUN='$CHECK --post-data \"$COMMANDACCESS\" http://hello.yota.ru/php/go.php"
#if [ $($COMMANDCHECK | grep -Ec 'HTTP/1\.1 301|HTTP/1\.1 302') -gt 0 ];
if [ $($COMMANDCHECK | grep -Ec 'http://hello.yota.ru') -gt 0 ];
then
echo "----- Check start "$edate" -----";
eval "$SCRIPTRUN"
echo "----- Check end "$edate" -----\n";
fi
}
скрипт не мой, немного переделал
Для автоматического выполнения скрипта необходимо на роутере поставить задачу в cron (1 раз в минуту):
*/1 * * * * /bin/sh /root/check_yota.sh >> /root/log
Файлу скрипта поставил атрибут на запуск.
Скрипт отрабатывает следующим образом:
Проверяется возможность выхода в интернет по указанному адресу. Если идет переадресация на сайт home.yota.ru, то выполняется GET запрос,
который выполняет действия аналогично выбранному пункту "продолжить на скорости 64кб".
Таким образом у меня на доме, уже пол месяца, есть wifi интернет 64кб и работает ESP, передает значения датчиков температуры (dallas) на сервер.
В процессе эксплуатации возникла проблем, в один вечер завис роутер, что там произошло не проверял, пока так устраивает, но что хочу реализовать:
- удаленный доступ на роутер за счет реверсивного ssh туннеля (т.к. сеть находится за NAT, то DDNS - не прокатит)
- whatchdog (пока есть мысли встроить в этот же скрипт), пока что и как смотреть, не думал, надо смотреть логи при очередном зависании
Так же хоу весь проект переделать под MQTT протокол, чтобы не изобретать свой велосипед.
Еще, в личном кабинете yota. пишется, что данный тариф (64кб) действует в течении 365 дней, как я понимаю, год можно не беспокоиться, потом включить самый дешевый тариф, деньги спишутся, месяц работаем на самом дешевом тарифе и потом снова переключаемся на 64кб.
Всем удачного дня.
На мегафон уже давно бесплатный тариф есть 50 мб в месяц, для периодических отправок данных вполне достаточно
50Мб - достаточно.. У меня в городе нет такого тарифа, по крайней мере мне его не предложили. Если не секрет, что за тариф и есть ли абонка?
Потом все зависит от размера сессии, на МТС дают 200Мб за 70 руб. в месяц, но размер сессии 250Кб.. тут как не крути, считал:
отправляю раз в 10 минут = 6 раз в минуту * 24 часа * 31 день * 250Кб = 1Гб с копейками.. и отключают при переборе. А если отправлять чаще, то там на порядок может быть больше. Даже если отправлять раз в 10 минут, то 51200 / 31 / 24 / 6 = 11Кб сессия, если оператор дает такой предел, то норм.
На SIM800 можно конечно удерживать сессию, периодическими запросами, как вариант.. но повторюсь, у меня нет такого тарифа, что бы без абонентской платы.
у вас интернет/поиск забанили?
никакой абонентки, тариф для всей России, переход на тариф через личный кабинет
http://moscow.megafon.ru/tariffs/dlya_interneta/umnyy_dom.html
Все правильно, но кроме как на сервер "Life Control" - он никуда не ходит, был такой, пробовал..
и с размером сессий там что то намудрено:
Все правильно, но кроме как на сервер "Life Control" - он никуда не ходит, был такой, пробовал..
у меня везде ходит, проблем нет ни с MQTT сервером ни с любым другим.
Возможно я что то нитак делал, но на мой сервер, меня не пускало. А когда пришлось отложить проект (почти на год), еще и деньги начали снимать.. даже ругался с ними.
Потом просто решил координально изменить свой проект и переделать все на ESP, вот и отказался от этого тарифа и от SIM800.
ну как предположение: вероятно вы покупали уже симку с этим тарифом, а я сначала взял обычный какой то тариф, потом перевел его в МегафонОнлайн, о потом уже в Умный Дом - проблем нет.
Update: думал сам дурак, но нет, действительно все работает:
01
AT+COPS?
02
03
+COPS: 0,0,
"MegaFon"
04
05
OK
06
AT+CMGDA=6
07
08
OK
09
AT+SAPBR=1,1
10
11
OK
12
AT+SAPBR=2,1
13
14
+SAPBR: 1,1,
"100.73.198.140"
15
16
OK
17
AT+HTTPINIT
18
19
OK
20
AT+HTTPPARA=
"CID"
,1
21
22
OK
23
AT+HTTPPARA=
"URL"
,
"arduino.ru"
24
25
OK
26
AT+HTTPACTION=0
27
28
OK
29
30
+HTTPACTION: 0,200,21079
31
AT+HTTPREAD
32
33
+HTTPREAD: 21079
34
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.1//EN"
35
"<a href="
http:
//www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" rel="nofollow">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</a>">
36
<html xmlns=
"<a href="
http:
//www.w3.org/1999/xhtml" rel="nofollow">http://www.w3.org/1999/xhtml</a>" xml:lang="ru" >
37
<head>
38
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=utf-8"
/>
39
<title>Аппаратная платформа Arduino | Arduino.ru</title>
40
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=utf-8"
/>
41
<link rel=
"alternate"
type=
"application/rss+xml"
title=
"Аппаратная платформа Arduino RSS"
href=
"<a href="
http:
//arduino.ru/rss.xml" rel="nofollow">http://arduino.ru/rss.xml</a>" />
42
<link rel=
"shortcut icon"
href=
"/sites/default/files/framework_favicon.ico"
type=
"image/x-icon"
/>
43
<meta name=
"keywords"
content=
"Arduino,контроллер,электроника,плата,конструктор,электротехника,программирование"
/>
44
<link rel=
"canonical"
href=
"<a href="
http:
//arduino.ru/" rel="nofollow">http://arduino.ru/</a>" />
45
<meta name=
"revisit-after"
content=
"1 day"
/>
46
<link type=
"text/css"
rel=
"stylesheet"
media=
"all"
href=
"/sites/default/files/css/css_84c66908a8f663bdd4b7cf567a82d0ce.css"
/>
47
<link type=
"text/css"
rel=
"stylesheet"
media=
"print"
href=
"/sites/default/files/css/css_91e891c45dea63b022c51a0b831eea71.css"
/>
48
<script type=
"text/javascript"
src=
"/sites/default/files/js/js_10366acbf06fc8c42fad2d5c4f7f3ab2.js"
></script>
49
<script type=
"text/javascript"
>
50
<!--
//--><![CDATA[//><!--
51
jQuery.extend(Drupal.settings, {
"basePath"
:
"/"
,
"lightbox2"
: {
"rtl"
:
"0"
,
"file_path"
:
"/(\\w\\w/)sites/default/files"
,
"default_image"
:
"/modules/lightbox2/images/brokenimage.jpg"
,
"border_size"
: 10,
"font_color"
:
"000"
,
"box_color"
:
"fff"
,
"top_position"
:
""
,
"overlay_opacity"
:
"0.8"
,
"overlay_color"
:
"000"
,
"disable_close_click"
:
true
,
"resize_sequence"
: 0,
"resize_speed"
: 400,
"fade_in_speed"
: 400,
"slide_down_speed"
: 600,
"use_alt_layout"
:
false
,
"disable_resize"
:
false
,
"disable_zoom"
:
false
,
"force_show_nav"
:
false
,
"show_caption"
:
true
,
"loop_items"
:
false
,
"node_link_text"
:
"View Image Details"
,
"node_link_target"
:
false
,
"image_count"
:
"Image !current of !total"
,
"video_count"
:
"Video !current of !total"
,
"page_count"
:
"Page !current of !total"
,
"lite_press_x_close"
:
"press \x3ca href=\"#\" onclick=\"hideLightbox(); return FALSE;\"\x3e\x3ckbd\x3ex\x3c/kbd\x3e\x3c/a\x3e to close"
,
"download_link_text"
:
""
,
"enable_login"
:
false
,
"enable_contact"
:
false
,
"keys_close"
:
"c x 27"
,
"keys_previous"
:
"p 37"
,
"keys_next"
:
"n 39"
,
"keys_zoom"
:
"z"
,
"keys_play_pause"
:
"32"
,
"display_image_size"
:
"original"
,
"image_node_sizes"
:
"()"
,
"trigger_lightbox_classes"
:
""
,
"trigger_lightbox_group_classes"
:
""
,
"trigger_slideshow_classes"
:
""
,
"trigger_lightframe_classes"
:
""
,
"trigger_lightframe_group_classes"
:
""
,
"custom_class_handler"
: 0,
"custom_trigger_classes"
:
""
,
"disable_for_gallery_lists"
:
true
,
"disable_for_acidfree_gallery_lists"
:
true
,
"enable_acidfree_videos"
:
true
,
"slideshow_interval"
: 5000,
"slideshow_automatic_start"
:
true
,
"slideshow_automatic_exit"
:
true
,
"show_play_pause"
:
true
,
"pause_on_next_click"
:
false
,
"pause_on_previous_click"
:
true
,
"loop_slides"
:
false
,
"iframe_width"
: 600,
"iframe_height"
: 400,
"iframe_border"
: 1,
"enable_video"
:
false
},
"syntaxhighlighter"
: {
"clipboard"
:
"/sites/all/libraries/syntaxhighlighter/scripts/clipboard.swf"
} });
52
//--><!]]>
53
</script>