Mục lục:
- Bước 1: Vật liệu
- Bước 2: Raspberry Pi
- Bước 3: Đấu dây
- Bước 4: Cơ sở dữ liệu
- Bước 5: Mã
- Bước 6: Trường hợp
Video: EasyTalk: Giao tiếp dễ dàng và có lịch bên cạnh bạn: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Tên tôi là Kobe Marchal, tôi học tại Howest, Bỉ và là sinh viên Công nghệ Truyền thông và Truyền thông Đa phương tiện (MCT). Đối với nhiệm vụ cuối cùng của năm đầu tiên, tôi phải tạo ra một thiết bị IoT.
Ở nhà, chúng tôi gặp phải vấn đề này là anh trai tôi luôn chơi game và khi mẹ tôi cần nói với anh ấy điều gì đó từ tầng dưới, bà cần phải hét lên vì anh ấy đeo tai nghe và không thể nghe thấy gì. Tôi muốn giải quyết vấn đề này cho cô ấy vì vậy tôi xây dựng một thiết bị mà bạn có thể gửi tin nhắn đến từ một trang web. Nó cũng được sử dụng làm lịch nơi bạn có thể lưu trữ các sự kiện của riêng mình trong hoặc nhập lịch bên ngoài qua URL. Thiết bị này cũng lưu trữ các giá trị nhiệt độ và chất lượng không khí để bạn có thể biết mức độ lành mạnh của thiết bị khi chơi game hoặc làm việc vì bạn thường không để ý.
Thiết bị này được gọi là EasyTalk và giải quyết vấn đề này. Đây là một thiết bị nhỏ sử dụng màn hình OLED để bạn có thể xem các sự kiện, thời gian hoặc nhiệt độ và chất lượng không khí ngay bây giờ. Khi một tin nhắn được gửi đi, nó sẽ thông báo cho bạn bằng âm thanh thông báo và hiển thị tin nhắn trên màn hình nơi bạn có thể trả lời có hoặc không.
Nếu bạn muốn chế tạo thứ này hoặc bạn muốn xem nó được tạo ra như thế nào, tôi thực sự khuyên bạn nên đọc tiếp. Nếu bạn muốn biết thêm về tôi, bạn có thể vào danh mục đầu tư của tôi.
Bước 1: Vật liệu
Bước đầu tiên là thu thập tất cả các vật liệu để sử dụng trong dự án này. Tôi sẽ thành thật với bạn. Đây không phải là một thiết bị rẻ, tổng chi phí là 271 €. Dưới đây là danh sách chúng và một số hình ảnh để làm rõ.
- Raspberry Pi 4 Model B - 4GB
- Pibow Coupé 4 - Ninja
- 12 x Dải op cao cấp Jumperwires - 40 stuks - M / M - 20cm
- 6 x Dải op cao cấp Jumperwires - 40 stuks - M / F - 20cm
- 2 x đầu cắm xếp chồng 36 chân
- Đầu hộp nam 40 chân
- 40 chân Regenboog GPIO kabel
- Bộ mô-đun hiển thị đồ họa OLED đơn sắc 2,42 "128x64
- Loa Kleine Metalen gặp Draadjes - 8 ohm 0,5W
- Adafruit Mono 2.5W Class D Audio Versterker
- Cáp Aux 3.5mm
- Nút nhấn tạm thời ren 7mm
- Tuimelschakelaar
- PIR Bewegingssensor
- DS18B20 Cảm biến nhiệt độ kỹ thuật số
- Grove - Cảm biến kwaliteit Lucht v1.3
- Grove - I2C ADC
- Raspberry Pi 4 USB-C Voeding
- Flexibel mini-stef
- Điện trở 470 Ohm
- Điện trở 4, 7K Ohm
- Ống co nhiệt
- 6 x Vít M2 x 6mm
- 6 x Vít M2 x 8mm
- 3 x Vít M2 x 16mm
- Aluminiumbuis 3 mm
Tôi cũng đã lập Hóa đơn Vật liệu (BOM) để bạn có thể biết tôi đã trả bao nhiêu cho tất cả các tài liệu và tôi lấy chúng ở đâu.
Bước 2: Raspberry Pi
Đối với dự án này, chúng tôi sử dụng Raspberry Pi vì nó dễ thiết lập và nó có thể được sử dụng cho rất nhiều thứ. Nó là hoàn hảo cho những gì chúng tôi muốn làm.
Tải xuống Raspberry Pi Desktop OS và cài đặt nó trên Raspberry Pi của bạn. Bạn cần bật SPI, I2C và One Wire trong raspi-config. Tôi khuyên bạn nên tắt một số thứ trong Tùy chọn khởi động để làm cho nó khởi động nhanh hơn. Ngoài ra, tôi sử dụng một số thư viện mà bạn phải cài đặt bằng pip để làm cho việc này hoạt động.
cài đặt pip3:
- adafruit-circuitpython-ssd1305
- ics
- Bình giữ nhiệt
- Bình-Cors
- Flask-JWT-Extended
- mysql-connector-python
Bạn cũng cần apache2 để thiết lập một trang web, ở đây chúng tôi sử dụng apt:
sudo apt install apache2 -y
Bạn cần thiết lập kết nối không dây vì bạn không thể nhận được cáp UTP trong Raspberry Pi khi có trong hộp đựng.
Bạn cũng sẽ cần thiết lập MariaDB để có thể truy cập cơ sở dữ liệu.
Bước 3: Đấu dây
Bước tiếp theo là kết nối mọi thứ lại với nhau và kiểm tra xem tất cả các thành phần có hoạt động hay không. Tôi đã tạo một PCB để loại bỏ breadboard và làm cho hệ thống dây ít hơn để thiết bị có thể nhỏ hơn. Điều này là cần thiết vì nó sẽ đứng cạnh màn hình của bạn và không chiếm nhiều diện tích nên sẽ không làm bạn mất tập trung vào công việc của mình.
Bước 4: Cơ sở dữ liệu
Thiết bị này sử dụng cơ sở dữ liệu MySQL chuẩn hóa để lưu trữ tất cả thông tin của nó và hiển thị thông tin này trên trang web và chính thiết bị. Tôi đã tạo nó trong MySQL Workbench.
Có 5 bảng trong cơ sở dữ liệu này.
Bảng Activiteiten (= các hoạt động, sự kiện) được sử dụng để lưu trữ tất cả các sự kiện của lịch. Điều này cũng bao gồm tất cả các sự kiện được nhập từ lịch khác.
Table Apparaten (= thiết bị) được sử dụng để lưu trữ các loại thiết bị khác nhau được sử dụng trong table Historiek (= history). Có hai cảm biến được sử dụng trong dự án này, một cảm biến nhiệt độ và một cảm biến chất lượng không khí nhưng tôi cũng có một “thiết bị” thứ ba, chính trang web để lưu trữ các thông điệp được gửi từ trang web đến thiết bị.
Table Gebruikers (= người dùng) lưu trữ người dùng. Họ có thể đăng nhập bằng mật khẩu của mình và chỉ định biệt hiệu hiển thị cùng với tin nhắn khi gửi đến thiết bị.
Table Historiek (= history) được sử dụng để lưu trữ các giá trị cảm biến và tin nhắn gửi đến thiết bị.
Và cuối cùng, các Liên kết trong bảng (= URL’s) lưu trữ tất cả các URL của lịch bên ngoài.
Bước 5: Mã
Tôi khuyên bạn nên tạo người dùng mới vì đó là cách tốt nhất nhưng không cần thiết, bạn cũng có thể sử dụng người dùng pi mặc định.
Mã giao diện người dùng được đặt trong thư mục html mặc định từ apache2. Bạn có thể tìm thấy thư mục này trong / var / www / html.
Đối với phần phụ trợ, bạn cần tạo một thư mục trong thư mục chính của mình và đặt tất cả mã vào đó.
Chúng tôi cũng cần thay đổi một số giá trị trong mã này. Đầu tiên, hãy truy cập app.py. Trên dòng 23 đặt tên của cảm biến nhiệt độ một dây. Điều này có thể sẽ là một cái gì đó khác nhau cho bạn. Để tìm đúng tên, hãy mở một thiết bị đầu cuối và nhập:
ls / sys / bus / w1 / thiết bị
và tìm một chuỗi bao gồm nhiều số khác nhau và thay thế chuỗi trên dòng 23.
Điều khác chúng ta cần thay đổi là trong tệp config.py, thay đổi mật khẩu của cơ sở dữ liệu.
Nếu bạn muốn điều này chạy khi khởi động, bạn cũng phải thay đổi tệp EasyTalk.service. Chỉ cần thay đổi WorkingDirectory và User. Bạn phải sao chép tệp này bằng lệnh tiếp theo:
sudo cp EasyTalk.service / etc / systemd / system / EasyTalk.service
Sau đó chạy nó:
sudo systemctl start EasyTalk.service
Và sau đó kích hoạt nó để nó sẽ bắt đầu khi khởi động
sudo systemctl kích hoạt EasyTalk.service
Bước 6: Trường hợp
Tôi quyết định in 3D vỏ máy để nó có kích thước nhỏ nhất có thể. Bản in bao gồm 3 phần, chính hộp, nắp và giá đỡ loa vì phần này không có lỗ để vặn bu lông vào.
Bạn cũng sẽ cần một số bu lông để vặn mọi thứ lại với nhau.
- 6 x Vít M2 x 6mm
- 6 x Vít M2 x 8mm
- 3 x Vít M2 x 16mm
Tôi sẽ thành thật mặc dù. Tôi đã mất 4-5 giờ để chế tạo thứ này. Bởi vì nó rất nhỏ, mọi thứ chỉ vừa vặn và đôi khi rất khó để vặn bu lông vào nhưng nó hoạt động nếu bạn làm nó cẩn thận.
Tôi cũng đã thiết kế một PCB để thay thế breadboard, trước tiên bạn cần hàn các đầu cắm và 5 điện trở (4 x 470 Ohm, 1 x 4.7K Ohm).
Khi bạn có PCB, tôi khuyên bạn nên bắt đầu với việc hàn cáp vào mọi thứ được cho là kết nối với PCB.
Khi điều này hoàn tất, bạn sẽ vặn màn hình OLED vào vị trí và kết nối PCB với nó. Màn hình chứa PCB. Bạn sử dụng vít 6mm cho việc này.
Sau đó, bạn vặn cảm biến chất lượng không khí vào nơi nó được cho là sẽ đi đến nhưng điều này hơi phức tạp vì ADC kết nối với nó. Để làm điều này đúng cách để hai thành phần không chạm vào nhau, bạn sử dụng vít 16mm với ống nhôm 3 x 5mm mà bạn phải cưa. Tôi đã làm điều này với hai con vít vì tôi không thể tiếp cận cái thứ ba. Bạn kết nối 4 dây mà chúng được cho là đi trên PCB.
Sau đó, bạn kết nối bộ khuếch đại âm thanh với PCB và đặt loa vào vị trí với giá đỡ được in 3D.
Sau các bước này, các phần khó nhất đã kết thúc và bạn có thể kết nối mọi thứ khác với PCB và vặn nó vào đúng vị trí. Lưu ý rằng trong các bức ảnh bạn thấy, tôi sử dụng một cảm biến nhiệt độ khác, đối với sản phẩm cuối cùng, tôi đã sử dụng cảm biến nhiệt độ với một dây cáp dài ở bên ngoài hộp vì nó đang đo nhiệt từ bên trong hộp.
Khi tất cả những thứ này ở đúng vị trí, bạn phải vặn Raspberry Pi vào. Tôi sử dụng vỏ cho việc này vì tôi không tin tưởng nhiệt mà nó tạo ra, vỏ này ở đó để bảo vệ nên bản in 3D không bị chảy. Trước khi vặn nó vào vị trí, bạn phải kết nối cáp nguồn và cáp aux (bạn phải mở ra và hàn một dây vào và sau đó kết nối từ Raspberry Pi với PCB) vì bạn không thể tiếp cận nó sau đó.
Sau đó, chỉ cần kết nối cáp tiêu đề GPIO từ PCB với Raspberry Pi và kiểm tra xem mọi thứ có hoạt động hay không trước khi đóng nắp.
Ở phía dưới có một lỗ để bạn có thể kết nối chân máy nhưng đây là tùy chọn.
Đó là nó! Tôi hy vọng bạn thích đọc bài viết này! -Kobe
Đề xuất:
Giao tiếp nối tiếp Arduino: 5 bước
Giao tiếp nối tiếp Arduino: Nhiều dự án Arduino dựa vào việc truyền dữ liệu giữa một số Arduino. chuyển seria
Xây dựng hệ thống thủy canh tự làm mini & vườn thảo mộc thủy canh tự làm với cảnh báo WiFi: 18 bước
Xây dựng Hệ thống thủy canh tự làm nhỏ & Vườn thảo mộc thủy canh tự làm với cảnh báo WiFi: Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách xây dựng hệ thống #DIY #hydroponics. Hệ thống thủy canh tự làm này sẽ tưới theo chu kỳ tưới thủy canh tùy chỉnh với 2 phút bật và 4 phút tắt. Nó cũng sẽ theo dõi mực nước hồ chứa. Hệ thống này
Giao tiếp nối tiếp PIC MCU và Python: 5 bước
PIC MCU và Python Serial Communication: Xin chào, các bạn! Trong dự án này, tôi sẽ cố gắng giải thích các thử nghiệm của tôi về PIC MCU và giao tiếp nối tiếp Python. Trên internet, có rất nhiều hướng dẫn và video về cách giao tiếp với PIC MCU qua thiết bị đầu cuối ảo rất hữu ích. Howev
Giao tiếp nối tiếp Arduino và Python - Hiển thị bàn phím: 4 bước
Giao tiếp nối tiếp Arduino và Python - Hiển thị bàn phím: Dự án này được thực hiện cho người dùng mac nhưng nó cũng có thể được thực hiện cho Linux và Windows, bước duy nhất nên khác là cài đặt
Giao tiếp dữ liệu trực tiếp ESP8266: 3 bước
Giao tiếp dữ liệu trực tiếp ESP8266: Giới thiệu Trong khi thực hiện một số dự án với mô-đun Arduinos và nRF24l01, tôi đã tự hỏi liệu tôi có thể tiết kiệm một chút công sức bằng cách sử dụng mô-đun ESP8266 thay thế hay không. Ưu điểm của mô-đun ESP8266 là nó chứa bộ điều khiển vi mô trên bo mạch, vì vậy không