PDA

View Full Version : SIM908 GSM/GPRS + GPS Module


longtu
23-03-2012, 03:32 PM
Mình tạo luồn này để nói về Sim908, cách thiết kế phần cứng cũng cách sử dụng.

Các bạn nếu quan tâm đến GPS module thôi thì đọc bài viết này của mình:
http://www.picvietnam.com/forum/showthread.php?p=54876

longtu
23-03-2012, 03:49 PM
Tài liệu: Sim908 Specification.pdf:
http://www.mediafire.com/?99c1cunz6s9ea9b

Nếu bạn nào đã từng làm việc với Sim548C rồi, thì Sim908C cung hoàn toàn tương thích về chân nối. Các bạn sẽ thấy ràng việc thiết kế phần cứng cho SIM908 dễ dàng hơn so với Sim548: không cần nguồn 3.3V, nhiều chân không cần sử dụng...

Tài liệu: SIM908_SIM548C_HW_Comparison_V1.00.pdf:
http://www.mediafire.com/?ryt48jrk7jg6kye

Chú ý: Có 2 loại Module:
- Sim908: chỉ đơn thuần là GMS/GPRS+GPS module, 80 pins.
- Sim908C: GMS/GPRS+GPS module + Connector 60 pins.

longtu
23-03-2012, 03:57 PM
Các bạn cần đọc kỹ, đọc đi đọc lại nhiều lần các tài liệu sau đây:
- http://www.mediafire.com/?bfzv16ehy28oeu6
- http://www.mediafire.com/?e2divlfr4n3zs0p

longtu
23-03-2012, 04:32 PM
Một số chú ý quan trọng:
2.1 Nguồn sử dụng:
- Chỉ sử dụng 1 nguồn duy nhất: VBAT= 3.2 - 4.8V. Dòng đỉnh của nguồn này trong quá trình trao đổi thông tin(call, send SMS...) có thể lên tới 2A, vì vậy khi thiết kế nguồn VBAT cần đảm bảo nguồn đủ khả năng cung cấp dòng lên tới 2A.
- Khi VBAT xuống dưới 3.1V, module sẽ tự động ngắt(tắt).
- Một tụ điện Tantalum 100uF có ESR thấp(ESR=<0.7Ohm) được đề nghị thêm vào để tăng sức mạnh cho nguồn VBAT. Tụ này để để gần các chân nguồn của Sim908(càng gần càng tốt).
Chú ý: ESR(Equivalent Series Resistance) của tụ Tantalum là 1 khái niệm để biết chất lượng của tụ Tantalum. ESR càng nhỏ thì càng tốt(do tổn hoa điện vô ích sẽ nhỏ)
- Khi vẽ layout, đường mạch in(trace) tới chân VBAT nên đủ rộng(min 60mil) và ngắn nhất có thể.
- VBAT có thể sử dụng nguồn Battery 3.7V Li-on, 1100mAh.
Chú ý: Chỉ nên sử dụng Battery Li-on.

longtu
23-03-2012, 04:43 PM
2.2 VRTC Back up:
- VRTC: 2-3.15V
- Được sử dụng cho Real Time Clock và một số chức năng khác trong module Sim908 khi nguồn VBAT không được cấp.
- Có 3 cách thiết kế:
+ Sử dụng tụ điện bên ngoài: Tụ điện 4.7uF Ceramic được đề nghị nối tới chân VRTC và GND.
+ Sử dụng battery có thể tự sạc lại: Nói trực tiếp Rechargeable Battery tới chân VRTC và GND.
+ Sử dụng battery không cho sạc: Nói chân + của Battery tơi chân anode của 1N4148, chân Kathod của 1N4148 nối tới chân VRTC.

longtu
23-03-2012, 04:49 PM
2.3 Battery Charging:
- Khi VBAT được cấp bởi Battery Li-on.
- Chỉ cấn cung cấp 1 nguồn DC(5-6V) nối trực tiếp tới chân VCHG của SIm908
Chú ý:
- Bên trong Sim908 để có mạch bảo vệ quá dòng sạc(overcharging, deep discharging,over curent)...
- TEMP_BAT: sử dụng đo lường nhiệt độ của Battery

longtu
23-03-2012, 04:58 PM
- VBAT(62 và 63): Nối tới nguồn VBAT(3.2 -4.8V, 2A) hay Battery Li-on 3.7V, 1100mAh. Chú ý thêm tụ Tantalum 100uF có ESR thấp.
- VDD_EXT: Ngõ ra điện áp khoảng 2.8V. Không sử dụng để trống.
- GPS-VANT-OUT(2.8V sử dụng cho mục đích cho phép sử dụng anten ngoài) được nối trực tiếp tới GPS-VANT-IN.
- Do sử dụng GPS và GSM anten bên ngoài nển 2 chân GSM-ANT và GPS_ANT để trống. GPS và GMS anten bên ngoài sẽ được nối vào 2 connector trực tiếp trên module Sim908.
- VRTC backup: Non-chargeable Battery nên phải có diode 1N4148.
- TEMP-BAT: nếu không sử dụng để trống.
- GSM_TXD: là chân Output(ở mức thấp 0.1V(max) và ở mức cao 2.7V(min) sẽ được nối trực tiếp tới chân MCU_RX của Microcontroller PIC(VCC=5V) vì mức logic của GSM_TXD đủ để Microcontroller hiểu.
- GSM_RXD(VCC=3.3V) sẽ nhận data ta từ TX_MCU(VCC=5V), vì thế cần qua cầu phân áp 2.2K và 3.3K để không làm hư hai Sim908.
- Khi không sử dụng các chân điều khiển(Flag control), tấc cả các chân ĐC, CTS, RTS để trống. Chân DTR được khuyến cáo nên kéo xuống mass.
Chú ý:
+ DTR: có thể được sử dụng để đánh thức module trong chế độ sleep, có thể nối tới GPIO của MCU để điều khiển.
+ RI: có thể được sử dụng để xác định có hay không có cuộc gọi/SMS, có thể nối tới GPIO của MCU để điều khiển.

Modified by Tuân[2012.03.31]: http://www.picvietnam.com/forum/showpost.php?p=55426&postcount=14

longtu
23-03-2012, 05:43 PM
- STATUS: Giám sát trạng thái Power On/OFF.
+ Power On: STATUS ở mức cao.
+ Power OFn: STATUS ở mức thấp.
- NETLIGHT: Giám sát trạng thái kết nối của module. Thông qua trassitor để điều khiển NETLIGH_LED
+ OFF: SIm908 không hoạt động
+ Blinking(Chớp tắt với các trạng thái khác nhau tùy thuộc vào trạng thái Network): SIm908 hoạt động

longtu
24-03-2012, 12:37 AM
Nên sử dụng loại microcontroller có 2 bộ UART, 1 để giao tiếp GSM và 1 để giao tiếp GPS module.
Ví dụ: PIC18F2x/4xK22, 18f97J60, 18F2x/4xJ11..v..v.

longtu
26-03-2012, 04:50 PM
Các bài viết ở trên, đang trình bày với mục đích giao tiếp GSM module + MCU. Tuy nhiên, mình nghĩ rằng không đề cập đến việc giao tiếp GSM module + PC là một thiếu sót. Vì thực tế, tùy theo ứng dụng, các bạn có thể không cần sử dụng MCU mà chỉ cần GSM + PC để giao tiếp với nhau.

Bài viết này trình bày cách giao tiếp Sim908 nói riêng cũng như GSm module nói chung với PC.

5.1 Giao tiếp GSM module và PC:
Được minh họa bởi hình ảnh sau:
http://i657.photobucket.com/albums/uu294/longtupic/UARTInterfacebetweenGSMwithPC.png

5.2 Sử dụng Microsoft HyperTerminal để gửi/nhận lệnh AT:
- MS HyperTerminal là 1 chương trình nhỏ đi kèm với Microsoft Windown. Bạn có thể sử dụng nó để gửi lệnh AT tới GSM module.
- Các bước thực hiện:
+ Bước 1: Chạy MS HyperTerminal: Start/Programs/Accessories/Communications/HyperTerminal

+ Bước 2: Hộp thoại Connection Decription xuất hiện. Bạnh nhập tên và chọn Icon mong muốn. Sau đó click "OK"
http://i657.photobucket.com/albums/uu294/longtupic/ConnectionDescription.png

+ Bước 3: Hộp thoại Connect To xuất hiện, chọn cổng Com phù hợp. Sau đó kích "OK".
http://i657.photobucket.com/albums/uu294/longtupic/ConnectTo.png

+ Bước 4: Hộp thoại COM Properties xuất hiện, xác định tốc độ Baud, Data bít, parity...
http://i657.photobucket.com/albums/uu294/longtupic/ComProperties.png

+ Bước 5: Giao diện chính của HyperTeminal xuất hiện. Bạn nhập lệnh AT vào giao diện này để thực hiện việc giao tiếp giữa PC và GSM module.
http://i657.photobucket.com/albums/uu294/longtupic/MainWindown.png

mrdongus
31-03-2012, 02:30 AM
Anh cho hỏi em. Em đã kết nối với sim908 evb kit này bằng hyperterminal như trên và chỉnh các thông số baud rate... như hướng dẫn của nhà sản xuất nhưng khi gõ chữ "at" và enter thì không hề thấy xuất hiện "OK". Như vậy PC chưa kết nối được với chip sim908 phải không anh ? Có cách nào khắc phục không anh ? Thanks

longtu
31-03-2012, 08:03 AM
Anh cho hỏi em. Em đã kết nối với sim908 evb kit này bằng hyperterminal như trên và chỉnh các thông số baud rate... như hướng dẫn của nhà sản xuất nhưng khi gõ chữ "at" và enter thì không hề thấy xuất hiện "OK". Như vậy PC chưa kết nối được với chip sim908 phải không anh ? Có cách nào khắc phục không anh ? Thanks

Tôi không sử dụng Kit EVB nên không biết rõ vấn đề với kit này là gì. Bạn xem gợi ý của tôi sau đấy:
- Đảm bảo rằng cổng COM máy tính của bạn đã hoạt động tốt.
- Kết nối đúng cổng COM
- Kiểm tra lại các cấu hình ban đầu cho EVB theo nhà sãn xuất.
- Hỏi nhà cung cấp kit này cho bạn.

dinale
31-03-2012, 02:03 PM
- VBAT(62 và 63): Nối tới nguồn VBAT(3.2 -4.8V, 2A) hay Battery Li-on 3.7V, 1100mAh. Chú ý thêm tụ Tantalum 100uF có ESR thấp.
http://www.picvietnam.com/forum/attachment.php?attachmentid=5016&stc=1&thumb=1&d=1332492755


Chân CLK của sim nối với chân SIM_RST của sim908???
Có gì nhầm lẫn ko a?
Pin mình dùng pin điện thoại có đảm bảo dòng 2A được ko a?

longtu
31-03-2012, 03:49 PM
Chân CLK của sim nối với chân SIM_RST của sim908???
Có gì nhầm lẫn ko a?

Cám ơn bạn. Nhờ có bạn, tôi phát hiện ra mình sai chổ này. Tôi cũng không ngờ là mình có thể nhầm lẫn như vậy. Thật ra, tôi đang đặt mạch PCB nên chưa thử nghiệm được nên vẫn chưa phát hiện ra việc này.
Tôi cũng sẽ tạm dừng post các bài tiếp theo về Sim908 ở đây. Sau khi thử nghiệm xong, tôi sẽ post đầy đủ lên đây sau.

Tôi sửa lại phần kết nối Sim Card Holder như sau:
http://i657.photobucket.com/albums/uu294/longtupic/Simconnection.png

Còn đây là PCB layout của Sim Card Holder tôi sử dụng:
http://i657.photobucket.com/albums/uu294/longtupic/Simconnection2.png


Pin mình dùng pin điện thoại có đảm bảo dòng 2A được ko a?

2A là đòng đỉnh(Peak Current) Sim908 cần, tuy nhiên nó không phải là dòng liên tục, nó chỉ sảy ra thời gian ngắn. Pin điện thoại có thể đảm bảo được và nên sử dụng loại Li-On battery.

longtu
13-04-2012, 11:31 PM
Có bạn hỏi tôi về Sim908 PCB Footprint. Tôi gửi lên đây để các bạn khác nếu cần.

Thân.

dangkhoa1011
17-04-2012, 05:36 PM
bạn chỉ sử dụng chân GPS_TXD => tốc độ mặc định , chuẩn ? đọc tài liệu bạn đưa mà không thấy chỗ nào ,có giống sim 548 :Chuẩn giao thức truyền dữ liệu : NMEA,4800 bps.Định dạng dữ liệu đầu ra: GGA,GSA,GSV,RMC,VTG.Tần số cập nhật ; 1Hz ?
cho hỏi thêm vậy bạn dùng pic có 2 uart ,uart_1 chỉ nhận data từ GPS ,uart_2 dùng lệnh AT để điều khiển ,nhận data từ gsm phải ko ?
như vậy ta xét mức ưu tiên cao hơn cho uart_2 ?

longtu
17-04-2012, 10:25 PM
bạn chỉ sử dụng chân GPS_TXD => tốc độ mặc định , chuẩn ? đọc tài liệu bạn đưa mà không thấy chỗ nào ,có giống sim 548 :Chuẩn giao thức truyền dữ liệu : NMEA,4800 bps.Định dạng dữ liệu đầu ra: GGA,GSA,GSV,RMC,VTG.Tần số cập nhật ; 1Hz ?
cho hỏi thêm vậy bạn dùng pic có 2 uart ,uart_1 chỉ nhận data từ GPS ,uart_2 dùng lệnh AT để điều khiển ,nhận data từ gsm phải ko ?
như vậy ta xét mức ưu tiên cao hơn cho uart_2 ?

Với Sim908, bạn cần đọc kỹ tài liệu kỹ thuật của nó, tôi đã có gửi ở đầu luồng này và có nhắc nhỏ đọc đi đọc lại nhiều lần.
- Tôi chỉ sử dụng chân GPS_TXD: vì chỉ có nhu cầu cần lấy data từ vệ tinh. Chân GPS_RX chỉ sử dụng khi update firmware, thông thường việc nhà để nhà sãn xuất làm.
- Tốc độ mặc định của GPS module của SIm908 là 115200 bps. Tuy nhiên có thể dễ dàng thiết lập lại tốc độ này bằng lệnh AT: AT+CGPSIPR=<rate> //Set Baud rate
- Đinh dạng dữ liệu đầu ra cũng dễ dàng thiết lập bằng lệnh AT: AT+CGPSOUT=<mode>
- Sử dụng lệnh AT để lấy dữ liệu GPS bất cứ lúc nào( AT+CGPSINF=<mode>). Thậm chí cho phép/không cho phép GPS chạy(AT+CGPSPWR).
- Ban đầu khi thiết kế phần cứng, tôi có ý định sử dụng riêng 2 bộ UART như vậy, 1 cho GSM và 1 cho GPS. Tuy nhiên, khi làm việc thực tế trên SIm908. Tôi không cần sử dụng UART GPS nữa. Vì có thể kiểm soát dữ liệu bằng lệnh AT rồi(như trình bày ở trên). Mỗi lần minh gọi lệnh [AT+CGPSINF=<mode>], dữ liệu GPS sẽ xuất ra UART GSM.
Vì vậy, tôi sử dụng UART GPS + RS232 + PC để truyền lệnh AT điều khiển SIm908. Điều này rất có lợi:
- Khi cấu hình ban đầu cho Sim908: Vì các lệnh này chỉ cần cấu hình 1 lần duy nhất, thiết lập sẽ được lưu lại trong bộ nhờ không bay hơi trong Sim908.
- Kiểm tra/Thử nghiệm/Test các lệnh AT: Tấc nhiên là bạn phải viết được đoạn code có thể làm việc này. Ví dụ thế này: Khi ban sử dụng siow.exe trong CCS để truyền data xuống MCU qua UART GPS, MCU sẽ tạo hàm có thể truyền lệnh AT này xuống Sim908 qua UART GSM.

behnam
18-04-2012, 01:57 PM
guyz, anyone has sim908 schematic and footprint in altium deigner?

i need it. please reply ASAP

sorry i dont know your language!

best regards

vohinh2052
19-04-2012, 03:52 PM
chào anh longtu ,anh có thể đưa sơ đồ phần kết nối với con pic luôn được không ,hình anh đưa lên thiếu phần vxl rồi .
giúp đỡ cho hoàn thiện luôn đi anh ,sao em thấy khó khăn quá ....

trích :
" Ban đầu khi thiết kế phần cứng, tôi có ý định sử dụng riêng 2 bộ UART như vậy, 1 cho GSM và 1 cho GPS. Tuy nhiên, khi làm việc thực tế trên SIm908. Tôi không cần sử dụng UART GPS nữa. Vì có thể kiểm soát dữ liệu bằng lệnh AT rồi(như trình bày ở trên). Mỗi lần minh gọi lệnh [AT+CGPSINF=<mode>], dữ liệu GPS sẽ xuất ra UART GSM"

em quen dùng với pic16f887 ...nên UART dùng để giao tiếp lệnh AT điều khiển thiết bị qua sms rồi
nếu muốn hiện tọa độ vị trí lên LCD thì kết nối chân GPS_TXD vào đâu ạ ?

thanks !

longtu
19-04-2012, 04:50 PM
guyz, anyone has sim908 schematic and footprint in altium deigner?

i need it. please reply ASAP

sorry i dont know your language!

best regards

Dear Behnam,

Welcome you to http://www.picvietnam.com. Where are you from?

I don't use Altium software so I cannot help you.

You can make question in English.

Regard,
PM Tuân.

longtu
19-04-2012, 05:10 PM
chào anh longtu ,anh có thể đưa sơ đồ phần kết nối với con pic luôn được không ,hình anh đưa lên thiếu phần vxl rồi .
giúp đỡ cho hoàn thiện luôn đi anh ,sao em thấy khó khăn quá ....

trích :
" Ban đầu khi thiết kế phần cứng, tôi có ý định sử dụng riêng 2 bộ UART như vậy, 1 cho GSM và 1 cho GPS. Tuy nhiên, khi làm việc thực tế trên SIm908. Tôi không cần sử dụng UART GPS nữa. Vì có thể kiểm soát dữ liệu bằng lệnh AT rồi(như trình bày ở trên). Mỗi lần minh gọi lệnh [AT+CGPSINF=<mode>], dữ liệu GPS sẽ xuất ra UART GSM"

em quen dùng với pic16f887 ...nên UART dùng để giao tiếp lệnh AT điều khiển thiết bị qua sms rồi
nếu muốn hiện tọa độ vị trí lên LCD thì kết nối chân GPS_TXD vào đâu ạ ?

thanks !

Vohinh2052,

Bạn sai rồi, không phải tôi tiết mà không đưa lên phần kết nối với MCU. Bạn có thể mỗi bài viết của tôi đều rõ ràng và chi tiết không?...Nếu tiết, tôi đã không post bài lên đây.

Quan điểm của tôi là không có gi gọi là bí mất cả, kiến thức thôi mà. Cần phải cho đi để nhận về nhiều hơn. Rất nhiều bạn trong diễn dàn này cũng email hỏi riêng tôi, tôi đều nói như vậy, rằng các bạn sau khi hoàn thành ứng dụng/đồ án của mình thì hãy chia sẽ lên đây cho các bạn đi sau. Tôi cho rằng, người đi sau có thể kế thừa những gì người đi trước đã làm, rồi từ đó phát triển tiếp cho hoàn thiện hơn...nhưng phải nhớ hãy cùng chia sẽ để cùng nhau tiến bộ.

Trở lại với câu hỏi của bạn: Phần khó nhất là so đồ kết nối cho SIM908 thôi, còn về phần MCU, tùy vào ứng dụng của từng người, từng sãn phẩm...sẽ có 1 sơ đồ kết nối riêng, đâu có ai giống ai được bạn. Bạn là người làm ứng dụng, bạn cần tìm hiểu và chọn lựa MCU cũng như kết nối phần cứng tôi thiểu cho MCU chạy. Hơn nữa, ở đây không phải là luồng nối về MCU.

Trong các bài đã post, tôi cũng nói là việc giao tiếp giữa Sim908 và MCU qua bộ UART(chân TX, RX). Chú ý GPS_TX/RX(Vcc 3.3V) và MCU_TX/RX(Vcc=5V)...(xem lại các bài đã post).

Bạn đã quen với Pic16F887 rồi, tôi cho rằng bạn hoàn toàn có thể sử dụng 1 con PIC khác vì nó cũng tương tự như PIC16F877 mà thôi.
PIC16F877 chỉ có 1 bộ UART, theo tôi sẽ khó khăn cho bạn khi làm với Sim908 đấy. Vì khi bắt đầu làm với SIm908, bạn cần 1 bộ UART giao tiếp với GMS của Sim908 rồi, bạn cần thêm 1 bộ nữa để có thể test/gưi lệnh AT/upload firmware(sử dụng bootloader CCC qua Siow.exe...) rất tiện lợi và nhanh chóng. Hơn nữa giá thành 1 con PIC có 2 bộ UART có thể còn rẽ hơn, nhỏ gọn hơn 16F877 đấy...Tôi sử dung: 18F24K22.

Hiển thị lên LCD: Các chân LCD giao tiếp với chân GPIO của MCU thôi, khong có gì đặt biệt cả. Khi bạn đã lấy được thông tin về tọa độ, bạn có thể hiển thị lên LCD rồi. Cũng chỉ là tương tự như việc hiển thị 1 số đã có sẵn lên LCD mà thôi.

Thân,

behnam
19-04-2012, 06:33 PM
Dear Behnam,

Welcome you to http://www.picvietnam.com. Where are you from?

I don't use Altium software so I cannot help you.

You can make question in English.

Regard,
PM Tuân.

Thanks for your welcome. I'm from Persia.

so, what software are you using? Is it possible to generate it in altium deigner?

longtu
19-04-2012, 09:21 PM
Thanks for your welcome. I'm from Persia.

so, what software are you using? Is it possible to generate it in altium deigner?

I am using Orcad software. I don't know also Altium deigner can open it or convert it or not.

Why don't you try it? See the link below for footpint(Orcad) of SIM908.
http://www.picvietnam.com/forum/showpost.php?p=56337&postcount=15

longtu
20-04-2012, 03:57 PM
Với các Sim908 hiện tại, nếu các bạn gặp lỗi sai thông tin "DATE" trong bản tin $GPRMC như ví dụ sau đây:
Command: AT+CGPSINF=32
Response: 32,045506.000,A,1046.818428,N,10639.775633,E,0.52, 287.76,210751,,E,A

==>Data "Date" là: 210751, nó là kết quả sai.

Đây là 1 lỗi mà tôi phải liên hệ nhà cung cấp SimCom, họ trả lời rằng cần phải upload firmware mới để fix lỗi này.

Vì vậy, nếu các bạn nào đang thiết kế với Sim908, cần đưa ra các chân GPS/DBG_TXD và GPS/DBG_RXD để sau này upload firmware nếu cần thiết.

Thiết kế của tôi do không chừa các chân này nên giờ không thử được. Tôi gửi firmware mới cũng như cách upload lên đây để bạn nào đang làm với Sim908 thì lưu ý và có thể thử Firmware mới và cho tôi kết quả?

Đây là các tính năng phát triển của firmware mới:
http://i657.photobucket.com/albums/uu294/longtupic/ImprovedFeatures.png

Firmware: http://www.mediafire.com/?wjmu64rljc5cqo9

File pdf đính kèm là hướng dẫn cách thưc hiện.

thanhsonvn90
20-04-2012, 10:44 PM
guyz, anyone has sim908 schematic and footprint in altium deigner?

i need it. please reply ASAP

sorry i dont know your language!

best regards
Here you are !
http://www.mediafire.com/?a1a9e2yzz3po0mn

behnam
21-04-2012, 04:25 AM
Here you are !
http://www.mediafire.com/?a1a9e2yzz3po0mn

Thanks a lot dude, It helped me so much...

Thank you again...

behnam
21-04-2012, 06:33 PM
hi guyz,

as you know, Sim900 can be drives easily! so, can we drive Sim908 as easily as sim900?

thx.

dinale
10-05-2012, 12:08 PM
Cái bộ GPS của sim908 nó có cho mình lấy dữ liệu "thô" (cường độ tín hiệu) để mình tự tính toán tọa độ ko nhỉ? Hay là nó ra sẵn tọa độ cho mình luôn.

p_zeus
11-05-2012, 09:13 AM
chào mọi người minh đang đồ án định vị GPS băng sim 908 công việc củng tạm ổn đã thực hiện được các chức năng định vị va đánh dấu trên bản đồ. tuy nhiên ở đây mình truyền dư liệu bằng ip động nên nó thay đổi liên tục. cập nhật ip bằng SMS thì không linh hoạt cho lắm mình muôn sữ dụng DNS nhưng không biết phải làm như thế nào . bên matbao có cung cấp dns free mình hỏi bên đó họ nới có thể làm được. ai đã làm qua thì giúp mình với nhé.

thanhsonvn90
12-05-2012, 07:57 PM
chào mọi người minh đang đồ án định vị GPS băng sim 908 công việc củng tạm ổn đã thực hiện được các chức năng định vị va đánh dấu trên bản đồ. tuy nhiên ở đây mình truyền dư liệu bằng ip động nên nó thay đổi liên tục. cập nhật ip bằng SMS thì không linh hoạt cho lắm mình muôn sữ dụng DNS nhưng không biết phải làm như thế nào . bên matbao có cung cấp dns free mình hỏi bên đó họ nới có thể làm được. ai đã làm qua thì giúp mình với nhé.
Cậu có thể dùng 1 dịch vụ dns free có hỗ trợ DNS động như no-ip.info rồi truyền qua domain luôn
Có gì liên hệ yahoo mình :sonbui1903
demo: http://gpshaui.somee.com/v3/info/Realtime.aspx
trên máy mình nè: http://sonbui.no-ip.info:8080/site/Realtime.aspx

Trước mình cũng dùng TCP IP nhưng giờ chuyển qua sử dụng webservice cập nhật dữ liệu lên website luôn

saturday_ll
22-05-2012, 05:58 PM
Mình có các loại module sim này. Bác nào cần liên hệ với mình theo sdt 0985 299 318 nha!

dangkhoa1011
23-05-2012, 07:20 PM
sim 908 của mình làm theo sơ đồ bác longtu mình đã gọi điện và nhận cuôc gọi ,cũng như đọc tin nhắn được .
nhưng mình gửi tin nhắn ko được ,mình viết như trong hướng dẫn tập lệnh AT sim 548 :
>at+cmgf=1 /*Đăng nhập mạng GSM, chọn chế độ gửi tin nhắn Text*/
>OK
>at+cmgs="0945302248"/*Gửi tin nhắn tới số điện thoại*/
> tai sao khong gui duoc /*noi dung tin nhan ,sau đó mình nhấn ESC ,or phím ->*/
>
>OK /*nó trả về OK*/
không còn gì hơn nửa ,tin nhắn ko tới số cần nhận ,
không có chuỗi trả về thông báo kết quả quá trình gửi tin nhắn. (+CMGS: )
cũng không báo lỗi (+CMS ERROR)
bạn nào biết tại sao không ,chỉ mình với
có cần phải cài đặt trung tâm tin nhắn gì không ?

longtu
27-05-2012, 09:04 PM
sim 908 của mình làm theo sơ đồ bác longtu mình đã gọi điện và nhận cuôc gọi ,cũng như đọc tin nhắn được .
nhưng mình gửi tin nhắn ko được ,mình viết như trong hướng dẫn tập lệnh AT sim 548 :
>at+cmgf=1 /*Đăng nhập mạng GSM, chọn chế độ gửi tin nhắn Text*/
>OK
>at+cmgs="0945302248"/*Gửi tin nhắn tới số điện thoại*/
> tai sao khong gui duoc /*noi dung tin nhan ,sau đó mình nhấn ESC ,or phím ->*/
>
>OK /*nó trả về OK*/
không còn gì hơn nửa ,tin nhắn ko tới số cần nhận ,
không có chuỗi trả về thông báo kết quả quá trình gửi tin nhắn. (+CMGS: )
cũng không báo lỗi (+CMS ERROR)
bạn nào biết tại sao không ,chỉ mình với
có cần phải cài đặt trung tâm tin nhắn gì không ?

Tôi trả lời bạn như sau:
Cmd: AT+CMGF=1 //SMS Text Mode.
Bạn chỉ cần chỉ sử dụng 1 lần thôi, không cần lặp lại mỗi lần gửi tin nhắn.

Bạn làm các bước sau để gửi tin nhắn:
Bước 1: CMD: AT+CMGS="090xxxxx"<CR>
Lưu ý:
+ Phải có 2 dấu ngoặc kép('') ở 2 đầu số điện thoại.
+ Phải có Carrige Return(\r) ngay sau dấu ngoặc kép thứ 2.
Ví dụ:
char SenderPhone[]= "\"0988xxxxxxx\"";
...
fprintf(COM_GSM,"AT+CMGS=%s\r\n",SenderPhone);

Buớc 2: Đợi điện thoại/Sim 908 Module trả về: dấu '>'

Bước 3: Ghi nội dung tin nhắn và kết thúc bằng SUB và ESC để gửi tin nhắn.
Ví dụ: Muốn gửi nội dung SMS: My name is Phung Minh Tuan.
#define SUB 0x1A
#define ESC 0x1B
....
fprintf(COM_GSM,"My name is Phung Minh Tuan.%c%c",SUB,ESC);

Bạn thử xem.
Thân,

dangkhoa1011
27-05-2012, 10:47 PM
hi ,em mới giao tiếp mới máy tính qua HyperTerminal thôi ,nhưng chưa gửi được tin nhắn ,nên anh trả lời em không hiểu lắm ^^"
em gõ lệnh AT
>at+cmgs="094530****"
sau đó nhấn Enter thôi ,
gõ nội dung ,sau đó nhấn Esc ,nó trả về OK ,nhưng không gửi được !

longtu
28-05-2012, 12:04 AM
hi ,em mới giao tiếp mới máy tính qua HyperTerminal thôi ,nhưng chưa gửi được tin nhắn ,nên anh trả lời em không hiểu lắm ^^"
em gõ lệnh AT
>at+cmgs="0945302248"
sau đó nhấn Enter thôi ,
gõ nội dung ,sau đó nhấn Esc ,nó trả về OK ,nhưng không gửi được !

Tại sao bạn nói làm theo sơ đồ của tôi mà lại sử dụng được HyperTerminal?

Sơ đồ của tôi giao tiếp giữa Sim908 với Microcontroller, vì vậy tôi gợi ý cho bạn theo dạng này.

Voi HyperTerminal cũng vậy thôi, ban xem lai bài viết của tôi và quên đi các ví dụ tôi viết. Các bước vẫn như vậy.

Thân,

longtu
03-06-2012, 02:54 PM
Như tôi đã nói, tôi sẽ trở lại với luồng nay sau khi làm xong ứng dụng liên quan đến MCU + Sim908. Kết quả đạt được của tôi khá tốt, tôi sẽ lần lượt gợi ý để các bạn dễ dàng nắm bắt.

1. Nhắc lại một số ý quang trọng:
- Tôi đã và đang trình bày cách thức giao tiếp giữa MCU với Sim908. Nếu các bạn nào chỉ giao tiếp SIM908 với PC qua HyperTerninal thì xem để tham khảo và áp dụng cho đúng.
- Các bạn xem lại sơ đồ kết nối giữa MCU(Pic 18F24K22) + Sim908 ở đây:
http://www.picvietnam.com/forum/showpost.php?p=55073&postcount=7
Trong đó:
+ GSM_TXD nối trực tiếp với MCU_RXD1
+ MCU_TXD1 qua cầu phần áp(2.2K và 3.3K) trước khi nối với GSM_RXD

+ GPS_TXD nối trực tiếp với MCU_RXD2:
http://i657.photobucket.com/albums/uu294/longtupic/Fig1.jpg
Hình ảnh trên, các bạn sẽ thấy rằng thông qua J6, ta sẽ có 2 lựa chọn: 1 là GPS_TXD(Sim908), 2 là RX_MCU(Từ PC-->RS232).
http://i657.photobucket.com/albums/uu294/longtupic/Fig2.jpg
+ Thông qua các chân RX_MCU và TX_MCU ta có thể upload firmware cho MCU(qua bootloader), debug firmware...cấu hình ban đầu cho Sim908...
Trong sơ đồ của tôi không sử dụng GPS_RXD. Tuy nhiên, các bên nên sử dụng cả chân này nếu như muốn upload firmware mới cho Sim908 để sửa một số lỗi. Các bạn đọc bài viết này của tôi:
http://www.picvietnam.com/forum/showpost.php?p=57435&postcount=24

longtu
03-06-2012, 03:13 PM
2. Một số lệnh AT để Kiểm Tra, Cấu hình cho Sim908:
2.1 Một số lệnh Kiểm Tra:
- Ngay sau khi có phần cứng, các bạn lắm Sim và sử dụng một số lệnh sau để kiểm tra:
[AT Command] //[Description]
AT //Check communication between the module and PC/Microcontroller.
ATD<Caller Phone Number>//Call to phone number. Ex: ATD0988434887;
ATDL//Reial last telephone number.
ATI //Display Product Identification Information. Ex: Return:SIM900 R11.0
AT&V//Display Current Configuration.
AT+GSV//Display Product Identification Information. Ex: SIMCOM_Ltd - SIMCOM_SIM908 - Revision:1137B02SIM908M64_ST
AT+CSQ //Signal Quality Report.Ex: +CSQ: 28,0 (<99 Signal is good)
AT+CPIN? // Check Sim status. Ex: +CPIN: READY
AT+IPR? // Check(Test/Set/Read) Baud rate. Ex: +IPR: 0(Auto_bauding)
AT+CSCA? //SMS Service Center Address. Ex: +CSCA: "+84980200030",145
AT+CMTE? //Read the temperature when the module is running. Ex: +CMTE: 0,38
AT+CGREG? //Network Registration Status. Return: +CREG: 1,1 - Enable Network and Registed.
AT+CGMI// Get manufacturer information. Ex: SIMCOM_Ltd
AT+CGMR// Get software version. Ex: Revision:1137B02SIM908M64_ST
AT+CGSN //Get device IMEI. 861001000034104
AT+COPS? // Display the current network operation: +COPS: 0,0,"VNM and VIETTEL"

Và còn rất nhiều lệnh khác nũa, các bạn xem them trong AT Command cho Sim908.

p_zeus
09-06-2012, 04:37 PM
chào ca nha mình cho minh hỏi xíu con sim908 cua mình chay GSM mà không chạy GPS thi no lanh tanh khong một tí nhiệt nào , nhưng cho chay chêm chú GPS một lúc thì nhiệt độ em no lên tam 45 50 độ , nhưng vẩn chạy bình thương. không biết lý do tại sao nưa . liệu có gì bất thường với con sim908 của mình không nhi

mynametan
15-06-2012, 10:48 PM
Chào cả nhà cho em hỏi em làm đồ án điều khiển thiết bị qua tin nhắn sms...
Khi modum gởi tin nhắn phản hồi cho điện thoại....thì pic tự nhiên nhận chuỗi ký tự đòi xử lý mà em ko hề gởi chuỗi cho modum....rồi đứng lun hệ thống...mong mọi người giúp đỡ a?????????

longtu
17-06-2012, 07:03 PM
Chào cả nhà cho em hỏi em làm đồ án điều khiển thiết bị qua tin nhắn sms...
Khi modum gởi tin nhắn phản hồi cho điện thoại....thì pic tự nhiên nhận chuỗi ký tự đòi xử lý mà em ko hề gởi chuỗi cho modum....rồi đứng lun hệ thống...mong mọi người giúp đỡ a?????????

Tôi nhận được code và sơ đồ của bạn qua email. Bạn hãy upload đoạn code cũng như sơ đồ của bạn lên đây để mọi người cùng rút kinh nghiệm. Tôi xem nhanh code bạn và có nhận xét code của bạn như sau
- Luôn quan sát NetLight Led có chớp hay không.
- Khi nhấn Power Key, Status Led phải sáng và luôn để ý Led này trong suốt quá trình sử dụng. Vì nếu như Led này tự động tắt, rất có thể nguồn cung cấp không đủ...
- puts("at+cmgr=1"); và puts("at+cmgd=1"); Rẩt có thể chương trình của bạn đứng tại đây, bạn thiếu \r để kết thúc lệnh. Ví dụ: printf("AT+CMGR=1\r\n");
- Nói chung, code bạn viết là không chặt chẽ. Bạn cần tìm hiểu để viết code chặt chẽ hơn.
Tôi gợi ý đoạn code nhận tin nhắn sms như sau:
- Đâu tiên, các bạn phải cấu hình/thiết lập nhận tin nhắn:
AT+CNMI=1,1,0,0,0 New message indication enable.
Khi đó, mỗi lần có tin nhắn mới sẽ nhận được chuỗi data như sau:
+CMTI: "SM",<index>\r\n
Chú ý:
1. Luôn bắt đầu bằng chuỗi: "+CMTI"
2. Luôn kết thúc bằng: \r\n
==>Dựa vao 1 va 2 để biết ĐÚNG là tin nhắn tới và loại bỏ những data không đúng là tin nhắn...

/* Chú ý:
* Tôi su dung RDA2 de nhan SMS. Khai báo cua tôi nhu sau:
*/
#USE RS232(BAUD=38400, XMIT=PIN_B6, RCV=PIN_B7, STREAM=COM_GSM)
...
//------------------------------------------------------------------------------
#define BUFSMS_SIZE 165 //SMS size the same 160 characters.
#define BUFSMS_MASK BUFSMS_SIZE-2
char buffSMS[BUFSMS_SIZE];

//Define:
#define OK_ 0 // Used to look up in SetSearchString( Response )
#define CMTI_ 1 // Used to look up in SetSearchString( Response )
#define READY_ 3 // Used to look up in SetSearchString( Response )
#define CRLF_ 4 // Used to look up in SetSearchString( Response )

unsigned char OK[] = "OK\r\n"; // "OK"
unsigned char CMTI[] = "+CMTI:"; // New Message arrived
unsigned char READY[] = "> "; // Phone ready to receive text message
unsigned char CR_LF[] = "\r\n"; // Carrige Return Line Feed

unsigned char *searchFor; // Flash pointer

// Private pointer
static unsigned char searchStr;

static int8 rx_i;
int8 nextIn2;
int8 rx_ack=0; //Acknowledge Flag.

void InitBuffCom2(void);
void SetSearchString( unsigned char Response );
void EnableReceivSMS();
/* Int_rad2:
* Có tin nhắn mới: rx_ack= 1, ngược lai rx_ack= 0.
*/
#INT_RDA2
void serial_isr2()
{
int8 i;
char c;
c= buffSMS[nextIn2++]= fgetc(COM_GSM);
//fputc(buffSMS[nextIn2-1],COM_GPS); //Could be used for testing.

if( nextIn2 > BUFSMS_MASK)
{
nextIn2= 0; //Reset write index.
disable_interrupts(int_rda2);// Disable RX interrupt
}

if( searchFor[rx_i] == c)
{
rx_i++;
if( !searchFor[rx_i] )
{
rx_i= 0;
if( searchStr == CMTI_ ) //+CMTI
{
searchFor= CR_LF; //Wait for
searchStr = CRLF_;
}
else
{
rx_ack= 1;
disable_interrupts(int_rda2);// Disable RX interrupt
}
}
}

else
{
rx_i= 0; //Not valid search pattern...start again.
}

}

/*
* Reset receive interrupt SMS data.
*/
void InitBuffCom2(void)
{
disable_interrupts(int_rda2);// Disable receive SMS message.
rx_i= rx_ack = 0;
nextIn2 = 0;
buffSMS[nextIn2] = NULL;//#define NULL '\0'
}
/*
* Set desired search string
* Usage:
* - Call: InitBuffCom2(); <?> //Reset receive buffSMS
* - Call: SetSearchString( unsigned char Response )
* - Call: AT command
* - Call: EnableReceivSMS()
*/
void SetSearchString( unsigned char Response )
{
disable_interrupts(int_rda2);// Disable receive SMS message.
switch (Response)
{
case OK_:
searchFor= OK;
break;
case CMTI_:
searchFor= CMTI;
break;
case READY_:
searchFor= READY;
break;
default:
break;
}
searchStr = Response; //Used in rx_isr
rx_i = 0;
}
/*
* Enable Receiv SMS:
*/
void EnableReceivSMS()
{
enable_interrupts(int_rda2);
}
/* Check acknowledge returned from phone
*
* This function checks if an acknowledge
* has been received from the phone. A counting loop is also
* included to avoid waiting for a acknowledge that never arrives.
*
* Return Value:
* 1 Success, correct acknowledge
* 0 Error, returned "ERROR" or timed out
*/
#define KEYHIT_DELAY 5000 // milliseconds
Int Check_acknowledge()
{
unsigned int32 timeout=0;
int retval;
int16 temp_delay=0;

retval= 0;
rx_ack= 0; //Zero ackowledge flag.
while((rx_ack==0)&& (++timeout<(KEYHIT_DELAY*100)))
delay_us(10);

if(rx_ack) //Everything worked out fine...rx turned off
{
rx_ack= 0; //Reset ackowledge flag.
retval= 1;
}
else //A timeout could result from no acknowledge.
{
// fputc('A',COM_GPS);
InitBuffCom2();
retval= 0;
}
while((temp_delay++)<10000);//Delay a few miliseconds.
return(retval);
}
/*Delete a message at index= 1
*
*/
Void deleteSMS()
{
InitBuffCom2();
SetSearchString( OK_ );
fprintf(COM_GSM,"AT+CMGD=1\r");
EnableReceivSMS();
if( Check_acknowledge() > 0 ) //Acknowledge = "OK"
{
return;
}
else //Acknowledge != "OK"
{
fprintf(COM_GPS,"ERROR: No Ack!\r\n");
return;
}
}
//----------------------------------------------

Void main()
{
...
enable_interrupts(int_rda2);

enable_interrupts(GLOBAL);
...
deleteSMS(); //Chú ý A
InitBuffCom2();
SetSearchString( CMTI_ ); //Waiting the new SMS message.
EnableReceivSMS(); //Ready to receive the new SMS message.
//Main program:
while(1)
{
if( rx_ack )
{
//Xu ly tin nhan moi.
deleteSMS();//Chú ý B
InitBuffCom2();
SetSearchString( CMTI_ ); //Waiting the new SMS message.
EnableReceivSMS(); //Ready to receive the new SMS message.
}
}
}


Chú ý A: deleteSMS()
- Luôn xóa tin nhắn tại index= 1, điều này có nghĩa rằng khi nhận được tin nhắn mới thì chắc chắnc rằng tin nhắn mới sẽ được lưu trong index= 1.

Chú ý B: deleteSMS()
- Khi xử lý xong tin nhắn mới, phải xóa tin nhắn ở index= 1 này để sẵn sàng nhận tin nhắn mới vào index= 1.

longtu
17-06-2012, 07:24 PM
Void deleteSMS()
{
InitBuffCom2(); //Reset receive buffSMS
SetSearchString( OK_ ); //Nếu Delete SMS thành công, sẽ nhận được xác nhận "OK"
fprintf(COM_GSM,"AT+CMGD=1\r"); //Lệnh AT xóa tin nhắn tại index 1.
EnableReceivSMS(); //Cho phép nhận xác nhận từ SIM module.
if( Check_acknowledge() > 0 ) //Acknowledge = "OK"
{
return;
}
else //Acknowledge != "OK"
{
fprintf(COM_GPS,"ERROR: No Ack!\r\n");
return;
}
}

longtu
17-06-2012, 07:33 PM
while(1)
{
if( rx_ack )
{
//Xu ly tin nhan moi.
InitBuffCom2();
SetSearchString( CMTI_ ); //Waiting the new SMS message.
EnableReceivSMS(); //Ready to receive the new SMS message.
}
}

Khi đọc tin nhắn mới tại index, các bạn nhận được data như ví dụ sau:
+CMGR: "REC UNREAD","+849xxxxxxxx","","12/05/07,23:53:49+28"\r\n
<nội dung tin nhắn>\r\n
OK\r\n

Như vậy, trong đoạn chương trình "Xử lý tin nhắn mới" các bạn chú ý sau:
- Nếu đọc thành công sẽ nhận được xác nhận: "OK".
- Dựa vào chú ý này các bạn nhận biết được việc đọc tin nhắn có thành công hay không.
- Dựa vào symbol (") để tách nội dung tin nhắn nhận được:
+ Dấu (") thứ 2 tới thứ 3: Số điện thoại gửi tin nhắn.
+ Dấu (") thứ 6 tới thứ 7: Date và time.
+ Dấu (") thứ 7 + 3 ký tự là đến: <nội dung tin nhắn>

Tôi chỉ gợi ý như vậy, các bạn tự viết code để thực hiện việc xử lý tin nhắn mới.

Thân,

hieuthai2011
19-06-2012, 04:25 PM
bài viết của a long tử rất hay !!!
A ơi a có thể viết code lọc 1 vài ký tự cho mọi người xem được ko vậy !! e chưa hiểu mấy ý tưởng của a lắm mong được trợ giúp học hỏi rât nhiều !!!!hjhj

tienchuan
26-06-2012, 11:31 AM
bài viết của a long tử rất hay !!!
A ơi a có thể viết code lọc 1 vài ký tự cho mọi người xem được ko vậy !! e chưa hiểu mấy ý tưởng của a lắm mong được trợ giúp học hỏi rât nhiều !!!!hjhj
thnks a ấy bằng cách nhấn cảm ơn nhé các bạn :)

FUD84
28-06-2012, 01:42 PM
bác longtu viết rất hay và bổ ích. Bác cho mình hỏi bác mua con battery Li-ion 3.7V 1100mA ở đâu, và cái battery holder nữa?, mà nó tích hợp cả circuit protection luôn hả bác?. Cảm ơn bác rất nhiều.

longtu
28-06-2012, 02:33 PM
bác longtu viết rất hay và bổ ích. Bác cho mình hỏi bác mua con battery Li-ion 3.7V 1100mA ở đâu, và cái battery holder nữa?, mà nó tích hợp cả circuit protection luôn hả bác?. Cảm ơn bác rất nhiều.

Địa chỉ mua Battery: http://thegioipin.com.vn . Thực tế tôi sử dụng loại Polymer 3.7V 1100mA hoặc 1500mA. Nó có chừ 2 đầu ra, về chỉ việc lấy dây điện hàn vào 2 đầu ra này là sử dụng thôi.

Các bạn có thể sử dụng loại khác, Lion- battery chẳng hạn. Hơn nữa, nếu bạn cần người ta bấm lá thép để hàn trực tiếp lên PCB, người ta cũng bấm cho đấy chỉ việc thêm phí cho việc này.

Mạch protect: Bên trong Sim908 có mạch này(thông tin tôi đọc từ tài liệu Sim908).

Thân,

FUD84
30-06-2012, 12:05 PM
Bác Tuân cho mình hỏi, pin bác mua có luôn đầu ra battery temperature để kết nối với chân TBAT của SIM908?.
Cảm ơn bác.

longtu
30-06-2012, 03:44 PM
Bác Tuân cho mình hỏi, pin bác mua có luôn đầu ra battery temperature để kết nối với chân TBAT của SIM908?.
Cảm ơn bác.

Đã trả lời với bạn là battery tôi dùng chỉ chừa 2 đầu ra, chi việc hàn 2 dây vào là sử dụng rồi mà. Điều này có nghĩa là không có dây thứ 3 chân TEMP.

Thân,

tienchuan
30-06-2012, 06:03 PM
Anh cho hỏi em. Em đã kết nối với sim908 evb kit này bằng hyperterminal như trên và chỉnh các thông số baud rate... như hướng dẫn của nhà sản xuất nhưng khi gõ chữ "at" và enter thì không hề thấy xuất hiện "OK". Như vậy PC chưa kết nối được với chip sim908 phải không anh ? Có cách nào khắc phục không anh ? Thanks

bạn ơi, cho mình hỏi là bạn mua cái KIT sim 908 ở đâu với giá của nó là bao nhiêu vậy ?
cảm ơn nhé. :)

tienchuan
04-07-2012, 09:35 AM
gởi ACE 1 link tham khảo bên diễn đàn TI, tuy viết cho Stellaris nhưng dự án của mấy bạn này thấy chia sẻ cũng khá đầy đủ, có cả code C chương trình nữa, nên gởi tạm vào đây để mọi người tham khảo thêm.
@ a Tuân : cho e gởi vào luồng của a nhé.thnks a.
http://www.diendanti.com/showthread.php?263-Chia-s%E1%BA%BB-d%E1%BB%B1-%C3%A1n-Stellaris-GPS-v%E1%BB%9Bi-SIM908-giao-ti%E1%BA%BFp-th%E1%BA%BB-nh%E1%BB%9B-v%C3%A0-GUI-Google-Earth&p=888#post888

longtu
05-07-2012, 09:26 AM
Có bạn email hỏi tôi như sau:

bạn có thể cho mình xin cái hướng dẫn sử dụng modul sim908 được không?


Tôi trả lời các bạn như sau:
- Đây là một số lệnh/các bước để bắt đầu làm việc với Sim908:
Chú ý: Lắp SIM vào nhé.
1. Test Commands:
AT Command Description
AT Check communication between the module and PC/Microcontroller.
ATD<Caller Phone Number>; Call to phone number. Ex: ATD0988434887;
ATDL Reial last telephone number.
ATI Display Product Identification Information. Ex: Return:SIM900 R11.0
AT&V Display Current Configuration.
AT+GSV Display Product Identification Information. Ex: SIMCOM_Ltd - SIMCOM_SIM908 - Revision:1137B02SIM908M64_ST
AT+CSQ Signal Quality Report.Ex: +CSQ: 28,0 (<99 Signal is good)
AT+CPIN? Check Sim status. Ex: +CPIN: READY
AT+IPR? Check(Test/Set/Read) Baud rate. Ex: +IPR: 0(Auto_bauding)
AT+CSCA? SMS Service Center Address. Ex: +CSCA: "+84980200030",145
AT+CMTE? Read the temperature when the module is running. Ex: +CMTE: 0,38
AT+CGREG? Network Registration Status. Return: +CREG: 1,1 - Enable Network and Registed.
AT+CGMI Get manufacturer information. Ex: SIMCOM_Ltd
AT+CGMR Get software version. Ex: Revision:1137B02SIM908M64_ST
AT+CGSN Get device IMEI. 861001000034104
AT+COPS? Display the current network operation: +COPS: 0,0,"VNM and VIETTEL"

Trên đây là 1 số lệnh để các bạn Test việc giao tiếp giữa PC/Microcontroller với SIM908.

2. Configuration Command:
* These AT Command will be used in the first times to configuration for SIM908.
1. ATZ Reset default configuration.
2 Echo:
- ATE0 Echo Off. //Nếu muốn tắt Echo
- ATE1 Echo ON.//Nếu muốn mở Echo
3. AT+CLIP=1 Enable display phone number of calling.
4. AT&W Save Active(ATE0 and AT+CLIP=1) Profile.
5. AT+CMGF=1 SMS Text Mode.
6. New message indication:
- AT+CNMI=1,1,0,0,0 New message indication enable and select SIM memory storage.
Return only: +CMTI: "SM",<index>(+CMTI: "SM",1)
Or:
- AT+CNMI=2,0,0,0,0 New message indication enable and select SIM memory storage.
Return:+CMT: "+84988434887","","12/04/21,17:00:26+28"[Noi dung tin nhan]

7.AT+CSAS Save SMS Setting.

Thân,

p_zeus
10-07-2012, 03:49 PM
các bạn cho mình hỏi sao con sim908 của mình no chạy nóng kinh khung tầm 70 độ. liệu có vấn đề ji không, mình chạy cả GPRS và GPS có ai gặp trường hợp như mình không?

canhcongphale
15-07-2012, 10:11 PM
chào mọi người , cho mình moaooyj câu hỏi nhỏ con sim908 của mình đang chạy thi bông nhiên không nhận sim nưa nó chạy như thể mình không gắn sim vào vậy. có biets cách khắc phục không. phen này chăt mất toi con Sim

canhcongphale
15-07-2012, 10:20 PM
làm liều thử update firmware cho con sim nhưng lại bị lỗi như hình sau

danhdung18
17-07-2012, 11:53 AM
có ai cải tiến cái nút bấm vào power key chưa.Mình nghĩ nếu cải tiến được thì rất tốt

semipower
30-07-2012, 12:10 PM
hi ,em mới giao tiếp mới máy tính qua HyperTerminal thôi ,nhưng chưa gửi được tin nhắn ,nên anh trả lời em không hiểu lắm ^^"
em gõ lệnh AT
>at+cmgs="0945302248"
sau đó nhấn Enter thôi ,
gõ nội dung ,sau đó nhấn Esc ,nó trả về OK ,nhưng không gửi được !

Trong dòng "0945302248" bạn phải gõ theo thứ tự từ trái sang phải. Có thể bạn đã gõ 2 dấu "" trước, rồi quay lại gõ 0945302248 chăng?

dangkhoa1011
02-08-2012, 12:06 PM
à mình gửi được rồi ,trước tiên phải dùng lệnh reset cài đặt tin nhắn AT+CRES ,
sau đó là cài đặt trung tâm tin nhắn AT+CSCA="+84980200030" viettel

dinale
07-08-2012, 01:43 AM
con sim908 của e nhận lệnh AT đầu tiên thì trả về đúng, còn tất cả các lệnh tiếp theo đều bị lỗi ( trả về kí tự lạ). Nghĩa là sau khi power on chỉ nhận được đúng 1 lệnh AT, muốn gửi tiếp thì phải tắt đi rồi bật lại. Không biết phải cấu hình ban đầu như thế nào để nhận được nhiều lệnh AT nhỉ? E set baudrate 115200bps

kiemkhach10
10-08-2012, 06:19 PM
à mình gửi được rồi ,trước tiên phải dùng lệnh reset cài đặt tin nhắn AT+CRES ,
sau đó là cài đặt trung tâm tin nhắn AT+CSCA="+84980200030" viettel

cài đặt cho sim gắn vào modul đó à bạn?
mình dùng sim vina thì cài đặt như nào?

mình cũng đang test modul với PC mà sao lại lỗi như này nhỉ?

at
OK
at+cmgs="+84986661176"
> hello
>
+CMS ERROR: 515

lỗi này là lỗi gì hả các bạn?
thank!

quocloc.pham
26-09-2012, 10:24 AM
@canhcongphale Bạn thử giảm tốc độ baud và chắc rằng trong quá trình update thì tiếp xúc và nguồn của nó vẫn ok

Grjm
18-10-2012, 06:45 PM
hix may quá.tìm được 2pic này như vớ đc vàng ý ToT. Em đang mày mò tìm hiểu con này để làm luận văn. Nghe bảo vẽ trên orcad sẽ dễ hơn nên đang tập vẽ orcad. Nhưng mak em tìm hoài lại ko có Sim908 trong Library ( em tập vẽ Schematic vì nghe nói chuyển wa Layout dễ hơn ). Ai có Library con Sim908 phần Capture cho em xin. Thx mọi người rất nhiều

vxd_gtvt_mylove
18-10-2012, 11:00 PM
em chao a.!! em chua hiểu về cái sim 908 nay lắm.a có thể chi qua cho em sơ sơ về chức năng cơ bản của nó ko ạ?!!cảm ơn a nhiều!!

longtu
19-10-2012, 09:18 AM
Có bạn hỏi tôi footprint cho Sim holder. Tôi post lên đây để các bạn khác nếu cần.

http://www.mediafire.com/?cyty1h5j2i3zyb3

Thân,

vagabondpic
24-10-2012, 02:57 AM
Anh cho hỏi em. Em đã kết nối với sim908 evb kit này bằng hyperterminal như trên và chỉnh các thông số baud rate... như hướng dẫn của nhà sản xuất nhưng khi gõ chữ "at" và enter thì không hề thấy xuất hiện "OK". Như vậy PC chưa kết nối được với chip sim908 phải không anh ? Có cách nào khắc phục không anh ? Thanks

Của mình cũng bị hiện tượng hệt như này:
Mình đã kiểm tra kết nối COM bắn lên xuống, đèn status của SIM đều OK.
Khi bắn xuống SIM908 thì thấy có led ở chân RX của SIM sáng chứng tỏ đã bắn đc xuống.
Nhưng không thấy dữ liệu đc bắn lên.
Pro nào giúp mình với.

Thanks!!

nguyenhuutien
08-11-2012, 08:29 PM
chào anh, chủ đề GPS của là chủ đề rất hot hiện nay, cảm ơn anh vì đã tạo ra luồng này, em thấy rất thích thú và có nhiều ý tưởng cho lĩnh vực này. Bây giờ em củng đang nghiên cứu lĩnh vực này, em thấy trong datasheet sim908 khi giao tiếp GSM_Tx,GSM_Rx với pic thif người ta giao tiếp trực tiếp luôn chư kkhoong cần qua cầu phân áp như anh nói. cũng như anh nói giao tiếp GPS_Tx,GPS_Rx với máy tính thông qua con max232 dùng để update firmware, nên theo em nghĩ mình chỉ cần dùng loại pic co 1 bộ UART là đủ rồi.

kiemkhach10
24-11-2012, 05:19 PM
Các bạn cho Minh hỏi chút.với sim 900 gì cứ cấp nguồn đầy đủ thì đèn status sẽ sáng phải ko?
Nếu cấp nguồn mà đèn status ko sáng thì do nguyên nhân gì?
Cám ơn các bạn!

pucapuca123
26-11-2012, 11:12 AM
tìm ra nguyên nhân rùi. mới đầu phải để chân pwkey xuống mức 0 thì đèn status sáng và netnight nhấp nháy. nhưng sao mình đợi mãi vẫn ko thấy sim tìm được mạng nhỉ( đèn netnight nháy nhanh lắm chứ ko chậm lại )

pucapuca123
26-11-2012, 11:13 AM
Các bạn cho Minh hỏi chút.với sim 900 gì cứ cấp nguồn đầy đủ thì đèn status sẽ sáng phải ko?
Nếu cấp nguồn mà đèn status ko sáng thì do nguyên nhân gì?
Cám ơn các bạn!

Mới đầu phải để chân pwkey xuống mức 0 thì đèn status sáng và netnight nhấp nháy. nhưng sao mình đợi mãi vẫn ko thấy sim tìm được mạng nhỉ( đèn netnight nháy nhanh lắm chứ ko chậm lại )

light_cell
07-12-2012, 08:04 PM
Anh Tuân cho em hỏi
module SIM báo cho PIC biết là có tin nhắn bằng cách nào vậy?
ý em là PIC kết nối tới chân nào của module sim để nhận biết tín hiệu mà xử lý á.
cảm ơn anh!

longtu
07-12-2012, 09:59 PM
Anh Tuân cho em hỏi
module SIM báo cho PIC biết là có tin nhắn bằng cách nào vậy?
ý em là PIC kết nối tới chân nào của module sim để nhận biết tín hiệu mà xử lý á.
cảm ơn anh!

Bạn và nhiều người khác nữa không chụi đọc từ đầu bài viết của tôi. Các thông tin này tôi đã nói kỹ trong các bài viết của mình:

Câu hỏi của bạn thì đọc ở đây: http://www.picvietnam.com/forum/showpost.php?p=71148&postcount=40
////////////////////////////////////////////////////////////////////////////////////////////////////
- Đâu tiên, các bạn phải cấu hình/thiết lập nhận tin nhắn:
AT+CNMI=1,1,0,0,0 New message indication enable.
Khi đó, mỗi lần có tin nhắn mới sẽ nhận được chuỗi data qua ngắt UART như sau:
+CMTI: "SM",<index>\r\n
Chú ý:
1. Luôn bắt đầu bằng chuỗi: "+CMTI"
2. Luôn kết thúc bằng: \r\n
==>Dựa vao 1 va 2 để biết ĐÚNG là tin nhắn tới và loại bỏ những data không đúng là tin nhắn...
1 cd2ff
///////////////////////////////////////////////////////////////////////////////////////////////////

nguyenhuutien
08-12-2012, 08:43 AM
chào anh longtu thấy lâu lắm rồi mới thấy anh lên diễn đàn,không biết anh đã làm xong module sim908 chưa? anh có thể cho em xin sơ đồ chân simcard trong layout được không.

light_cell
08-12-2012, 12:11 PM
Bạn và nhiều người khác nữa không chụi đọc từ đầu bài viết của tôi. Các thông tin này tôi đã nói kỹ trong các bài viết của mình:

Câu hỏi của bạn thì đọc ở đây: http://www.picvietnam.com/forum/showpost.php?p=71148&postcount=40
////////////////////////////////////////////////////////////////////////////////////////////////////
- Đâu tiên, các bạn phải cấu hình/thiết lập nhận tin nhắn:
AT+CNMI=1,1,0,0,0 New message indication enable.
Khi đó, mỗi lần có tin nhắn mới sẽ nhận được chuỗi data qua ngắt UART như sau:
+CMTI: "SM",<index>\r\n
Chú ý:
1. Luôn bắt đầu bằng chuỗi: "+CMTI"
2. Luôn kết thúc bằng: \r\n
==>Dựa vao 1 va 2 để biết ĐÚNG là tin nhắn tới và loại bỏ những data không đúng là tin nhắn...
1 cd2ff
///////////////////////////////////////////////////////////////////////////////////////////////////
Cảm ơn anh đã trả lời, giúp em hiểu hiểu nhiều tý rồi.:
em đọc tài liệu, nhà sản xuất nói khi module sim chưa khởi động xong thì tuyệt đối không sử dụng UART. vậy khi khởi động module sim delay 1 thời gian rồi bắt đầu gửi mã: "AT+CNMI=1,1,0,0,0" xuống module sim đúng không anh?
rồi khi có tín hiệu ngắt khi có tin nhắn thì pic thực hiện việc đọc và xử lý tin nhắn?
anh giúp em giải thích tý nữa nhé!

mrtamtran
16-01-2013, 04:04 PM
TUYỆT VỜI !
Em cảm ơn anh longtu ! Diễn đàn rất cần những người như anh ! ^_^

digan
19-02-2013, 05:48 PM
anh có thể port toàn bộ code gửi dữ liệu từ vi điều khiển lên sim908 để module gửi đến một số ĐT bất kỳ không

longtu
20-02-2013, 01:35 PM
chào anh longtu thấy lâu lắm rồi mới thấy anh lên diễn đàn,không biết anh đã làm xong module sim908 chưa? anh có thể cho em xin sơ đồ chân simcard trong layout được không.

Tiền tiem trong luồng nay, tôi dã post schematic co hình anh của sơ đồ chan Simcard và chân hàn của Simcard rồi. Ngay cả chan hàn cua Sim 908 cung có.

Thân,

longtu
20-02-2013, 01:41 PM
Cảm ơn anh đã trả lời, giúp em hiểu hiểu nhiều tý rồi.:
em đọc tài liệu, nhà sản xuất nói khi module sim chưa khởi động xong thì tuyệt đối không sử dụng UART. vậy khi khởi động module sim delay 1 thời gian rồi bắt đầu gửi mã: "AT+CNMI=1,1,0,0,0" xuống module sim đúng không anh?
rồi khi có tín hiệu ngắt khi có tin nhắn thì pic thực hiện việc đọc và xử lý tin nhắn?
anh giúp em giải thích tý nữa nhé!

Khi cấp nguồn cho Sim908 xong, bạn phải điều khiển chân Status để cho Sim bắt đầu hoạt động. Bạn nên thao khảo cách kết nối 1 led và chân status này như sơ đồ của tôi dã post lên đây. Khi đó chỉ cần quan sát Led này và led ở chân Netlight...

Tuy nhiên, để cho chặt chẽ và kiểm soát tốt, trong firmware, ngay đầu chương trình bạn nên làm từng bước như sau:
Ví dụ:
1. Kiểm tra giao tiếp giửa MCU và SIm908 đã tốt hay chưa? Nếu tốt thì sẽ trả về OK, ngược lại thì Error.
2. Nếu nhận được trả lời OK ở bước trước thì mới thực hiện bước 2 này, ví dụ kiểm tra tình trạng SIM...

Thân,

longtu
20-02-2013, 01:46 PM
anh có thể port toàn bộ code gửi dữ liệu từ vi điều khiển lên sim908 để module gửi đến một số ĐT bất kỳ không

Câu trả lời là không. Không phải vì tôi tiết hay muốn dấu diếm gì cả mà vì các lý do nhu sau:
1. Tôi đã trình bày các cách viết Firmware cụ thể cho từng việc như nhận SMS, gửi SMS, Kiểm tra xác nhận...rồi. Bạn chỉ cần tham khảo và sửa lại thành của mình.
2. Mỗi người có cách viết khác nhau, chỉ cần hiểu các ý chính bạn có thể tự viết được. Nhưng nếu tôi post toàn bộ lên có thể làm nhiều bạn "mờ mắt", không hiểu và không đúng trọng tâm...
3. Các bạn phải tự mình vận động, hãy biến gợi ý của tôi thành cái của bạn...

Thân,

pucapuca123
10-03-2013, 11:36 PM
các bạn cho mình hỏi các reset cho modul sim với. vì mạch mình làm cứ chạy được một ngày là lại treo ko nhận được tin nhắn nữa,mình nghĩ là do modul sim bị treo nên chỉ cần reset lại modul là sẽ chạy đươc
thank mọi người!

newmoon
14-03-2013, 06:05 PM
Chào anh longtu và các bạn trên diễn đàn. Mạch sim908 em thiết kế khi cắm nguồn vào status sáng bình thường, letnight chớp tắt liên tục nhưng module ko nhận sim. Em đo nguồn cấp cho sim từ chân 20 thì không có điện áp. Xử ý lỗi này như thế nào ạ. Thanks mọi người.

hoangsangbk09
08-04-2013, 12:18 AM
chào các anh (chị), em đang làm đồ án thiết kế thiết bị GPS cầm tay. em định chọn modul sim908 và kit MSP-EXP430G2 không biết là có ổn không? vì con này chỉ có 1 bộ uart.xin cảm ơn các anh (chị).

pvtrung90
27-04-2013, 04:24 PM
Anh longtu ơi. Em đang làm mạch liên quan đến GPS. Em dùng SIM908 với PIC 16f887 được không anh?
Tại vì e chỉ dùng 1 cổng com để truyền lệnh AT từ máy tính xuống SIM thông qua chân GPS_RXA, còn chân TX, RX mình nối trực tiếp vào RX,TX của PIC, như vậy có được kg anh?
Mong anh cho em một số ý kiến về vấn đề này.

hoangsangbk09
05-05-2013, 12:25 AM
chào anh longtu và các bạn. em làm xong cái mạch sim908 rồi nhưng không hiểu sao cấp nguồn vào mà vẫn không thấy led status vẫn không sáng(đương nhiên là em đã nhấn nút power key rồi). hơn nữa em đo áp tại chân power key thì thấy luôn ở mức 0v(trong khi em đọc datasheet thì thậy chân này có điện trở kéo lên nguồn 3v). em đã kiểm tra xem có dính chân không thì thấy chân power key (3) không bị dính vào các chân ở gần đó. em đã kiểm tra nhiều lần mà vẫn không tìm thấy nguyên nhân. không biết có phải là do chíp chết không nữa. nhờ các anh(chị ) gớp ý chỉ dẫn giúp em với.

hoangsangbk09
09-05-2013, 10:56 AM
Chào các bạn. mình đang làm đồ án về GPS dùng modul sim 908. Mình đang muốn dùng modul sim 908 giao tiếp với vi điều khiển( ARM cotex M3Lm8962) để làm một thiết bị GPS cầm tay, có thể hiện vị trị GPS của thiết bị lên google map.
Mình dự định sẽ lấy tọa độ GPS rồi dung GPRS gửi lên. Mình không biết làm như vậy có được không? hiện tại Minh đã làm xong phần cứng, và cũng đã lấy và phân tich tín hiệu GPS. anh, em nào đã làm rồi cho minh xin chút kinh nghiệm. Có thể cho mình hỏi là muốn truyền nhận dữ liệu GPS lên sever dùng GPRS rồi hiện lên GOOGLE MAP cần phải thực hiện những bước gì? mình nghe nói dung C# để viết sever rồi nhúng google map vào. nhưng vẫn chưa hiểu rõ lắm. Nhờ anh, em chỉ giúp mình các công việc cần phải làm. Cái này mình mới làm lần đầu nên conf nhiều thứ chưa biết. Xin anh em chỉ giúp

hoangsangbk09
17-05-2013, 09:21 PM
Mọi người cho mình hỏi cái này luôn với:

Sau khi đã viết xong TCP server và nhúng googlemap vào rồi mình có viết thử client để giao tiếp với server trong mang LAN thì thấy chạy rất OK. nhưng khi NATport để thiết lập đường truyền GPRS thì minh gặp vấn đề là mình không thể đăng nhập vào modul ADSL để NATport được vì đã mất pass. Mọi người cho mình hỏi là:
+ 1/ Có cách nào dùng USB3G để NATport được không?
+ 2/ Mình tính giải quyết vấn đề đó bằng phương án sau: Mình sẽ đăng kí một server free( với IP tĩnh) và nhúng cái TCP server của mình lên đó. cả modul sim và máy tính của mình điều là client. TCP server chỉ có nhiệm vụ chuyện tiếp dữ liệu GPS từ modul sim về mấy tính của mình. và như vậy goole map mình sẽ nhúng vào TCP client trên máy tính của mình để hiện thị. Mình không biết là cách này có được không ? nếu được thì là sao để em nhúng cái TCP server của mình lên đó.? lúc đầu mình viết TCP server trên windown form
mong mọi giúp đỡ!

vulan1507
01-06-2013, 10:08 PM
Chào mọi người.
Chào anh long tu_người lập ra luồng thông tin này
Em đã đọc tất cả những chia sẽ của các anh nên em cũng muốn chia sẽ ít lên đây vừa làm cho topic thêm phong phú vừa nhờ các ae giúp luôn.
Chả là hiện giờ em đa làm đề tài cuối khóa về SIM908 đọc tọa độ gửi tin nhắn về điện thoại và server.
Nhưng trong quá trình làm mạch thì em gặp phải "một vấn đề" mà em mò hoài hok ra đọc sạch sẽ datasheet của SIM908 luôn rồi lang thang hoài trên mạng mà hojk ra lun nên post lên mong các ae giúp đỡ e và những người đi sau gặp biết mà tránh., đó là trong lệnh lấy tọa độ e hok sử dụng truy xuất liên tục wa chân GPS_txd mà dùng lệnh "AT+CGPSINF" lấy tọa độ THÔNG WA CHÂN GSM, nhưng đọc hiển thị lcd mà đọc hoài hok được.
===>dữa liệu về đưa ra hiện LCD sai te le luôn.
DƯới đây là phần code viết bằng CCS và phần cứng trên protues
---------------------------------------------------------------------------------------------------------
#include<16f887.h>
#fuses nowdt,put,hs,noprotect,nolvp,nodebug,nobrownout,no cpd
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=pin_c6,rcv=pin_c7,bi ts=8,stop=1)

#define pwr pin_d5
#define rs pin_d6
#define e pin_d7
#define lcd output_b

void command_write(unsigned char cmd);
void data_write(unsigned char data);
void setup_lcd();
void show(unsigned char row,unsigned char colum,char s);
void system();
void gps_lcd();
void timed_getc();

char chuoi[20],kd[11],vd[11],rec[90];
unsigned int td=0;

#INT_RDA
void receive()
{
rec[td]=getc();
td++;
}
void command_write(unsigned char cmd)
{
lcd(cmd);
output_low(rs);
output_high(e); delay_ms(5);
output_low(e); delay_ms(5);
}

void data_write(unsigned char data)
{
lcd(data);
output_high(rs);
output_high(e); delay_ms(5);
output_low(e); delay_ms(5);
}

void setup_lcd()
{
output_low(e); output_low(rs);
command_write(0x38);
command_write(0x0c);
command_write(0x01);
command_write(0x06);
}

void show(unsigned char row,unsigned char colum,char s)
{
switch(row)
{
case 1: command_write(0x80+colum);
break;
case 2: command_write(0xc0+colum);
break;
case 3: command_write(0x94+colum);
break;
case 4: command_write(0xd4+colum);
break;
}
while(*s)
{
data_write(*s); s++;
}
}

void system() //cấu hình phần cứng
{
char o,k,c,a,l;
do
{
strcpy(chuoi,"WELCOM TO GPS SIM908"); show(4,0,chuoi);
printf("at\r\n"); o=getc();k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
do
{
strcpy(chuoi,"CONFIG FORMATING..."); show(4,0,chuoi);
printf("at+cmgf=1\r\n"); o=getc(); k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
do
{
strcpy(chuoi,"CONFIG FORMATING..."); show(4,0,chuoi);
printf("at+cgpspwr=1\r\n"); o=getc(); k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
do
{
strcpy(chuoi,"CONFIG FORMATING..."); show(4,0,chuoi);
printf("at+cgpsrst=0\r\n"); o=getc(); k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
do
{
strcpy(chuoi,"CONFIG FORMATING..."); show(4,0,chuoi);
printf("at+cgpsipr=9600\r\n"); o=getc(); k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
do
{
strcpy(chuoi,"CONFIG FORMATING..."); show(4,0,chuoi);
printf("at&w\r\n"); o=getc(); k=getc();
strcpy(chuoi," "); show(4,0,chuoi);
}while((o!='O')||(k!='K'));
strcpy(chuoi,"LOADING..."); show(4,0,chuoi);
delay_ms(5000);
strcpy(chuoi," "); show(3,0,chuoi);
strcpy(chuoi," "); show(4,0,chuoi);
strcpy(chuoi,"W:");
show(3,0,chuoi);
strcpy(chuoi,"N:");
show(4,0,chuoi);
}

void gps_lcd() //lọc tọa độ
{
unsigned int vt=0,i=0;
while(rec[vt]!=',') {vt++;}
vt++;
command_write(0x99);
while(rec[vt]!=',') {kd[i]=rec[vt++]; data_write(kd[i]); i++;}
vt++; i=0;
command_write(0xd9);
while(rec[vt]!=',') {vd[i]=rec[vt++]; data_write(vd[i]); i++;}
}

void main()
{
set_tris_b(0x00); set_tris_c(0x80); set_tris_d(0x00);
port_b_pullups(0xff);
setup_lcd();
strcpy(chuoi,"DATN:UDDV_GPS_SIM908");
show(1,0,chuoi);
strcpy(chuoi,"NG_T_TAM & HA_V_QUAN");
show(2,0,chuoi);
output_high(pwr); delay_ms(1000); output_low(pwr);
system();
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
while(true)
{
printf("at+cpgsinf=0\r\n"); //lấy toại độ
gps_lcd(); td=0;
delay_ms(5000);
}
}
-------------------------------------------------------------------------------------------------------
phần cứng:
- thì em mua Breakout nên có sắn đưa chân ra lun rùi e chỉ sắn sài thui.
http://www.mediafire.com/download/eugne5vkl6ku05e/HARDWARE.png
Rất mong mọi người giúp đỡ.
Em chân thành cảm ơn

anhcaojiji
28-06-2013, 11:58 AM
Rất cám ơn bạn longtu

thienlong1989
21-07-2013, 05:44 PM
Em gặp hiện tượng là module sim908 sau một thời gian hoạt động bình thường thì không nhận được tin nhắn nữa mặc dù call đến vẫn thấy connect, đèn led nháy đúng, và khi tháo sim đó ra cho vào máy mobile phone bình thường thì lại nhận được. Nếu đổi sim khác thì sẽ khắc phục được nhưng một thời gian sau gặp hiện tượng trên. Mọi người có lời khuyên gì không ah?

thohuynhvan
11-09-2013, 10:55 AM
Mọi người cho em hỏi địa chỉ mua sim908 evb kit với!
Em xin cảm ơn trước!

thohuynhvan
13-09-2013, 07:21 PM
ai giúp em với tháng hơn tháng nữa là báo cáo đồ án rồi mà em vẫn chưa mua được module sim lo quá các bác ơi

greenfield
18-09-2013, 11:07 AM
ban co the mua SIM 300CZ de thay the deu duoc.

haiduongVui
18-09-2013, 12:32 PM
chào các bạn!
mình đang làm đồ án về mạch định vị GPS hiển thị tọa độ lên LCD và giao tiếp với máy tính. bạn nào đã từng làm đồ án liên quan tới cái này thì để lại module và phần cứng ccho mình nhé giá cả thỏa thuận :)
mình ở HN. có gì thì liên hệ với mình nhé sđt : 0985230460
cảm ơn đã đọc tin! ^^

hoangsangbk09
20-09-2013, 01:16 AM
Em gặp hiện tượng là module sim908 sau một thời gian hoạt động bình thường thì không nhận được tin nhắn nữa mặc dù call đến vẫn thấy connect, đèn led nháy đúng, và khi tháo sim đó ra cho vào máy mobile phone bình thường thì lại nhận được. Nếu đổi sim khác thì sẽ khắc phục được nhưng một thời gian sau gặp hiện tượng trên. Mọi người có lời khuyên gì không ah?
Bởi vì trên SIM của ta chỉ có thể chứa được một số lượng tin nhắn hạn chế( mình nhớ không lầm hình như là khoản 50 tin thì phải. Khi số lượng tin nhắn chứa đầy ngăn xếp thì SIM sẽ không thể nhận được thêm tin mới được. do đó trong code config ta phải thiết lập cho nó tự động xóa ngăn xếp cũ.

mrtamtran
08-10-2013, 05:27 PM
chào các bạn!
mình đang làm đồ án về mạch định vị GPS hiển thị tọa độ lên LCD và giao tiếp với máy tính. bạn nào đã từng làm đồ án liên quan tới cái này thì để lại module và phần cứng ccho mình nhé giá cả thỏa thuận :)
mình ở HN. có gì thì liên hệ với mình nhé sđt : 0985230460
cảm ơn đã đọc tin! ^^

Chào bạn ! Mình có 1 bộ kít mua từ Hlab cách đây 2 tháng để học tập và tìm hiểu nghiên cứu làm đồ án.
Thông tin về bộ kít bạn có thể tham khảo tại đây

http://titans.com.vn/index.php?option=com_virtuemart&page=shop.product_details&flypage=flypage.tpl&product_id=102&lang=vi&vmcchk=1&Itemid=30

Khi mua thì bạn có các hướng dẫn sử dụng bộ kít 1 cách chi tiết và code demo cho sản phẩm. Ngoài ra, sau khi mua và nghiên cứu sản phẩm trên thì trong quá trình nghiên cứu mình có phát triển được 1 số code mở rộng cho bộ kít. Nếu bạn có hứng thú và muốn tham khảo thì mình sẵn sàng hỗ trợ.
Hiện tại mình đã bảo vệ xong và có nhu cầu nhượng lại bộ kít trên. Nếu bạn còn có nhu cầu muốn tìm hiểu và nghiên cứu thì liên lạc với mình .
Số điện thoại của mình : 01636.567.998

Địa chỉ email: tranminhtam1102@gmail.com
Mình ở Hà nội bạn nhé !

truong1993
29-10-2013, 11:26 PM
hiện e đang làm cái đề tài về điều khiển thiết bị điện bằng sim 900.các a cho e biết chân kết nối của 300cz và 900 có khác j ko a.liên tục cho e hỏi là sim300cz và 900 có thể dùng code chung được không ạ.e đang rất cần tài liệu về đề tài này.mong được giúp đỡ.mail của e.xuantruongdt2@gmail.com

diendanxxx
22-11-2013, 11:13 PM
Vohinh2052,

Bạn sai rồi, không phải tôi tiết mà không đưa lên phần kết nối với MCU. Bạn có thể mỗi bài viết của tôi đều rõ ràng và chi tiết không?...Nếu tiết, tôi đã không post bài lên đây.

Quan điểm của tôi là không có gi gọi là bí mất cả, kiến thức thôi mà. Cần phải cho đi để nhận về nhiều hơn. Rất nhiều bạn trong diễn dàn này cũng email hỏi riêng tôi, tôi đều nói như vậy, rằng các bạn sau khi hoàn thành ứng dụng/đồ án của mình thì hãy chia sẽ lên đây cho các bạn đi sau. Tôi cho rằng, người đi sau có thể kế thừa những gì người đi trước đã làm, rồi từ đó phát triển tiếp cho hoàn thiện hơn...nhưng phải nhớ hãy cùng chia sẽ để cùng nhau tiến bộ.

Trở lại với câu hỏi của bạn: Phần khó nhất là so đồ kết nối cho SIM908 thôi, còn về phần MCU, tùy vào ứng dụng của từng người, từng sãn phẩm...sẽ có 1 sơ đồ kết nối riêng, đâu có ai giống ai được bạn. Bạn là người làm ứng dụng, bạn cần tìm hiểu và chọn lựa MCU cũng như kết nối phần cứng tôi thiểu cho MCU chạy. Hơn nữa, ở đây không phải là luồng nối về MCU.

Trong các bài đã post, tôi cũng nói là việc giao tiếp giữa Sim908 và MCU qua bộ UART(chân TX, RX). Chú ý GPS_TX/RX(Vcc 3.3V) và MCU_TX/RX(Vcc=5V)...(xem lại các bài đã post).

Bạn đã quen với Pic16F887 rồi, tôi cho rằng bạn hoàn toàn có thể sử dụng 1 con PIC khác vì nó cũng tương tự như PIC16F877 mà thôi.
PIC16F877 chỉ có 1 bộ UART, theo tôi sẽ khó khăn cho bạn khi làm với Sim908 đấy. Vì khi bắt đầu làm với SIm908, bạn cần 1 bộ UART giao tiếp với GMS của Sim908 rồi, bạn cần thêm 1 bộ nữa để có thể test/gưi lệnh AT/upload firmware(sử dụng bootloader CCC qua Siow.exe...) rất tiện lợi và nhanh chóng. Hơn nữa giá thành 1 con PIC có 2 bộ UART có thể còn rẽ hơn, nhỏ gọn hơn 16F877 đấy...Tôi sử dung: 18F24K22.

Hiển thị lên LCD: Các chân LCD giao tiếp với chân GPIO của MCU thôi, khong có gì đặt biệt cả. Khi bạn đã lấy được thông tin về tọa độ, bạn có thể hiển thị lên LCD rồi. Cũng chỉ là tương tự như việc hiển thị 1 số đã có sẵn lên LCD mà thôi.

Thân,

thừa kế và phát triển !

greatnew1992
27-11-2013, 01:21 AM
ai giải thích hộ mình đoạn code ngắt nhận dữ liệu này được không
#int_rda
void int_uart(void)
{
char c;
c=getc();
switch(c)
{
case 10: index=0; // bat ki tu LF
break;
case 13: check_sms(); // bat ki tu CR
break;
default:
{
buffer_gsm[index]=c;
index++;
}
break;
}
}

greatnew1992
02-12-2013, 10:07 AM
minh k dùng rs232 để giao tiếp giữa mcu và moduléim 908 có đc không vậy,không dùng và có dùng thì code có gì khác nhau.ai giup minh với

tranngocthe
22-12-2013, 03:39 PM
hoangsangbk09 có thể chỉ mình cách xây dựng chương trình để hiển thị tọa độ lên google map như bạn đã làm không ? cảm ơn !

leanhdung90
24-12-2013, 03:15 PM
Mình tạo luồn này để nói về Sim908, cách thiết kế phần cứng cũng cách sử dụng.

Các bạn nếu quan tâm đến GPS module thôi thì đọc bài viết này của mình:
http://www.picvietnam.com/forum/showthread.php?p=54876

Sau thời gian tìm hiểu em đã viết chương trình giám sát nhiệt độ và điều khiển thiết bị nhưng không biết bị lỗi gì mà nó không chạy. Anh có thể xem chương trình của em rồi tìm nguyên nhân giúp em với. Gần đến ngày nộp lắm rồi. Em dùng module sim900d giao tiếp với vdk 16f877. điều khiển led ra ở chân C0 C1.
Đây là code của em:
#include <16f877a.h>
#device PIC16F877A*=16 ADC=10
#include <string.h>
#include <lcd_lib_4bit.c>
#fuses nowdt,hs,noput,noprotect,nodebug,nobrownout,nolvp, nocpd,nowrt
#use delay(clock=12000000)
#use fast_io(b)
#use fast_io(e)
#define Led0 PIN_C0
#define Led1 PIN_C1
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)
char chuoi[90],noidung_sms[20],tu_khoa[20];
int8 dem,i,j,k,new_sms,z,vitri,x,y,adc,f;
/*********** Khai bao ngat nhan noi tiep ***********/
#INT_RDA
void ngat()
{
chuoi[dem]=getc();
if(chuoi[dem]=='')
{
z++;
if(z==2)new_sms=1;
}
dem++;
}
void xuly();
void xuly_sms();
void gsm_config();
void xoa();
void nhiet_do();
void main()
{
enable_interrupts(global);//Cho phep ngat toan cuc
enable_interrupts(int_rda);//Cho phep ngat nhan noi tiep
setup_adc(ADC_clock_internal); // thiet lap tan so lay mau ADC
setup_adc_ports(AN0); // ngo vao A0
set_adc_channel(0); // chan doc gia tri adc bang read_adc()
portd=1;delay_ms(1000);portd=0;delay_ms(1000); //1 led sang
LCD_init(); //khoi tao LCD
Printf(LCD_putchar," DO AN ");
LCD_putcmd(0xC0);Printf(LCD_putchar,"Dang cau hinh ");delay_ms(1000);
gsm_config();//goi chuong trinh con cau hinh Module GSM
LCD_putcmd(0xC0);Printf(LCD_putchar,"Cau hinh xong ");delay_ms(2000);
new_sms=0;
z=0;
while(1)
{
signed int16 x;
signed int16 adc;
int16 y=70; // nhiet do bao dong
x=read_ADC();
adc=x/2; // do C
f=adc*1.8+32; // do F
LCD_putcmd(0x01);// xoa man hinh chi thi
LCD_putcmd(0x80);Printf(LCD_putchar," Nhiet do phong ");
LCD_putcmd(0xC0);Printf(LCD_putchar,"%u",adc);LCD_putcmd(0xC0+4);Printf(LCD_putchar,"C");
LCD_putcmd(0xC0+8);Printf(LCD_putchar,"%u",f);LCD_putcmd(0xC0+12);Printf(LCD_putchar,"F");
delay_ms(500);
if(new_sms==1)
{
LCD_putcmd(0x01);// xoa man hinh chi thi
LCD_putcmd(0x80); Printf(LCD_putchar,"Co tin nhan moi ");
LCD_putcmd(0xC0); Printf(LCD_putchar,"Dang xu ly");
xoa();
puts("at+cmgr=1");
delay_ms(500);
xuly_sms();
LCD_putcmd(0x01);// xoa man hinh chi thi
xuly();
trang_thai();
nhiet_do();
delay_ms(200);
puts("at+cmgd=1");
delay_ms(500);
xoa();
delay_ms(500);
}
if(adc>=y) // kiem tra nhiet do cao
{
LCD_putcmd(0x01);// xoa man hinh chi thi
LCD_putcmd(0x80);Printf(LCD_putchar," Nhiet do cao ! ");
LCD_putcmd(0xC0);Printf(LCD_putchar,"Dang goi dien ");
printf("ATD01674577163;");
putc(13);
delay_ms(20000);
puts("ATH");
delay_ms(1000);
printf("AT+CMGS=\"01675491246\"\r\n");
delay_ms(500);
printf("Nhiet do luc nay la:\r\n %u",adc); // gui nhiet do ve may
delay_ms(500);
printf("do C");
delay_ms(500);
putc(26); // ctrl +Z
delay_ms(500);
}

}
void gsm_config()
{
delay_ms(2000);
printf("at\r\n");
delay_ms(500);
printf("at\r\n");
delay_ms(500);
printf("at\r\n");
delay_ms(500);
printf("at\r\n");
delay_ms(500);
printf("ate0\r\n");
delay_ms(500);
printf("at+cmgf=1\r\n");
delay_ms(500);
printf("at+cmgd=1\r\n");
delay_ms(500);
xoa();
delay_ms(500);
}
//+++++++++++++++ xoa +++++++++++++++++//
void xoa()
{
new_sms=0;
z=0;
dem=0;
y=0;
vitri=0;
for(i=0;i<=90;i++) //Xoa chuoi[]
{chuoi=0;}
for(i=0;i<=20;i++) //Xoa noidung_sms[]
{noidung_sms=0;}
}
//+++++++++++++++++++++ xu ly tin nhan ++++++++++++++//
void xuly_sms()
{
y=0;
k=0;
for(i=0;i<=strlen(chuoi);i++)
{
if(chuoi=='\n')
{
k++;
if(k==2)vitri=i+1 ;
}
}
for(x=vitri;x<strlen(chuoi)-8;x++)
{noidung_sms[y]=chuoi[x];
y++ ; // lay noi dung
}
}
//+++++++++++++++ XU LY va DIEU KHIEN +++++++++++++++++++//
void xuly()
{
strcpy(tu_khoa,"On1");
if(strcmp(tu_khoa,noidung_sms)==0)
{
output_bit(Led1,1);
LCD_putcmd(0x80); Printf(LCD_putchar,"Den 1 da mo ");
LCD_putcmd(0xC0); Printf(LCD_putchar,"Gui sms p.hoi");
printf("AT+CMGS=\"01675491246\"\r\n");
delay_ms(500);
printf("den 1 da mo");
delay_ms(500);
putc(26); // ctrl +Z
delay_ms(500);
}
strcpy(tu_khoa,"Off1");
if(strcmp(tu_khoa,noidung_sms)==0)
{
output_bit(Led1,0);
LCD_putcmd(0x80); Printf(LCD_putchar,"Den 1 da tat ");
LCD_putcmd(0xC0); Printf(L CD_putchar,"Gui sms p.hoi");
printf("AT+CMGS=\"01675491246\"\r\n");
delay_ms(500);
printf("den 1 da tat");
delay_ms(500);
putc(26); // ctrl +Z
delay_ms(500);
}
strcpy(tu_khoa,"On2");
if(strcmp(tu_khoa,noidung_sms)==0)
{
output_bit(Led2,1);
LCD_putcmd(0x80); Printf(LCD_putchar,"Den 2 da mo ");
LCD_putcmd(0xC0); Printf(LCD_putchar,"Gui sms p.hoi");
printf("AT+CMGS=\"01675491246\"\r\n");
delay_ms(500);
printf("den 2 da mo");
delay_ms(500);
putc(26); // ctrl +Z
delay_ms(500);
}
strcpy(tu_khoa,"Off2");
if(strcmp(tu_khoa,noidung_sms)==0)
{
output_bit(Led2,0);
LCD_putcmd(0x80); Printf(LCD_putchar,"Den 2 da tat ");
LCD_putcmd(0xC0); Printf(LCD_putchar,"Gui sms p.hoi");
printf("AT+CMGS=\"01675491246\"\r\n");
delay_ms(500);
printf("den 2 da tat");
delay_ms(500);
putc(26); // ctrl +Z
delay_ms(500);
}
}
void nhiet_do()
{
strcpy(tu_khoa,"nhietdo");
if(strcmp(tu_khoa,noidung_sms)==0)
{
LCD_putcmd(0x80); Printf(LCD_putchar,"Kiem tra nhiet ");
LCD_putcmd(0xC0); Printf(LCD_putchar,"do ve dt ");
printf("AT+CMGS=\"01675491246\"\r\n");
delay_ms(500);
printf("Nhiet do luc nay la:\r\n %u",adc); // gui nhiet do ve may
delay_ms(500);
printf("do C");
delay_ms(500);
putc(26); // ctrl +Z
delay_ms(500);
}
}

longtu
31-12-2013, 09:54 AM
Lâu quá không ghé thăm diễn dàn. Tuy nhiên, thấy các bạn trao đổi rất nhiệt tình về luồng này của mình.

Cám ơn các bạn. Hy vọng các bạn nhanh chóng giải quyết được vấn đề của mình.

Thân.

vannguyen4491
24-01-2014, 06:10 PM
Các anh ơi cho em hỏi em đang viết 1 chương trình dùng pic 16f877a để thưc hiện lệnh gọi lên module sim nhưng sao mãi không, các anh xem code em viết đúng không, mong các anh giúp đỡ em
#include <16f877a.h>

#device *=16 adc=10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=12000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#include <lcd.h>
void main()
{
int8 str[20];
LCD_Init();
delay_ms(10);
LCD_Gotoxy(1,0);
sprintf(str,"gps");
LCD_Puts(str);
delay_ms(1000);
LCD_Clear();
LCD_Gotoxy(1,0);
sprintf(str,"goidien");
LCD_Puts(str);
delay_ms(1000);
LCD_Clear();
while(1)
{
printf("ATD090......;");
putc(13);
delay_ms(20000);
}
}

vanhung4050
27-03-2014, 12:31 PM
Chào các anh ,em hiện đang gặp khúc mắc ở chỗ gửi tin nhắn cho nhiều số điện thoại và nội dung tin nhắn muốn chèn 1 dữ liệu (chẳng hạn nhiệt độ) vào thì làm cách nào ạ,em đã đọc kỹ trong manual sim nhưng chưa tìm ra cách
Chân thành cảm ơn các anh

laiquangtuyen
27-03-2014, 09:29 PM
Chào các anh ,em hiện đang gặp khúc mắc ở chỗ gửi tin nhắn cho nhiều số điện thoại và nội dung tin nhắn muốn chèn 1 dữ liệu (chẳng hạn nhiệt độ) vào thì làm cách nào ạ,em đã đọc kỹ trong manual sim nhưng chưa tìm ra cách
Chân thành cảm ơn các anh

Bạn đã làm được cái hàm gửi tin nhắn chạy chưa?

vanhung4050
28-03-2014, 10:32 AM
Bạn đã làm được cái hàm gửi tin nhắn chạy chưa?

Mình làm nó gửi tin nhắn được rồi bạn,chỉ chưa biết cách gửi tin nhắn đến nhiều người (chẳng hạn 5) và chèn dữ liệu nhiệt độ vào thôi !
Bạn Tuyên này hồi trước học bách khoa chung với mình thì phải ,khóa 2005

vanhung4050
31-03-2014, 02:51 PM
Vẫn chưa làm được và đang cần cao nhân giúp đỡ ạ!

daotuanquang91
23-04-2014, 10:30 AM
Xin chào cả nhà.
Mình đang test 1 con SIM908 của ATC
Đăng gặp 1 vấn đề về SIM Card
Khi khởi động nên thì báo không có SIM
ÿÿ
RDY
+CPIN: NOT INSERTED
+CFUN: 1
GPS Ready

AT
OK

Mình sử dụng nguồn điện 4V 3A (LM2596S)
Đo điện áp tại chân SIM_VDD thì bằng 0. Trong khi SIM bình thường hoạt động thì chân này phải là 1.8V hoặc 3V.
Đã thăm quan nhiều diễn đàn của tây, nhưng họi đều nói lại phần nguồn thiếu, hoặc phần cứng không đúng. Nhưng đã kiểm tra tất cả đều OK
Mong các bạn tham khảo kiểm tra hộ

ngockonvang
25-04-2014, 11:16 PM
Nguồn sử dụng:
- Chỉ sử dụng 1 nguồn duy nhất: VBAT= 3.2 - 4.8V. Dòng đỉnh của nguồn này trong quá trình trao đổi thông tin(call, send SMS...) có thể lên tới 2A, vì vậy khi thiết kế nguồn VBAT cần đảm bảo nguồn đủ khả năng cung cấp dòng lên tới 2A.
- Khi VBAT xuống dưới 3.1V, module sẽ tự động ngắt(tắt).
- Một tụ điện Tantalum 100uF có ESR thấp(ESR=<0.7Ohm) được đề nghị thêm vào để tăng sức mạnh cho nguồn VBAT. Tụ này để để gần các chân nguồn của Sim908(càng gần càng tốt).

nhutridt3
22-05-2014, 03:50 AM
Mình tạo luồn này để nói về Sim908, cách thiết kế phần cứng cũng cách sử dụng.

Các bạn nếu quan tâm đến GPS module thôi thì đọc bài viết này của mình:
http://www.picvietnam.com/forum/showthread.php?p=54876
Anh longtu, em đã đọc hết bài viết của anh trong luồn này về sim 908, em cũng đang làm về module sim908, về GSM thì e đã làm ok, còn về GPS em test không được, em kiểm tra bằng terminal, thông qua mạch giao tiếp máy tính chuẩn USB dùng atmega8, em đã cắm chéo Rx,Tx của 2 bên, sử dngj nguồn pin điện thoại và đã kích hoạt module sim 908 chạy, tuy nhiên khi sử dụng các lệnh test của ATcommand của GPS thì không có báo hiệu gì. Em mong anh giúp đỡ.

jupino1
16-01-2015, 03:27 PM
mình cũng gặp vấn đề giống bạn nhattri mà không biết là lỗi gì... có ai giúp với. Cảm ơn nhiều

tinvtuvn
22-06-2015, 04:27 PM
upupup
các bạn cho mình hỏi là kit EVB của mình có 2 port rs232 (GSM + GPS) thì mình muốn giao tiếp vối sim908 thì mình giao tiêp qua port nào và baudrate là bao nhiêu??
mình cảm ơn

gamesomeboy
11-01-2016, 04:59 PM
2012 và bây giờ là 2016 muốn hỏi lại các tiền bối. :))
Em muốn nhận tín hiệu từ vệ tinh nhanh nhất, chính xác nhất và ổn định nhất thì nên dùng sim908 hay UBLOX NEO 6M VKEIL hay một loại nào khác ạ? Giá cả không thành vấn đề ạ. Em xin cảm ơn..