30/09/2018, 19:53

[Hỏi Android] Giải pháp cho SmartPhone giao tiếp với Phần cứng thông qua WIFI

Chào mọi người!

Mình hiện tại là sinh viên ngành điện tử đang làm luận văn, đề tài của mình là : “Thiết kế hệ thống nhà thông minh”.

Mình xin nói sơ qua đề tài của mình gồm 2 phần chính:

Phần 1 là bộ xử lý điều khiển giám sát thiết bị trong nhà. Gồm có 1 kit Stm32f4 Discovery làm bộ điều khiển trung tâm và các sensor… Để có thể giao tiếp với mạng được thì mình có kết nối với 1 module wifi ESP8266 vai trò như 1 client trong mạng WIFI.

Phần 2 là thiết kế app Android làm User Interface để giao tiếp với Phần 1 thông qua WIFI.
Vấn đề của mình là ở phần thiết kế App Android. Phần thiết kế giao diện UI thì mình có thể học được trên mạng nhưng làm sao để truy xuất và gửi dữ liệu ( vd như mình nhấn nút thì nó gửi data cho 1 thiết bị có IP nào đó - Phần 1, mỗi giây cập nhật data từ Phần 1) từ điện thoại Android cho Phần 1 (vai trò như 1 client trong mạng, có địa chỉ IP rõ ràng) thì mình bí lù :S.

Mong nhận được ý kiến chỉ giáo từ các bạn :S.

Itachi Citus viết 22:01 ngày 30/09/2018

Mấy cái này mình không rành lắm nhưng thông thường kiến trúc nó sẽ có 4 phần:

(kiến trúc cơ bản của Internet of Things cho smart home).

Phần 1 giống của bác, phần 2 là gateway, bản chất nó là một cái máy tính trung gian quản lý các thiết bị và giao tiếp với server, phần 3 là server, phần 4 là client - smartphone đóng vai trò nhận lệnh của người dùng và truyền đến server.

Trong trường hợp không muốn có “internet” thì cái máy tính gateway sẽ đóng vai trò tương tự server, nhận lệnh từ client và chuyển lệnh đến các thiết bị ở phẩn 1.

Anh Tuấn Đặng viết 22:00 ngày 30/09/2018

Cảm ơn câu trả lời của bác :S.
Đúng như tài liệu đó nói là 4 phần, nhưng để cho đơn giản hoá, mình không phải mất công đkí 1 server ở ngoài mà dùng RAM của chip điều khiển để lưu dữ liệu luôn. Nên kit STM32f4 + Module WIFI của mình đóng vai trò là cả 3 phần như bác nói luôn :D. Vai trò như là 1 client trong mạng WIFI vậy, có 1 địa chỉ IP riêng do Router cấp. Và Phần còn lại là Điện thoại Android của mình ( khi đó đã đăng nhập vào cùng 1 mạng WIFI) sẽ truy xuất và gửi data cho Kit. Như là mô hình của 2 thiết bị giao tiếp trong cùng 1 mạng LAN vậy.

Itachi Citus viết 22:02 ngày 30/09/2018

Tại theo bạn nói thì làm nhà thông minh, mà thông minh thì nó phải có khả năng phân tích thống kê này nọ chứ nhỉ, lúc đó vẫn cần có server. Với lại “mỗi giây cập nhật data” thì với android là hơi khó chịu, có server chạy 24/24 sẽ dễ hơn.

Anh Tuấn Đặng viết 21:53 ngày 30/09/2018

Cảm ơn phản hồi của bác :D.
Hiện tại thì đề tài của mình chưa cần làm thêm tính năng thống kê cho nhà thông minh.
Còn cái phần 1 của mình là Kit STM + Module WIFI đóng vai trò như là 1 Server luôn đó, vì STM có RAM để lưu trữ data, và có thể gửi data khi có yêu cầu từ 1 thiết bị khác trong mạng LAN. Đề tài của mình chỉ lưu data từ các cảm biến và thiết bị trong nhà như đèn, quạt… nên không cần nhiều không gian lưu trữ, do đó mình không đkí Server ở ngoài. Khi đưa vào ứng dụng thì có thể Kit STM sẽ chạy 24/24, nếu cần lưu trữ nhiều và tốc độ truy xuất data nhanh như truyền tải và save 1 video nào đó thì mình sẽ tính đến việc đki Server ngoài

Anh Tuấn Đặng viết 22:06 ngày 30/09/2018

Có ai không chỉ giúp mình với :(((…

Phan Hoàng viết 21:54 ngày 30/09/2018

Stm32f4 Discovery

Nếu con này Stm32f4 Discovery không có khả năng lập trình thì chắc bạn phải sắm một con máy tính mini (RasperyPi, IntelNUC, …) và viết phần webservice cho app android này (truy xuất dữ liệu, thu thập dữ liệu từ các sensor, …) và cài trên con PC mini này. Tuy nhiên, cách làm này bạn sẽ không điều khiển remote được (ví dụ như ngồi ở cơ quan ra lệnh cho bật bình nóng lạnh hay nấu cơm)

Còn nếu chỉ cần gửi data để ra lệnh bật tắt thì chắc con kit này đảm nhiệm được việc đó (kiểu gì mà nó chẳng expose API ra để bạn gửi lên). Từ android, bạn gửi request lên là được. Ngoài ra, mình nghĩ nếu yêu cầu của bạn chỉ là nhận data realtime thì con kit này chắc chắn cũng có Interface luôn.

Bạn đang làm cho bên nào vậy? Bộ kit này ở đâu bán nhỉ? (thú thật là mình cũng chưa từng làm smarthome ^^)
http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419?sc=internet/evalboard/product/252419.jsp
Theo link này thì bộ kit này hoàn toàn dev được mà.

minh tran viết 22:02 ngày 30/09/2018

ở phía stm thì bác dùng AT command để kết nối với esp8266. Connect được với mạng thì bên android thì bác mở ket nối 1 socket với IP, Port của STM rồi bác send request về phía server để lấy data về.

Anh Tuấn Đặng viết 21:55 ngày 30/09/2018

Cảm ơn bác ^^, dựa theo gợi ý của bác mình đã send được request từ android cho stm rồi . Nhưng bây giờ đang phát sinh một vấn đề là IP của ESP8266 là động do router nhà mình cấp, nên mình đang tìm cách chuyển sang IP tĩnh để ko phải sửa code mỗi lần kết nối nó lại với nhau.

Anh Tuấn Đặng viết 21:55 ngày 30/09/2018

Cảm ơn bạn đã gợi ý mình đang là sv ngành Điện tử thôi chưa có đi làm, hy vọng ra trường trong kỳ này để đc xin việc làm haha :)). Bộ kit bạn hỏi là STM32F4 Discovery phải ko, có nhiều chỗ bán lắm bạn thử tham khảo link này xem
http://hshop.vn/products/kit-stm32f4-discovery-armcortex-m4-dsp-core

thegioiic.com

STM32F4-Discovery Cortex-M4 Kit

STM32F4 DISCOVERY (ARM Cortex M4 + DSP Core)


http://www.tme.vn/product.aspx?id=1856#page=pro_info

Dang Ngoc Vu viết 21:55 ngày 30/09/2018

em cũng mới làm như bác…có thể cho em xin cái code project được không ạ? em cũng đang tìm hiểu mà lại không có hướng,…xin code để em biết hướng đi thôi!

Văn Dương viết 22:00 ngày 30/09/2018

Sao cậu không cắm trực tiếp cái Kit vào Moderm luôn ?
Còn không thì việc đầu tiên là kết nối cái Kit vào moderm đã.

Dang Ngoc Vu viết 21:58 ngày 30/09/2018

em cũng mới làm như bác…có thể cho em xin cái code project được không ạ? em cũng đang tìm hiểu mà lại không có hướng,…xin code để em biết hướng đi thôi! em dang lam tren keil-C

Bài liên quan
0