Hướng Dẫn Sử Dụng INut Cảm Biến Với Module RFID MFRC-522 Và Servo Qua Internet Và Thẻ RFID RMD8800.

13/04/2021
huong-dan-su-dung-inut-cam-bien-voi-module-rfid-mfrc-522-va-servo-qua-internet-v

Để điều khiển các thiết bị và đồng bộ dữ liệu nhanh chóng trên internet bạn cần làm gì?

iNut cảm biết sẽ giải quyết tất cả việc này giúp bạn. Hôm nay tụi mình sẽ cùng bạn làm một dự án nhỏ để ứng dụng trong việc đóng mở cửa qua internet và thẻ RFID nha, lần này mình sẽ làm bản V1 là sử dụng Servo trong ứng dụng đóng-mở cửa, lần sau mình sẽ làm bản V2 bằng khóa chốt điện DC12V (hoặc DC24V) LY-03 nha.

I. Những Thứ Bạn Cần chuẩn Bị?

  • Một quỹ thời gian khoảng 20-30 phút là đủ.
  • Một ly nước/chai nước ướp lạnh.
  • Một tinh thần ham học hỏi và sáng tạo.
  • Còn chần chờ gì nữa,chúng ta cùng làm thôi nào.

Phần Cứng

Cách Nối Dây

B1: Lắp INut Cảm Biến lên board Arduino UNO

B2: Kết Nối Servo, module RFID vào INut Cảm Biến theo sơ đồ sau:

Servo

Module RFID

INut Cảm Biến

Cam

 

3

Đỏ

 

5V

Nâu

GND

GND

 

3.3V

3.3V

 

RST

9

 

SDA(SS)

10

 

MOSI

11

 

MISO

12

 

SCK

13

Phần Mềm

  • Trên điện thoại di động:
    • iNut - Công tắc wifi (các bạn search trong apple store hoặc google play từ khóa inut là ra). Tải về trên Apple Store, tải về ở Google Play.
  • Trên máy tính:

Nếu bạn chưa biết,tham khảo bài viết này

II. Cài Đặt Khác

  • Cài Đặt Mạng Cho INut Cảm Biến: nếu bạn là người lần đầu tiên tiếp xúc với INut Cảm Biến, tham khảobài viết này nhé(bạn nào đã tiếp xúc rồi có thể bỏ qua bước này nhe)
  • Cài Đặt Chương Trình Kiểm Thử INut Cảm Biến: tại đây

III - Lập Trình

Bạn cần chuẩn bị thư viện sau:

Code Arduino:

  1. #include <SPI.h>
  2. #include <MFRC522.h>
  3. #include <Servo.h>
  4. #include <iNut.h>
  5.  
  6. iNut sensor;
  7.  
  8. #define SS_PIN 10
  9. #define RST_PIN 9
  10. MFRC522 mfrc522(SS_PIN, RST_PIN); // Tạo MFRC522.
  11. Servo myServo; //Đặt tên cho servo là myServo.
  12.  
  13. void setup()
  14. {
  15. ​Serial.begin(9600); // mở seria
  16. ​SPI.begin(); // Khởi tạo SPI bu
  17. ​mfrc522.PCD_Init(); // Khởi tạo MFRC52
  18. ​myServo.attach(3); //servo pi
  19. ​myServo.write(0); // góc ban đầu của servo là 0 độ,mặc định là cửa luôn đóng
  20. ​sensor.setup(1);// mở 1 luồng cảm biế
  21. ​Serial.println("Moi Ban Dat The De Kiem Tra:.....")
  22. ​sensor.addCommand("Servo",servoFunction)
  23. }
  24.  
  25. void servoFunction()
  26. {
  27. ​char *arg1 = sensor.next()
  28. ​Serial.println(arg1)
  29. ​if (*arg1 == NULL
  30. ​return
  31. ​if(strcmp(arg1,"1") == 0) // giá trị gửi bằng 1 thì thực hiện đoạn lện
  32. ​myServo.write(90); //cửa mở 90 độ (servo quay một góc 90 độ
  33. ​Serial.println(F("Cua Da Mo"))
  34. ​sensor.setValue(0,1)
  35. ​else if(strcmp (arg1,"0") == 0) // giá trị gửi bằng 0 thì thực hiện đoạn lện
  36. ​myServo.write(0);// cửa đóng (servo trở về góc 0 độ
  37. ​Serial.println(F("Cua Da Dong"))
  38. ​sensor.setValue(0,0)
  39. ​else
  40. ​Serial.println("Khong nam trong tap hop lenh")
  41. }
  42.  
  43. void loop()
  44. {
  45. ​// Look for new card
  46. ​if ( mfrc522.PICC_IsNewCardPresent())
  47. ​if ( mfrc522.PICC_ReadCardSerial()
  48. ​// chọn 1 thẻ RF bất k
  49.  
  50. ​//xem UID của th
  51.   Serial.println();
  52. ​Serial.print("UID tag :")
  53. ​String content= ""
  54. ​byte letter
  55. ​for (byte i = 0; i < mfrc522.uid.size; i++)
  56. ​Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ")
  57. ​Serial.print(mfrc522.uid.uidByte[i], HEX)
  58. ​content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "))
  59. ​content.concat(String(mfrc522.uid.uidByte[i], HEX))
  60. ​Serial.println()
  61. ​Serial.print("Message : ")
  62. ​content.toUpperCase()
  63. ​if (content.substring(1) == "09 22 58 29") //nhập mã số thẻ của bạn ở đâ
  64. ​Serial.println("Authorized access")
  65. ​Serial.println("cua Da Mo")
  66. ​sensor.setValue(0,1); // luồng cảm biến số 0,giá trị gửi là
  67. ​myServo.write(90)
  68. ​delay(5000); // cửa mở trong vòng 5 giâ
  69. ​sensor.setValue(0,0);
  70. ​myServo.write(0)
  71. ​Serial.println("Cua Da Dong")
  72.  
  73. ​else
  74. ​Serial.println(" Access is denied ");
  75. ​sensor.loop()
  76. ​delay(5)
  77. }
  78.  
  79. int getMemoryFree()
  80. { extern int __heap_start;
  81. ​extern int *__brkval;
  82. ​return (int) SP - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
  83. }

Code Node - RED

Giao diện chính của mình:

Giao diện điều khiển:https://damp-stream-15408.herokuapp....

Giao diện Node – RED: https://damp-stream-15408.herokuapp....

V. Còn Hơn Thế Nữa

  • Xong rồi, thật đơn giản phải không các bạn, hãy thỏa sức sáng tạo theo cách riêng của mình nha. Lần sau mình sẽ làm bản V2 bằng khóa điện LY-03  nha. 
  • Chúc các bạn thành công.
Bình luận
Nội dung này chưa có bình luận, hãy gửi bình luận đầu tiên của bạn.
VIẾT BÌNH LUẬN CỦA BẠN