Mục lục:

Đèn mặt trăng IoT: 5 bước
Đèn mặt trăng IoT: 5 bước

Video: Đèn mặt trăng IoT: 5 bước

Video: Đèn mặt trăng IoT: 5 bước
Video: Sự thật ít người giám nói về MẶT TRĂNG | khanhtrungsi 2024, Tháng mười một
Anonim
Đèn mặt trăng IoT
Đèn mặt trăng IoT

Trong phần hướng dẫn này, tôi chỉ cách chuyển một đèn LED chạy bằng pin đơn giản thành một thiết bị IoT.

Dự án này bao gồm:

  • hàn đắp;
  • lập trình ESP8266 với Arduino IDE;
  • tạo ứng dụng Android với MIT App Inventor.

Đối tượng quan tâm là chiếc đèn hình mặt trăng này tôi đã mua từ gearbest. Nhưng thực sự hướng dẫn này có thể được điều chỉnh cho phù hợp với bất kỳ thiết bị điện áp DC thấp nào (các thiết bị cấp nguồn AC yêu cầu mạch bổ sung).

Quân nhu

  1. Điện thoại thông minh Android (đã thử nghiệm phiên bản Android 7-9).
  2. Dụng cụ hàn.
  3. Tạo mẫu PCB (protoboard).
  4. Bo mạch ESP-12E (hoặc bảng mạch khác có vi điều khiển ESP8266).
  5. Bộ chuyển đổi nối tiếp USB để lập trình.
  6. Một số giá trị khác nhau của các thành phần thụ động (điện trở và tụ điện).

(Tùy chọn. Xem phần "Sơ đồ khối")

  1. IC LDO 3.3V@500mA.
  2. Bảng chuyển đổi mức logic 3.3V-5V.
  3. Nguồn điện 5V DC.

Bước 1: Ý tưởng

Ý kiến
Ý kiến

Đèn mặt trăng được cung cấp năng lượng bởi một tế bào Li-ION 18650 và nó có 3 chế độ hoạt động:

  • tắt;
  • thủ công;
  • tự động.

Ở chế độ chỉnh tay, đèn được điều khiển bằng nút nhấn, mỗi lần nhấn sẽ thay đổi trạng thái đèn LED (bật xanh, bật cam, bật, tắt), cường độ ánh sáng thay đổi khi nhấn giữ nút nhấn. Ở chế độ tự động, trạng thái đèn LED thay đổi bằng cách chạm hoặc lắc đèn.

Tôi quyết định thêm ESP8266 để hoạt động như một máy chủ web lắng nghe các yêu cầu và theo đó mô phỏng các thao tác nhấn nút. Tôi không muốn phá vỡ chức năng đèn ban đầu, chỉ muốn thêm các tính năng điều khiển bổ sung qua WiFi, vì vậy tôi đã chọn ESP để mô phỏng các thao tác nhấn nút thay vì điều khiển trực tiếp đèn LED. Ngoài ra, điều này cho phép tôi tương tác tối thiểu với mạch gốc.

Khi nguyên mẫu được thực hiện, nó chạy liên tục ~ 80mA từ pin ở trạng thái tắt (~ 400mA ở độ sáng tối đa). Dòng chờ cao vì ESP8266 hoạt động như một máy chủ và luôn được kết nối với WiFi và lắng nghe các yêu cầu. Pin đã cạn kiệt chỉ sau một ngày rưỡi chỉ ở trạng thái tắt, vì vậy sau đó tôi quyết định sử dụng cổng sạc USB của đèn để cấp nguồn cho tất cả các thiết bị điện tử từ nguồn điện 5V bên ngoài và kết hợp pin với nhau (nhưng đây là tùy chọn).

Bước 2: Sơ đồ khối

Sơ đồ khối
Sơ đồ khối

Trong sơ đồ khối, bạn có thể thấy mạch nào sẽ được thêm vào và mạch hiện có sẽ được sửa đổi như thế nào. Trong trường hợp của tôi, tôi đã tháo pin hoàn toàn và làm ngắn bộ sạc pin đầu vào với đầu ra của IC (một lần nữa, đây là tùy chọn). Các khối trong suốt trong sơ đồ cho biết các thành phần được bỏ qua (mặc dù nút nhấn vẫn hoạt động như dự định ban đầu).

Theo tài liệu ESP8266 chỉ dung nạp 3.3V, tuy nhiên có rất nhiều ví dụ khi ESP8266 hoạt động hoàn toàn tốt với 5V, do đó, bộ chuyển đổi mức logic và 3.3V LDO có thể bị loại bỏ, tuy nhiên tôi vẫn giữ nguyên phương pháp hay nhất và thêm các thành phần đó.

Tôi đã sử dụng 3 chân I / O ESP8266 và chân ADC. Một chân đầu ra kỹ thuật số dùng để mô phỏng các lần nhấn nút, hai đầu vào kỹ thuật số để phát hiện đèn LED màu nào đang bật (từ đó chúng ta có thể tìm ra MCU ở trạng thái nào và trạng thái nào tiếp theo sau khi nhấn nút). Chân ADC đo điện áp đầu vào (thông qua bộ chia điện áp), đó là cách chúng tôi có thể theo dõi mức sạc pin còn lại.

Như nguồn điện bên ngoài, tôi sử dụng bộ sạc điện thoại cũ 5V @ 1A (không sử dụng bộ sạc nhanh).

Bước 3: Lập trình

Lập trình
Lập trình
Lập trình
Lập trình

Tóm lại, chương trình hoạt động như thế này (để biết thêm thông tin, hãy xem mã của chính nó):

ESP8266 kết nối với điểm truy cập WiFi của bạn, thông tin đăng nhập bạn phải nhập vào đầu mã trước khi lập trình, nó lấy địa chỉ IP từ máy chủ DHCP bộ định tuyến của bạn, để tìm ra IP mà bạn sẽ cần sau này, bạn có thể kiểm tra cài đặt hoặc thiết lập DHCP giao diện web của bộ định tuyến cờ gỡ lỗi trong mã thành 1 và bạn sẽ thấy IP ESP nhận được gì trong màn hình nối tiếp (bạn nên đặt trước IP đó trong cài đặt bộ định tuyến của mình để ESP luôn nhận được cùng một IP khi khởi động).

Khi khởi tạo MCU luôn thực hiện cùng một quy trình vĩnh viễn:

  1. Kiểm tra xem vẫn kết nối với AP, nếu không hãy thử kết nối lại cho đến khi thành công.
  2. Chờ máy khách thực hiện yêu cầu HTTP. Khi yêu cầu xảy ra:

    1. Kiểm tra điện áp đầu vào.
    2. Kiểm tra xem đèn LED ở trạng thái nào.
    3. Khớp yêu cầu HTTP với các trạng thái đèn LED đã biết (bật màu xanh lam, màu da cam, cả bật, tắt).
    4. Mô phỏng nhiều lần nhấn nút khi cần thiết để đạt được trạng thái yêu cầu.

Tôi sẽ mô tả ngắn gọn các hướng dẫn lập trình, nếu lần đầu tiên bạn lập trình MCU ESP8266, hãy tìm các hướng dẫn chuyên sâu hơn.

Bạn sẽ cần Arduino IDE và bộ chuyển đổi giao diện nối tiếp USB (ví dụ: FT232RL). Để chuẩn bị IDE, hãy làm theo các hướng dẫn sau.

Làm theo sơ đồ mạch để kết nối mô-đun ESP-12E để lập trình. Một số lời khuyên:

  • sử dụng nguồn điện 3.3V@500mA bên ngoài (trong hầu hết các trường hợp, nguồn điện nối tiếp USB là không đủ);
  • kiểm tra xem bộ chuyển đổi nối tiếp USB của bạn có tương thích mức logic 3.3V không;
  • kiểm tra xem trình điều khiển bộ chuyển đổi nối tiếp USB đã được cài đặt thành công hay chưa (từ trình quản lý thiết bị windows), bạn cũng có thể kiểm tra xem nó có hoạt động chính xác từ IDE hay không, chỉ cần các chân RX và TX ngắn, hơn là từ IDE chọn cổng COM, mở màn hình nối tiếp và viết nội dung nào đó, nếu tất cả hoạt động bạn sẽ thấy văn bản mà bạn đang gửi xuất hiện trong bảng điều khiển;
  • vì lý do nào đó, tôi chỉ có thể lập trình ESP khi lần đầu tiên tôi kết nối bộ chuyển đổi nối tiếp USB với PC và sau đó bật ESP từ nguồn 3.3V bên ngoài;
  • sau khi lập trình thành công, đừng quên kéo GPIO0 lên cao ở lần khởi động tiếp theo.

Bước 4: Sơ đồ và hàn

Sơ đồ và hàn
Sơ đồ và hàn
Sơ đồ và hàn
Sơ đồ và hàn
Sơ đồ và hàn
Sơ đồ và hàn

Làm theo sơ đồ để hàn tất cả các thành phần vào bo mạch chủ. Như đã đề cập trước đây, một số thành phần là tùy chọn. Tôi đã sử dụng IC LDO KA78M33 3.3V và bảng chuyển đổi mức logic này từ sparkfun, ngoài ra, bạn có thể tự tạo bộ chuyển đổi như trong sơ đồ (bạn có thể sử dụng bất kỳ mosfet kênh N nào thay vì BSS138). Trong trường hợp bạn sử dụng pin Li-ION, mạng nguồn + 5V sẽ là cực dương của pin. Điện áp tham chiếu ESP8266 ADC là 1V, các giá trị bộ chia điện trở đã chọn của tôi cho phép đo điện áp đầu vào cao tới 5,7V.

Cần có 5 kết nối với PCB của đèn gốc: + 5V (hoặc + Pin), GND, nút nhấn, tín hiệu PWM từ MCU của đèn để điều khiển đèn LED màu xanh lam và màu cam. Nếu bạn cấp nguồn cho đèn từ nguồn 5V, giống như tôi đã làm, bạn sẽ muốn ngắn bộ sạc pin IC VCC với chân OUTPUT, bằng cách đó tất cả các thiết bị điện tử sẽ được cấp nguồn trực tiếp từ + 5V chứ không phải từ OUTPUT của bộ sạc pin.

Thực hiện theo hình ảnh thứ hai cho tất cả các điểm hàn bạn sẽ cần thực hiện trên đèn PCB.

LƯU Ý:

  1. Nếu bạn quyết định đoản mạch + 5V với đầu ra IC sạc pin, hãy tháo pin hoàn toàn trước khi thực hiện, bạn không muốn kết nối trực tiếp + 5V với pin.
  2. Chú ý đến chân nút nhấn mà bạn hàn đầu ra ESP, vì 2 chân của nút nhấn được kết nối với đất và bạn không muốn đoản mạch khi đầu ra ESP ở mức CAO, tốt hơn hãy kiểm tra kỹ với đồng hồ vạn năng.

Bước 5: Ứng dụng Android

Ứng dụng Android
Ứng dụng Android
Ứng dụng Android
Ứng dụng Android
Ứng dụng Android
Ứng dụng Android

Ứng dụng Android được tạo bằng nhà phát minh ứng dụng MIT, để tải xuống ứng dụng và / hoặc dự án nhân bản cho chính bạn, hãy truy cập liên kết này (bạn sẽ cần tài khoản google để truy cập nó).

Trong lần khởi chạy đầu tiên, bạn sẽ cần mở cài đặt và nhập địa chỉ IP ESP8266 của mình. IP này sẽ được lưu nên không cần nhập lại sau khi chương trình khởi động lại.

Ứng dụng đã được thử nghiệm với một số thiết bị Android 9 và Android 7.

Đề xuất: