PhuPOP gửi vào
- 38979 lượt xem
Lời ngõ
Mình viết tiếp bài hướng dẫn cơ bản về modul sim900 và arduino. Bài viết hơi muộn do tuần rồi công việc nhiều mình không có thời gian viết bài cũng như trả lời bình luận. Có 1 số inbox đến và mình cũng không có thời nghiên cứu để trả lời và giải đáp. Mục đích của mình ở những bài viết trên đây là muốn chia sẻ cho các bạn quan tâm tới chủ đề này để các bạn dựa vào đó để tìm hiểu và phát triển ứng dụng vào từng project riêng của các bạn. Mình không thể chỉ chi tiết cho các bạn các bước từ việc nối dây đến code hay sơ đồ mạch lẫn mạch in ... vì thế mong các bạn nên tự tìm hiểu trước khi hỏi để 2 bên không mất thời gian. Bài viết mình có thể chưa hoàn thiện có gì sai sót các bạn để lại comment góp ý để mình hoàn thiện thêm nhé .
Vào đề
Trong bài viết này mình chia sẻ nốt cách điều khiển thiết bị qua SMS (phần này tương đối dễ) Và nói sơ qua về nền tảng Processcing để các bạn tìm hiểu trước khỏi bõ ngỡ trong bài viết sau, 1 số bạn biết rồi thì có thể bỏ qua.
Phần nối dây và sử dụng thư viện mình nói trong 2 bài trước các bạn xem lại nếu không nhớ
Bài 1: Thư viện sim900 cho arduino
Code phần điều khiển led bằng sms
#include "SIM900.h" #include <SoftwareSerial.h> #include "sms.h" SMSGSM sms; int numdata; boolean started = false; //trạng thái modul sim char smstext[160]; // nội dung tin nhắn char number[20]; // số điện thoại format theo định dạng quốc tế void setup(){ Serial.begin(9600); Serial.println("Gui va nhan tin nhan"); if (gsm.begin(2400)){ Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); if(started){ sms.SendSMS("+84982488032", "Online"); } pinMode(13, OUTPUT); digitalWrite(13, LOW); } void loop() { if(started){ char pos; //địa chỉ bộ nhớ sim (sim luu tối đa 40 sms nên max pos = 40) pos = sms.IsSMSPresent(SMS_UNREAD); // kiểm tra tin nhắn chưa đọc trong bộ nhớ //hàm này sẽ trả về giá trị trong khoảng từ 0-40 if((int)pos){//nêu có tin nhắn chưa đọc if(sms.GetSMS(pos, number, smstext, 160)){ Serial.print("So dien thoại: "); Serial.println(number); Serial.print("Noi dung tin nhan: "); Serial.println(smstext); if(strcmp(smstext,"LEDON")==0){//so sánh 2 chuỗi digitalWrite(13, HIGH); Serial.println("Bat led"); } else { Serial.println("Co tin nhan den nhung sai cu phap"); } } sms.DeleteSMS(byte(pos));//xóa sms vừa nhận } delay(1000); } }
Ngôn ngữ Processing
Processing là một ngôn ngữ lập trình mã mở, thiết kế với mục đích lập trình đồ họa trên nhiều môi trường khác nhau: Linux, Window, Mac, Android, và cả Web. Ngôn ngữ được Casey Reas và Benjamin Fry của phòng thí nghiệm đa phương tiện đại học MIT sáng tạo, nên nó cũng thích hợp cho học tập, nghiên cứu những khái niệm cơ sở của đồ họa máy tính. Dự án processing bắt đầu năm 2001, xây dựng trên ngôn ngữ Java, nhưng sử dụng cú pháp đơn giản hơn.
Mình sử dụng ngôn ngữ processing để code phần mềm điều khiển. Nó tương đối dễ sử dụng và nhiều thư viện mở rộng. Yêu cầu các bạn cần có kiến thức java cơ bản.
Trang chủ Processing: http://www.processing.org/
Các bạn tìm hiểu trước tại trang web processing.
Bài sau mình sẽ hướng chia sẻ cách viết giao diện điều khiển, giao tiếp giữa arduino và giao diện processing trên máy tính qua USB, gửi nhận hiển thị dữa liệu ...
Các bạn thấy hữu ích thì vote và like cho mình để có động lực viết tiếp. Cảm ơn các bạn đã đọc bài!
Chúc các bạn thành công!