Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Sim300+Server
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
megavoka
Здравствуйте,я аспирант веду свой пилотный проект, уже "разработал" железо ATmel+sim300 все стреляет (проверялось по терминалу).Много просматривал форум с целью понять как лучше организовать связь железа и серва (FTP or HTTP). Получется что с HTTP более правильнее, но возникает вопрос о обработке данных на серве. Очень прошу помочь с данным вопросом. Более чем уверен, что у многих получилось решить данный вопрос и связать железо с БД. ЗАРАНЕЕ ВСЕМ БОЛЬШОЕ СПАСИБО.
Tcom
Поглядите как устроен HTTP протокол, напишите скрипт на PHP и будет вам работа с БД.
megavoka
Цитата(Tcom @ Oct 28 2010, 16:17) *
Поглядите как устроен HTTP протокол, напишите скрипт на PHP и будет вам работа с БД.

Спасибо, в общем и целом Вы правы, но может есть у кого либо код от которого отталкиваться, ибо не селен в пхп. В общем буду рад любой помощи.
Tcom
В интернете полно инфы по PHP. Поищите, обретёте очень полезный опыт. Там все очень просто, проработайте вопрос на предмет GET и POST запросов.
http://citforum.ru/internet/php/getpost.shtml например
megavoka
Цитата(Tcom @ Oct 28 2010, 19:05) *
В интернете полно инфы по PHP. Поищите, обретёте очень полезный опыт. Там все очень просто, проработайте вопрос на предмет GET и POST запросов.
http://citforum.ru/internet/php/getpost.shtml например

ОК, спасибо, а может и на счет идентификации железа что то подскажите? как определить что от кого?
Tcom
По айди номеру у меня было реализовано. Выж то как-то данные будете передавать, так и передавайте айди устройства.
megavoka
Цитата(Tcom @ Oct 28 2010, 19:53) *
По айди номеру у меня было реализовано. Выж то как-то данные будете передавать, так и передавайте айди устройства.

ну на сколько я понял нужно стринг передавать,это я про данные. а вот как вы организовали айди не совсем ясно. хотя конечно можно завести переменную, туда поместить идентификатор и вставлять в каждую посылку. Но что то мне кажется это не кошерное решение. Я не настаиваю, но если вам не сложно поделитесь пожалуйста тем что у вас было наработано, а то пхп меня одолеет smile.gif
Tcom
Вам просто чтоб закрыть проект или разобраться на будущее???

h_ttp://myservice.com/insertdata.php?iddevice=82243&st=0&gopid=831164

ddevice=82243
st=0
gopid=831164

вот такие аргументы будут передаваться в скрипт insertdata.php

Хотите чтоб я за Вас делал, платите деньги )))).
megavoka
Цитата(Tcom @ Oct 28 2010, 20:08) *
Вам просто чтоб закрыть проект или разобраться на будущее???

h_ttp://myservice.com/insertdata.php?iddevice=82243&st=0&gopid=831164

ddevice=82243
st=0
gopid=831164

вот такие аргументы будут передаваться в скрипт insertdata.php

Хотите чтоб я за Вас делал, платите деньги )))).

Ясно, спасибо Вам добрый человек. Нее чтобы Вы за меня делали не хочу, да и денег таких нет smile.gif да и не факт что мой проект мне что либо пренесет, тут ситуация называется вляпался smile.gif Просто надеялся, что сможете поделиться. Разобраться безусловно хочу, но боюсь что не успею.
Tcom
Яж не знаю какая у вас задача, данных вы никаких не предоставили, пример скрипта, что он должен делать, как вы это все видите.
Разобрались бы HTTP сначала....
megavoka
Цитата(Tcom @ Oct 28 2010, 20:29) *
Яж не знаю какая у вас задача, данных вы никаких не предоставили, пример скрипта, что он должен делать, как вы это все видите.
Разобрались бы HTTP сначала....

Да задача у меня простая, есть объект с параметрами, давление, температура, расход, состояние батареи, возможно еще и балланс вот эти данные нужно собирать 2 раза в день и закидывать в БД, дальше эти данные обрабатываются и принимаются соответсвующие выводы. Область применения пищевое производство. В идеале я вижу это так в 7 утра и 7 вечера модем инициализирует соединение с сервом Web или ftp или mysql. открывает транзакцию передает данные и закрывает транзакцию после чего отрубается. Честно говоря за основу была взята схемотехника отладочной платы olimex, но ничего сам все собрал и вроде даже все правильно работает. Особо большого опыта программирования мк как и сервера нет, вот и бьюсь.

И вообще господа, профессионалы кто как видит реализацию, подобной задачи?
Tcom
На Сервере с реальным(чесным) IP поднят WEB сервер.

Написать PHP скрипт который добавляет запись в базу MySQL.

Устройство делает запрос на сервер посредством HTTP протокола примерно такого вида:
h_ttp://255.155.155.1/insetdata.php?ID=001&Temp1=23&Temp2=-4&Temp3=125&Press=50

ID=001 - айди устройства
Temp1=23 - датчик температуры 1
Temp2=-4 - датчик температуры 2
Temp3=125 - датчик температуры 3
Press=50 - датчик давления

Скрипт insetdata.php посредством GET принимает данные с строки и присваивает их переменным.

Далее выполняется SQL запрос на добавление данных в таблицу.
megavoka
Цитата(Tcom @ Oct 28 2010, 22:19) *
На Сервере с реальным(чесным) IP поднят WEB сервер.

Написать PHP скрипт который добавляет запись в базу MySQL.

Устройство делает запрос на сервер посредством HTTP протокола примерно такого вида:
h_ttp://255.155.155.1/insetdata.php?ID=001&Temp1=23&Temp2=-4&Temp3=125&Press=50

ID=001 - айди устройства
Temp1=23 - датчик температуры 1
Temp2=-4 - датчик температуры 2
Temp3=125 - датчик температуры 3
Press=50 - датчик давления

Скрипт insetdata.php посредством GET принимает данные с строки и присваивает их переменным.

Далее выполняется SQL запрос на добавление данных в таблицу.
зное
Спасибо тебе ДРУЖИЩЕ, реально выручаешь. Буду пробовать, рад любым твоим подсказкам.
av-master
Мы передаем попроще. на сервере запущена программка которая слушает порт к примеру 12345 . устройство уствнавливает конект к порту. и просто пихает строку 0A0b;ID;D1;D2;D3;crc$
Можно вообще сразу конектиться к БД например MYSQL на порт 3306 и слать чтото типа: INSER IN0(имя таблицы) (ID,D1,D2,D3) VALUE (001,23,-4);
Tcom
А авторизация??
Если есть у кого-то почитать про простой протокол работы с БД MySQL было бы неплохо изучить.
andrewlekar
Вариант с программкой слушающей порт попроще, но при переходе реальное использование выльется в хороший такой гемморой. Тут автору надо думать, какие у его проекта перспективы. Если планируется что-то серьёзное (в чём я сильно сомневаюсь при данной постановке задачи), то лучше сразу использовать стандартный протокол а-ля HTTP. Не будет проблем с файрволами, проще будет разворачивать сервер, проще будет интегрироваться с БД и скриптовыми языками, можно будет размещаться на хостинге за мало денег, а не покупать выделенный сервер.
megavoka
Цитата(av-master @ Oct 29 2010, 11:30) *
Мы передаем попроще. на сервере запущена программка которая слушает порт к примеру 12345 . устройство уствнавливает конект к порту. и просто пихает строку 0A0b;ID;D1;D2;D3;crc$
Можно вообще сразу конектиться к БД например MYSQL на порт 3306 и слать чтото типа: INSER IN0(имя таблицы) (ID,D1,D2,D3) VALUE (001,23,-4);

Вот это прям совсем интересно. А можно для особо тупых, по подробнее и ели можно то с примерами. От ВАС ведь не убудет,а все спасибо скажут. Кроме того могу ссылку на Вас сделать в своей работе.

Цитата(andrewlekar @ Oct 29 2010, 13:12) *
Вариант с программкой слушающей порт попроще, но при переходе реальное использование выльется в хороший такой гемморой. Тут автору надо думать, какие у его проекта перспективы. Если планируется что-то серьёзное (в чём я сильно сомневаюсь при данной постановке задачи), то лучше сразу использовать стандартный протокол а-ля HTTP. Не будет проблем с файрволами, проще будет разворачивать сервер, проще будет интегрироваться с БД и скриптовыми языками, можно будет размещаться на хостинге за мало денег, а не покупать выделенный сервер.

Ну про серьёзность это вы зря. Это мой первый проект связанный с телеметрией, нужно с чего то начинать. По поводу хостинга, вопрос действительно хороший, нужно понимать 2 составляющие не каждый владелец системы будет заинтересован в том что его база лежит удаленно, а вот на счет разворачивания это в общем то да, берешь денвер или подобное и в путь.
av-master
Подробностей к сожалению незнаю так как сервером заведует другой человек а он заграницей. 100% знаю что стоит он на простом компе с ADSL интернетом с белым не фиксированым IP и девайсы к нему конектятся по имени через dyndns. org на какойто порт.
megavoka
Господа кому интересен топик вот кое что нашел по поводу обработки в рнр http://www.linedmk.com/page55.html.
Возникает один вопрос как правильнее формировать get чет я пока не допер, может кто подскажет?
Tcom
Цитата
<?php
echo $_GET["ID"];
echo $_GET["Temp"];
?>

show.php
Данный скрипт если запустить с параметрами show.php?ID=004&Temp=67

Выведет в браузере
004
67

Разобрались???
megavoka
В общем уважаемые господа вот что я понял прошу меня поправить если что не так.

Про то что создаем базу с таблицами это все опускаем, т.к. должно быть
$t1=$_POST['t1'];
$t2=$_POST['t2'];

Для подключения к серверу баз данных нужно выполнить такую команду:
$data_link=mysql_connect("localhost","test","password");
Для подключения к БД:
mysql_select_db("test","$data_link");
затем
$sql="insert into test values ('".t1."','".t2"')";
$result = mysql_query($sql);
if ($result){
echo"Добавлено";
}
else{echo"Ошибка";};
mysql_close(data_link);

Идеология верна?

Цитата(Tcom @ Oct 29 2010, 15:54) *
show.php
Данный скрипт если запустить с параметрами show.php?ID=004&Temp=67

Выведет в браузере
004
67

Разобрались???


Да вроде как. Вы мне очень помогаете. Только вот как вы генерите со стороны уст-ва h_ttp://255.155.155.1/insetdata.php?ID=001&Temp1=23&Temp2=-4&Temp3=125&Press=50 - я понимаю что это строка
Tcom
Цитата
int IDDevcie,Temp1,Temp2,Temp3,Press;
char sring[256];

IDDevcie = 4;
Temp1 = 23;
Temp2 = 25;
Temp3 = 36;
Press = 45;

sprintf(sring,"h_ttp://255.155.155.1/insetdata.php?ID=%d&Temp1=%d&Temp2=%d&Temp3=%d&Press=%d",IDDevcie,Temp1,Temp2,Temp3,Press);


в string будет та самая желанная строка.
megavoka
Цитата(Tcom @ Oct 29 2010, 17:05) *
в string будет та самая желанная строка.

СПАСИБО ТЕБЕ. а в ат команду ты уже сформированный стрнг вставляешь. Как звать тебя, добавлю в перечень помошников проекта.
Tcom
там кроме команды нужно ещё намахать реализацию протокола HTTP.
ТО что я написал 0.0001% кода
megavoka
Цитата(Tcom @ Oct 29 2010, 17:21) *
там кроме команды нужно ещё намахать реализацию протокола HTTP.
ТО что я написал 0.0001% кода

Не совсем понял, поясни пожалуйста, http протокол сто стороны уст-ва. Чтобы нормально get работал.?
Tcom
а вы читали про HTTP протокол?
megavoka
Цитата(Tcom @ Oct 29 2010, 17:36) *
а вы читали про HTTP протокол?

Ну в общем то да. Протокол гипертекстов. В общем ясно со стороны устройства нужен полноценный клиент.
Tcom
Блин первая ссылка в гугле.

Цитата
Обычный GET-запрос

Запрос клиента:

Цитата
GET /wiki/страница HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close


Ответ сервера:

Цитата
HTTP/1.0 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: ru
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close


(далее следует запрошенная страница в HTML)

Аналогично выглядит ответ 203. Что существенно, непосредственно запрашиваемые данные отделены от HTTP-заголовков с помощью CRLF CRLF (двух переводов строки).
megavoka
Цитата(Tcom @ Oct 29 2010, 17:42) *
Блин первая ссылка в гугле.



Ответ сервера:



(далее следует запрошенная страница в HTML)

Аналогично выглядит ответ 203. Что существенно, непосредственно запрашиваемые данные отделены от HTTP-заголовков с помощью CRLF CRLF (двух переводов строки).

нефига не понял. пошел матчасть читать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.