Danh sách những gì chúng ta cần:
- Digispark Attiny85
- Màn hình Oled 128x64 I2C
- Cảm biến nhiệt độ DS18b20
- Điện trở 4,7 Kom 0,25 W
- Lập trình viên ISP hoặc Arduino Bảng điều khiển phần mềm Digispark Attiny85
- Máy tính bảng bằng kẹp giấy hoặc tấm nhựa mỏng
- dây
- Đầu nối nữ Dupont 2.54 mm
- Nút 2 chiếc.
- Bảng mạch nhỏ hoặc trang trí nhỏ
- hàn sắt
- Hàn, nhựa thông
- kéo
- dao văn thư
- Súng bắn keo nóng
- Keo nóng
Bước 1 Chọn thành phần.
Là bộ điều khiển chính, chúng tôi sẽ sử dụng Digispark Attiny85. Có một số loại trong số họ. Chúng tôi cần một bảng với một đầu nối micro USB. Phần còn lại sẽ không vừa trong vỏ đồng hồ.
Để hiển thị, chúng ta cần một màn hình I2C 128x64. Chúng có nhiều màu khác nhau: trắng, xanh dương, xanh dương với vàng. Tôi thu hút sự chú ý của bạn! Thuật ngữ ăn hai màu, trong mô tả hoặc tiêu đề của màn hình này có nghĩa là một dải một màu ở phía trên màn hình và màu thứ hai cho toàn bộ màn hình còn lại, và không có khả năng hiển thị hai màu với màn hình này! Tất cả các màn hình loại này chỉ hiển thị một màu hoặc ở trên cùng một dải một màu ở phía dưới - một màu khác. Giống như, ví dụ, cái mà tôi sẽ sử dụng. Thanh phía trên có màu vàng, phần còn lại của màn hình là màu xanh. Bạn có thể chọn bất kỳ màu nào bạn thích.
Chúng ta cũng cần cảm biến nhiệt độ tích hợp DS18B20. Nó không được chọn một cách tình cờ. Đầu tiên, DS18B20 giao tiếp với vi điều khiển thông qua đường truyền thông một dây sử dụng giao thức giao diện 1-Dây. Trong trường hợp của chúng tôi, điều này rất quan trọng, vì kết luận của Attiny85 không có cảm biến là rất ít. Thứ hai, cảm biến này là một chữ số, nghĩa là, nó tự lấy tất cả các phép đo và chỉ truyền dữ liệu nhiệt độ mà không tốn tài nguyên tính toán của Attiny85.
Đối với phần còn lại, tôi nghĩ sẽ không có câu hỏi nào, vì vậy hãy chuyển sang sản xuất vỏ máy.
Bước 2 Lắp ráp nhà ở.
Vỏ đồng hồ sẽ được làm bằng nhựa mỏng. Tôi có một máy tính bảng bằng nhựa với một cái kẹp giấy trên tay. Nó đủ cứng để giữ hình dạng của nó, đồng thời nó có thể được cắt bằng kéo thông thường và một con dao văn phòng. Anh ấy đã đi lên một cách hoàn hảo.Nếu không có trong tay, bạn có thể mua máy tính bảng trong cửa hàng cung cấp văn phòng hoặc tìm loại nhựa phù hợp để thay thế máy tính bảng. Chúng tôi đánh dấu trên nhựa theo sơ đồ:
Cắt bỏ tất cả các dòng rắn. Chấm - cắt nhẹ với một con dao văn thư. Đường chấm là đường gấp. Như bạn đã hiểu, đây là cách bố trí khối thông thường. Tiếp theo, bạn cần hàn các dây vào màn hình, tốt nhất là lấy nhiều màu và viết ra dẫn đến cái gì. Dán màn hình lên lớp keo nóng chảy ở giữa, sao cho mặt trước nó thoát ra từ mặt sau. Như bạn có thể thấy, chúng tôi đã đóng các chỉ định pin màn hình. Do đó, cần phải viết chúng ra. Tôi hơi đưa tay vào con dao, và do đó cắt bỏ phần dưới của cơ thể. Không có gì sai với điều đó, mọi thứ đều có thể được dán. Nhưng tốt hơn hết là đừng lặp lại sai lầm của tôi.
Kết quả sẽ như thế này:
Về trường hợp này đã sẵn sàng. Bạn vẫn có thể cắt nắp lưng bằng nhựa tương tự, nhưng đây là tùy chọn.
Bước 3 Chúng tôi hàn.
Trường hợp của chúng tôi là nhỏ, và chúng tôi phải nhồi nhét rất nhiều ở đó. Do đó, chúng tôi lấy một phần của bảng mạch không lớn hơn 2,8 x 2,8 mm và hàn ở hai nút, cảm biến DS18b20, điện trở và một số tiếp điểm. Theo sơ đồ sau:
Nó không cần thiết phải hàn dây trực tiếp vào Attiny, vì cần phải ngắt kết nối mọi thứ cho phần sụn. Kết quả sẽ giống như thế này:
Các nút là cần thiết để thiết lập thời gian. Nguồn có thể được lấy từ cổng USB của máy tính. Kết hợp cộng và trừ tương ứng:
Nếu bạn muốn làm mà không cần dây, bạn cần tìm một pin lithium-ion nhỏ. Đây là một ví dụ:
Pin này phù hợp với bên trong trường hợp. Chỉ cần đưa ra kết luận cho việc sạc pin.
Bước 4 Chuẩn bị lập trình viên.
Digispark Attiny85 có thể được lập trình thông qua đầu nối micro USB trên bo mạch, sử dụng Arduino IDE làm môi trường lập trình. Nhưng đồng thời bạn phải hy sinh 2 KB bộ nhớ cho bộ tải khởi động. Attiny 85 có tổng cộng 8 KB Flash. Bản phác thảo của tôi không phù hợp với bộ tải khởi động, vì vậy tôi cần lập trình thông qua lập trình viên ISP. Tôi không có một lập trình viên như vậy, nhưng có một bảng Arduino Uno, mà tôi sẽ sử dụng như một lập trình viên. Nếu bạn có một lập trình viên ISB, bạn có thể bỏ qua mục này. Mở Arduino IDE và điền vào bản phác thảo của chúng tôi được gọi là ArduinoISP vào Arduino Uno của chúng tôi. Bạn có thể tìm thấy nó giống như Tệp này - Ví dụ - Arduino ISP. Bản phác thảo bắt đầu với một gợi ý về cách kết nối Arduino với bộ điều khiển khả trình. Thay vì Arduino Uno, có thể có bất kỳ bảng Arduino nào khác.
// 10: thiết lập lại nô lệ
// 11: MOSI
// 12: MISO
// 13: SCK
Sơ đồ kết nối với Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Bước 5 Chuẩn bị môi trường lập trình.
Để chỉnh sửa phần sụn và điền vào bản phác thảo trong Attiny 85, bạn cần chuẩn bị không chỉ cho lập trình viên, mà cả chính môi trường lập trình. Để thực hiện việc này, hãy cài đặt Arduino IDE từ trang web chính thức của Arduino.cc và cũng cài đặt tiện ích bổ sung Attiny cho bộ vi điều khiển thông qua Trình quản lý bảng.
Khởi chạy Arduino IDE, sau đó Tệp - Cài đặt - trong trường URL Trình quản lý bảng bổ sung, dán liên kết:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
nhấn OK (bạn có thể nhập một số liên kết được phân tách bằng dấu phẩy trong trường này). Công cụ tiếp theo - Bảng - Trình quản lý bảng trong trường bộ lọc, nhập Attiny và nhấp vào "attiny của David A. Mellis". Nhấp vào Cài đặt và đợi quá trình tải xuống hoàn tất. Bây giờ trong menu Công cụ, chọn:
Hội đồng quản trị - Attiny 25/45/85
Bộ xử lý - Attiny 85
Đồng hồ - nội bộ 16
và chọn cổng nối tiếp mà lập trình viên ISP hoặc Arduino được kết nối làm lập trình viên.
Tôi đã thử nhiều thư viện khác nhau để làm việc với màn hình. Theo tôi thì tiện lợi nhất và hoạt động trên Attiny85: TinyOzOLED.
Một cảm biến nhiệt độ cần thư viện OneWire.
Cài đặt hai thư viện này. Bạn có thể cài đặt thư viện của bên thứ ba trực tiếp trong môi trường lập trình. Không giải nén các tài liệu lưu trữ đã tải xuống, trong Arduino IDE, chọn menu Phác thảo - Kết nối Thư viện. Ở đầu danh sách thả xuống, chọn mục thư viện Thêm .Zip. Trong hộp thoại xuất hiện, chọn thư viện mà bạn muốn thêm. Mở menu Phác thảo - Kết nối lại Thư viện. Ở dưới cùng của danh sách thả xuống, bạn sẽ thấy một thư viện mới. Bây giờ thư viện có thể được sử dụng trong các chương trình. Đừng quên khởi động lại Arduino IDE sau tất cả điều này.Nếu điều đó không có sự trợ giúp, chỉ cần giải nén tài liệu lưu trữ vào thư mục của thư viện thành phố thư mục được đặt trong thư mục có cài đặt Arduino IDE.
Bước 6 Chỉnh sửa và điền vào bản phác thảo.
Cảm biến nhiệt độ hoạt động theo giao thức Một Dây và có một địa chỉ duy nhất cho mỗi thiết bị - mã 64 bit. Tài nguyên Attiny không đủ để tìm mã này mỗi lần. Do đó, trước tiên bạn phải kết nối cảm biến với bất kỳ bảng Arduino nào, điền vào bản phác thảo nằm trong Tệp - Ví dụ - Nhiệt độ Dallas - Menu OneWireSearch. Tiếp theo, chạy Công cụ - Cổng giám sát. Arduino nên tìm cảm biến của chúng tôi, viết địa chỉ của nó và đọc nhiệt độ hiện tại. Chúng tôi sao chép hoặc đơn giản là ghi lại địa chỉ của cảm biến. Mở bản phác thảo Attiny85_OledClickI_Term_2, tìm dòng:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Chúng tôi ghi lại địa chỉ cảm biến của bạn giữa các lần niềng răng, thay thế địa chỉ cảm biến của tôi. Sau đó, kết nối Attiny với lập trình viên hoặc Arduino với tư cách là một lập trình viên (điều này được mô tả trong Bước 4) và điền vào bản phác thảo. Nó vẫn còn để ngắt kết nối lập trình viên và kết nối mọi thứ theo sơ đồ trong 3 bước. Việc lắp ráp hóa ra một cái gì đó như thế này:
Màn hình nhỏ, không thể đặt cả thời gian và nhiệt độ để có thể nhìn thấy. Do đó, đồng hồ thay đổi thời gian với nhiệt độ đọc cứ sau 10 giây.