PDA

View Full Version : انتقال اطلاعات بر روی سرور به کمک یک gprs مودم و یک میکرو



سعید مرادپور
چهارشنبه 02 مرداد 1387, 09:08 صبح
سلام
من در حال کار بر روی یک پروژه می باشم که در آن باید چند بایت داده را بر روی یک سرور بفرستم . اتصال به شبکه gprs ایرانسل را به کمک مودم mc35i شرکت زیمنس انجام می دهم.در حال حاضر در مرحله آزمایشی به جای میکرو ار hyper terminal و At command استفاده می کنم.
بعد از برقراری اتصال دیگر نمی شود از At command استفاده کرد.پروتکل ارتباطی PPP می باشد. مشکل اینجاست که بعد از برقراری اتصال من نمی دانم که چگونه اطلاعات را بفرستم. در حقیقت نمی دانم که برای فرستادن اطلاعات آنها را کجا وارد کنم.


با تشکر از همه آنهایی که به من کمک خواهند کرد
سعید

hoseinezci
شنبه 05 مرداد 1387, 11:57 صبح
سلام . من هم روی پروژه ی مشابه کار می کنم . اگر به نتیجه رسیدید به ن م اطلاع دهید. با تشکر.

سعید مرادپور
یک شنبه 06 مرداد 1387, 12:06 عصر
سلام
من یک سری pdf دارم که شاید به استفاده بیاد .بخونید و در صورت مفید بدن به من هم کمک کنید
از طریق سایت نمیشه فدستاد 13.5MB
به email من یک میل بزن تا برات بفرستم
www.heavenlyalien2004@yahoo.com

Mehran.GH
پنج شنبه 10 مرداد 1387, 21:27 عصر
ببین دوست من دو روش برای اتصال وجود دارد:
اولین روش که روشی ساده و کمی قدیمی است استفاده از GSM است که در این روش شما با دستورات AT که در راهنمای مودم نوشته می توانید با مودم ارتباط برقرار کنید و در هر مرحله جوابهایی مبنی بر موفق آمیز بودن هر مرحله دریافت می کنید.
در این روش ما از پورت سریال یک سیستم معمولی هم می توانید تست کنید و مهم در این روش این است که در یک طرف باید یک نرم افزار به عنوان کلینت و در طرف دیگر سرور برقرار باشد و مودم بی سیم در اینجا همانند یک مودم معمولی فقط برقرار کننده اتصال است و در حقیقت سیستمی که آنطرف به اتصال جواب می دهد منتظر دریافت است.
مشکل این روش این است که پهنای باند کمی در اختیار دارید و محاسبه هزینه بر اساس زمان اتصال است و امنیت هم ندارد!

- روش دوم استفاده از GPRS است که داستان کمی جالبتر است
http://www.phoenixcontact.de/local_content_images/Basic-GPRS_xxl.jpg

ببینید در این روش شما در حقیقت وارد شبکه GPRS می شوید و نیاز به انجام تنظیمات شبکه دارید و مهمترین بخش هم فعال بودن ppp در سیستمی است که به مودم وصل است بدین معنی که میکرو کنترلر شما و یا هر سیستم دیگری باید این قابلیت را داشته باشد اتصال به شبکه IP برقرار کند و بعد از اتصال شما می توانید با استفاده از برنامه نویسی socket انتقال دیتا را انجام دهید و امکانات امنیتی هم در این روش می توان اضافه کرد که بسیار مهم است.

بنابراین روشی که شما انجام داده اید اگر از نوشته شما درست متوجه شده باشم به نوعی ترکیبی از دو روش است.
ببینید در روش GPRS بحث ایجاد امکان Routing و PPTP بین کنترلر و مودم کمی کار می برد .بنده از مودم GE864 شرکت Telit استفاده کردم و میکرو کنترلر هم یک Embedded Linux System بود که در حقیقت یک سیستم کامل است که امکانات لینوکس را می توان در آن استفاده کرد و مهمترین بخش که امنیت اطلاعات بود با یک Openvpn انجام شد.

اتصال GSM ساده است و با مطالعه راهنمای مودم به راحتی می توانی تست کنی.درباره GPRS و یا UMTS اگر در ایران فعال باشد می توانیم بیشتر صحبت کنیم.

Abednorton
یک شنبه 24 آذر 1387, 23:58 عصر
سلام

شما نمونه سمپل كد با ميكرو يا پي سي تحت وي بي يا دلفي داريد در اختيارمون بذاريد؟

با تشكر فراوان.

sama66
شنبه 09 مرداد 1389, 00:02 صبح
سلام
من دارم روی پروژه ای کار می کنم که قرار است تصویر را از طریق یک رسانه مثل آیفون تصویری دریافت کنه و از طریق GPRS به صورت MMS به موبایل ارسال کنه.
در واقع بحث اصلی ارسال داده از طریق GPRS هست!
اگه در این زمینه مطلبی دارید که می تونه بهم کمک کنه ممنون میشم اگر کمکم کنید.

Mehran.GH
سه شنبه 12 مرداد 1389, 13:09 عصر
در این سول دو موضع مختلف را مطرح کردید.انتقال داده از طریق GPRS و ارسال MMS می توانند دو سناریوی مختلف باشند

به منظور انتقال داده از طریق GPRS قبل از شروع کار حتما باید در نظر داشته باشید چه نوع امکاناتی شبکه مخابراتی در اختیار شما قرار می دهد و طراحی پروژه را بر اساس این امکانات و محدودیتها انجام دهید.

مهمترین دسته بندی کلیدی عبارتند از:

1- نوع نرم افزار شبکه موبایل که :
آیا دیتا از موبایل به سرور ارسال شود یا از سرور به موبایل (البته در سوال نوشتید که از سرور به موبایل است اما در اینجا توضیح نمای کلی این نوع پروژها بیان شده)
Mobile Originated vs. Mobile Terminated

2- آیا IP می تواند استاتیک باشد یا دینامیک ؟ آیا می تواند Private باشد یا Public ؟

3- مکانیزم IP آدرس در شبکه GSM چگونه است؟ GSM IP یا CDMA IP ؟


چرا این موارد مهم است؟

به علت اینکه در این نوع پروژه ها شما وارد شبکه مخابراتی می شوید یعنی یک سرور در میان راه وظیفه تخصیص IP و هدایت داده به IP مورد نظر را برعهده دارد و مشکل اینجا است که بسیاری خدمات دهندگان موبایل ارسال داده از سرور به موبایل یعنی Mobile Terminated را اجازه نمی دهند و فایروال این اتصال را مسدود کرده

بسیاری دیگر خدمات دهندگان به دلایل امنیتی IP اختصاصی به شما نمی دهند تا با استفاده از آن یک داده را به موبایل که IP آن را می شناسید بفرستید .

شبکه مخابراتی GSM GPRS/EDGE از مکانیسمی به نام APN (Access Point
Name) برای تشخیص ایستگاه موبایل استفاده می کنند و وظیفه APN این است که تشخیص دهد چه IP اختصاص داده شده و چه روش امنیتی وجود دارد و ... خدمات دهندگان موبایل روشهای مختلف استفاده می کنند مثلا بعضی اصولا اجازه انتقال داده به موبایل خدمات دهندگان دیگر را نمی دهند چون از سرورهای RADIUS استفاده شده و نام کاربری و کلمه عبور علاوه بر کد سیم کارت لازم است و مشکلات دیگر که برای حل این مشکلات لازم دارید اطلاعات راجع به شبکه APN را داشته باشید.

درباره نوع IP هم بعضی شبکه ها IP نوع CDMA اختصاص می دهند که بر خلاف نوع GSM که از نام کاربری و کلمه عبور استفاده می کند , از یک سری پارامتر برای کنترل امنیتی استفاده می کند.

خلاصه داستان اینکه اگر هدف انتقال داده است باید ابتدا ببینید چه امکاناتی خدمات دهند موبایل در اختیار شما می گذارد و اینکه اصولا این کار مقدور است یا خیر.

با فرض اینکه امکان اتصال از طریق شبکه با داشتن IP وجود داشت برای انتقال داده ازموبایل به سرور بسته به پروژه باید ماژول مناسب انتخاب کنید به طور مثال ماژولهای شرکت Telit انتقال از طرق FTP را با دستورات AT مقدور می سازد .
مازول GM01 از شرکت Beck IPC امکان تعریف سوکت و انتقال داده همانند فضای اینترنت از طریق باز کردن یک پورت مشخص و سوکت پروگرامینگ را مقدور می سازد.

انتقال داده از سرور به موبایل هم که با روش POST یا روش WebDAV مقدور است و همانند روش یک web browser



روشی هم که در بخش اول سوال مطرح کردی یعنی ارسال MMS

الیته روشهایی که جدیدا برای ارسال MMS استفاده می شود در حقیقت همان شبکه GSM/GPRS است اما روشی که قبل از اختراع !! این شبکه های مخابراتی استفاده می شد به این صورت بود که ارسال MMS را به صورت ارسال تعدادی SMS تعریف می کردند

در لیست دستورات استاندار AT هر گوشی موبایل که نگاهی بیندازید با دستور AT+CMMS می توان برای ارسال تعداد زیادی SMS استفاده کرد.

ایده به این صورت بوده که فایل تصویر در طرف فرستنده به تعدادی SMS تقسیم می شد و این SMS ها ارسال و در سرور شبکه مخابراتی دریافت و کنار همدیگر قرار میگرفت و فایل تصویر ایجاد می شد و موبایل گیرنده هم باید به سرور شبکه متصل می شد و به همین روش MMS خود را دریافت می کرد که البته این روش در عین ساده بودن مشکلات خود را دارد مثل عدم دریافت در طرف گیرنده و ....

جمعبندی مطلب اینکه شما دو سناریو دارید برای پیاده سازی در صورتی که مشکلی از نظر شبکه مخابراتی ندارید روش اول یعنی انتقال داده از شبکه GPRS قابل اطمینان , از نظر اقتصادی به صرفه و روش رایج روز است و در صورتی که امکان انتقال داده در GPRS مسدود بود از روش قدیمی ارسال MMS می توان این پروژه را تست کرد هر چند که کاربردی بودن این روش قابل اطمینان نیست.

sama66
سه شنبه 12 مرداد 1389, 21:56 عصر
ممنون دوست عزیز ازمطالبتون
کمک بزرگی بهم کردید:لبخندساده:

habel_star
یک شنبه 29 آبان 1390, 13:35 عصر
سلام من هم دارم روی این پروژه کار میکنم و مشکل من استفاده از دستورات AT است و اینکه چطور باید روی یک سایت بفرستم.ایا باید یک وب سرویس روی یک هاست با ای پی ولید استفاده کنم؟
اگه راهنمایی کنید ممنون میشم

Mehran.GH
دوشنبه 30 آبان 1390, 21:29 عصر
چطور باید روی یک سایت بفرستم ایا باید یک وب سرویس روی یک هاست با ای پی ولید استفاده کنم؟
اگه راهنمایی کنید ممنون میشم

IP VALID در سمت سرور لازم است.
نکته مهم اینکه یک GPRS مودم استفاده کن که TCP/IP stack داخلی داشته باشد.


برای ارسال اطلاعات از سمت میکرو به سروراز دستورات مودمی که در اختیار داری استفاده می کنی این مثال برای مودم Motorola G24L است اما اصول کار فرق زیادی ندارد :



AT+MIPCALL=1,"internet.t-d1.de","tm","tm"
AT+MIPOPEN=1,1280,"x.x.x.x",80,0
AT+MIPSEND=1,"41424344"
AT+MIPPUSH=1
AT+MIPCLOSE=1
AT+MIPCALL=0


توضیح دستورات خط به خط

1- ایجاد یک اتصال PPP با سرور خدمات دهنده (در این مثال به سرور شرکت تلکوم وصل شدم با یوزر و پسورد tm)
2- یک اتصال سوکت با سرور باز می کند (پورت محلی 1280 پورت ریموت 80)
3-دیتای مورد نظر را به بافر سوکت ارسال می کند (دیتا هنوز به سرور انتقال نیافته)
4-دیتا از بافر به سرور انتقال می یابد
5-بستن سوکت
6-بستن اتصال با سرور

به منظور دریافت دیتا در سمت سرور

در سمت سرور یک صفحه PHP درست می کنی مثلا با نام write.php که حالت ساده اینجا یک درجه حرارت دریافت شده از سمت مودم GPRS را دریافت کرده در یک فایل Text دخیره می کند :




<?php
$temp1 = $_GET["Temperatur999"];
$datei = fopen("log.txt", "w");
fwrite($datei, "$temp1");
fclose($datei);
?>


اگر هم بخواهی دمای ذخیره شده را در یک سایت نمایش دهی مثال ساده با PHP



<?php
$temparr = file("log.txt");
echo $temparr[0] . "<br>";
?>



این یک مثال ساده برای شروع است و معمولا در حالت یک قدم پیشرفته تر در سمت سرور WEB Application مثلا با #C باید بنویسی و نهایتا باید با نرم افزارت بتوانی یک کارهایی را از راه دور با مودم و میکرو انجام دهی.

.:saeed:.
چهارشنبه 07 دی 1390, 23:19 عصر
بنده پروژه ای در همین زمینه انجام دادم اگه کسی نیاز به کمک داره میتونم راهنماییش کنم. پروژه من این بود که یه تعداد تصویر رو میگرفت و برای یه سایتی با GPRS Module میفرستاد و سایت هم تصاویر رو نمایش میداد و ....