|
Sim300+Server, Господа помогите с серверной частью для устройства. |
|
|
|
Oct 28 2010, 12:10
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Здравствуйте,я аспирант веду свой пилотный проект, уже "разработал" железо ATmel+sim300 все стреляет (проверялось по терминалу).Много просматривал форум с целью понять как лучше организовать связь железа и серва (FTP or HTTP). Получется что с HTTP более правильнее, но возникает вопрос о обработке данных на серве. Очень прошу помочь с данным вопросом. Более чем уверен, что у многих получилось решить данный вопрос и связать железо с БД. ЗАРАНЕЕ ВСЕМ БОЛЬШОЕ СПАСИБО.
|
|
|
|
|
Oct 28 2010, 15:00
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(Tcom @ Oct 28 2010, 16:17)  Поглядите как устроен HTTP протокол, напишите скрипт на PHP и будет вам работа с БД. Спасибо, в общем и целом Вы правы, но может есть у кого либо код от которого отталкиваться, ибо не селен в пхп. В общем буду рад любой помощи.
|
|
|
|
|
Oct 28 2010, 15:41
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(Tcom @ Oct 28 2010, 19:05)  В интернете полно инфы по PHP. Поищите, обретёте очень полезный опыт. Там все очень просто, проработайте вопрос на предмет GET и POST запросов. http://citforum.ru/internet/php/getpost.shtml например ОК, спасибо, а может и на счет идентификации железа что то подскажите? как определить что от кого?
|
|
|
|
|
Oct 28 2010, 16:04
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(Tcom @ Oct 28 2010, 19:53)  По айди номеру у меня было реализовано. Выж то как-то данные будете передавать, так и передавайте айди устройства. ну на сколько я понял нужно стринг передавать,это я про данные. а вот как вы организовали айди не совсем ясно. хотя конечно можно завести переменную, туда поместить идентификатор и вставлять в каждую посылку. Но что то мне кажется это не кошерное решение. Я не настаиваю, но если вам не сложно поделитесь пожалуйста тем что у вас было наработано, а то пхп меня одолеет
|
|
|
|
|
Oct 28 2010, 16:15
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(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
Хотите чтоб я за Вас делал, платите деньги )))). Ясно, спасибо Вам добрый человек. Нее чтобы Вы за меня делали не хочу, да и денег таких нет  да и не факт что мой проект мне что либо пренесет, тут ситуация называется вляпался  Просто надеялся, что сможете поделиться. Разобраться безусловно хочу, но боюсь что не успею.
|
|
|
|
|
Oct 28 2010, 17:10
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(Tcom @ Oct 28 2010, 20:29)  Яж не знаю какая у вас задача, данных вы никаких не предоставили, пример скрипта, что он должен делать, как вы это все видите. Разобрались бы HTTP сначала.... Да задача у меня простая, есть объект с параметрами, давление, температура, расход, состояние батареи, возможно еще и балланс вот эти данные нужно собирать 2 раза в день и закидывать в БД, дальше эти данные обрабатываются и принимаются соответсвующие выводы. Область применения пищевое производство. В идеале я вижу это так в 7 утра и 7 вечера модем инициализирует соединение с сервом Web или ftp или mysql. открывает транзакцию передает данные и закрывает транзакцию после чего отрубается. Честно говоря за основу была взята схемотехника отладочной платы olimex, но ничего сам все собрал и вроде даже все правильно работает. Особо большого опыта программирования мк как и сервера нет, вот и бьюсь. И вообще господа, профессионалы кто как видит реализацию, подобной задачи?
|
|
|
|
|
Oct 28 2010, 18:28
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(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 запрос на добавление данных в таблицу. зное Спасибо тебе ДРУЖИЩЕ, реально выручаешь. Буду пробовать, рад любым твоим подсказкам.
|
|
|
|
|
Oct 29 2010, 09:19
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(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 составляющие не каждый владелец системы будет заинтересован в том что его база лежит удаленно, а вот на счет разворачивания это в общем то да, берешь денвер или подобное и в путь.
|
|
|
|
|
Oct 29 2010, 11:44
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Господа кому интересен топик вот кое что нашел по поводу обработки в рнр http://www.linedmk.com/page55.html. Возникает один вопрос как правильнее формировать get чет я пока не допер, может кто подскажет?
|
|
|
|
|
Oct 29 2010, 11:54
|

Местный
  
Группа: Свой
Сообщений: 360
Регистрация: 3-01-06
Из: Украина Запорожская обл.
Пользователь №: 12 792

|
Цитата <?php echo $_GET["ID"]; echo $_GET["Temp"]; ?> show.php Данный скрипт если запустить с параметрами show.php?ID=004&Temp=67 Выведет в браузере 004 67 Разобрались???
|
|
|
|
|
Oct 29 2010, 12:33
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
В общем уважаемые господа вот что я понял прошу меня поправить если что не так. Про то что создаем базу с таблицами это все опускаем, т.к. должно быть $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 - я понимаю что это строка
|
|
|
|
|
Oct 29 2010, 13:05
|

Местный
  
Группа: Свой
Сообщений: 360
Регистрация: 3-01-06
Из: Украина Запорожская обл.
Пользователь №: 12 792

|
Цитата 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 будет та самая желанная строка.
|
|
|
|
|
Oct 29 2010, 13:18
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(Tcom @ Oct 29 2010, 17:05)  в string будет та самая желанная строка. СПАСИБО ТЕБЕ. а в ат команду ты уже сформированный стрнг вставляешь. Как звать тебя, добавлю в перечень помошников проекта.
|
|
|
|
|
Oct 29 2010, 13:35
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(Tcom @ Oct 29 2010, 17:21)  там кроме команды нужно ещё намахать реализацию протокола HTTP. ТО что я написал 0.0001% кода Не совсем понял, поясни пожалуйста, http протокол сто стороны уст-ва. Чтобы нормально get работал.?
|
|
|
|
|
Oct 29 2010, 13:40
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(Tcom @ Oct 29 2010, 17:36)  а вы читали про HTTP протокол? Ну в общем то да. Протокол гипертекстов. В общем ясно со стороны устройства нужен полноценный клиент.
|
|
|
|
|
Oct 29 2010, 13:42
|

Местный
  
Группа: Свой
Сообщений: 360
Регистрация: 3-01-06
Из: Украина Запорожская обл.
Пользователь №: 12 792

|
Блин первая ссылка в гугле. Цитата Обычный 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 (двух переводов строки).
|
|
|
|
|
Oct 29 2010, 13:51
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 12-02-09
Пользователь №: 44 759

|
Цитата(Tcom @ Oct 29 2010, 17:42)  Блин первая ссылка в гугле.
Ответ сервера:
(далее следует запрошенная страница в HTML)
Аналогично выглядит ответ 203. Что существенно, непосредственно запрашиваемые данные отделены от HTTP-заголовков с помощью CRLF CRLF (двух переводов строки). нефига не понял. пошел матчасть читать.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|