Mục lục:
- Bước 1: Vật liệu và Công cụ
- Bước 2: Chuẩn bị ATTINY85
- Bước 3: Lắp ráp mạch
- Bước 4: Kiểm tra
- Bước 5: Các bước tiếp theo
Video: IOT123 - I2C MQ2 BRICK: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
IOT123 BRICKS là các đơn vị mô-đun DIY có thể kết hợp với các GẠCH IOT123 khác, để thêm chức năng cho một nút hoặc thiết bị đeo được. Chúng được dựa trên các tấm ván hình vuông inch, hai mặt với kết nối với nhau thông qua các lỗ.
Một số GẠCH này dự kiến sẽ nằm trên nhiều nút (MCU chính - ESP8266 hoặc ATTINY84) trên một trang web. MCU không cần biết trước về mục đích của cảm biến hoặc nhu cầu phần mềm. Nó quét các nút I2C sau đó yêu cầu kết xuất thuộc tính (dữ liệu cảm biến) từ mỗi nô lệ. Các GẠCH này cung cấp 5.0V, 3.3V và một dòng AUX khác có thể tùy chỉnh.
GẠCH I2C MQ2 này kết xuất 3 thuộc tính:
LPG (Phần triệu), CO (PPM), KHÓI (PPM)
Cảm biến này cung cấp một tình huống thú vị: Nó cần ít nhất 2 phút (tối đa 5 phút) để làm ấm, sau đó cần hiệu chỉnh trong 20 giây trước khi sử dụng. Vì MCU máy chủ chỉ được sử dụng để nhận các cặp tên / giá trị (và thông báo tiếp tục), chúng tôi đã giới thiệu thuộc tính "CHUẨN BỊ". Vì thông báo tiếp tục của nó là "1" (sẽ có nhiều hơn nữa), MCU chủ nhà sẽ tiếp tục bỏ phiếu BRICK cho đến khi nó sẵn sàng. Ngoài ra, bạn nên "Burn-in" MQ2 trước khi sử dụng, tức là để kết nối với mạch 5V của bạn trong 24 giờ.
Các viên gạch cảm biến loại Keyes sẽ được tóm tắt đầu tiên vì chúng đi kèm với vitamin (các thành phần bổ sung cần thiết) đi kèm và tương đối khó chịu (tôi đã mua 37 viên với giá 10AUD). Các bảng / mạch khác sẽ được giới thiệu về GẠCH I2C.
Các lỗ thông gần với ATTINY85 đã không được sử dụng, để kích hoạt một bộ lập trình chân pogo trong khi DIP8 được hàn vào PCB.
Một phần trừu tượng hơn nữa, đóng gói GẠCH trong các hình trụ nhỏ cắm vào trung tâm D1M WIFI BLOCK, bơm các giá trị đến máy chủ MQTT, đang được phát triển.
Bước 1: Vật liệu và Công cụ
Có đầy đủ Bill of Material and Sourcing list.
- Gạch cảm biến MQ2 (1)
- ATTINY85 20PU (1)
- Protoboard 1 "hai mặt (1)
- Tiêu đề nam 90º (3P, 3P)
- Tiêu đề nam (2P, 2P)
- Jumper Shunt (1)
- Dây móc (~ 7)
- Hàn và sắt (1)
Bước 2: Chuẩn bị ATTINY85
AttinyCore từ Trình quản lý hội đồng là cần thiết. Ghi bộ nạp khởi động "EEPROM Retained", "8mHZ Internal" (tất cả cấu hình hiển thị ở trên).
Sử dụng nguồn bao gồm; biên dịch và lập trình sang ATtiny85.
GIST ở đây:
gist.github.com/IOT-123/4c501046d365d01a60…
Bạn có thể tìm thêm thông tin chi tiết trong các tài liệu hướng dẫn sau:
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/How-to-Program-AT…
www.instructables.com/id/How-to-program-th…
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/Programming-an-At…
Tốt nhất hãy kiểm tra qua breadboard trước khi tiếp tục.
Nếu bạn hiện có các CẢM BIẾN HỖN HỢP, hãy đảm bảo địa chỉ phụ khác nhau trên tổ hợp Máy chủ SENSOR / MCU, tức là tất cả các cảm biến Nhiệt độ có thể có cùng địa chỉ miễn là bạn chỉ có một cảm biến Nhiệt độ trên MCU / nút.
Bước 3: Lắp ráp mạch
- Ở mặt trước, lắp các thành phần ATTINY85 (1), tiêu đề nam 3P 90deg (2) (3), tiêu đề nam 2P (4) (5) và hàn ở mặt sau.
- Ở phía sau, vạch một dây màu cam từ ORANGE1 đến ORANGE2 và hàn.
- Ở phía sau, vạch một dây màu xanh lam từ BLUE1 đến BLUE2 và hàn.
- Ở phía sau, vạch một dây màu xanh lá cây từ GREEN1 đến GREEN2 và hàn.
- Ở phía sau, vạch một dây trần từ SILVER1 đến SILVER2 và hàn.
- Ở phía sau, vạch một dây trần từ SILVER3 đến SILVER4 và hàn.
- Ở phía sau, vạch một dây đen từ BLACK1 đến BLACK2 và hàn.
- Ở phía sau, vạch một dây đen từ BLACK3 đến BLACK4 và hàn.
- Ở phía sau, vạch một dây màu đỏ từ RED1 đến RED2 và hàn.
- Ở phía sau, vạch một dây màu đỏ từ RED3 đến RED4 và hàn.
- Ở phía sau, vạch một dây màu vàng từ YELLOW1 đến YELLOW2 và hàn.
Giờ đây, cảm biến có thể được kết nối trực tiếp qua các chân của nó với PCB hoặc qua dây dẫn, đến các điểm được hiển thị trong hợp đồng chân.
Bước 4: Kiểm tra
Một số GẠCH này dự kiến sẽ nằm trên nhiều nút (MCU - ESP8266 hoặc ATTINY84) trong một môi trường. Đây là một bài kiểm tra đơn vị: kiểm tra các yêu cầu / phản hồi của UNO cho đến khi tất cả dữ liệu đã được kết xuất, sau đó bỏ qua I2C slave.
- Tải mã UNO lên dây kiểm tra UNO của bạn. Đảm bảo ADDRESS_SLAVE khớp với địa chỉ I2C của BRICK.
- Kết nối 5.0V trên UNO với VCC trên BRICK.
- Đảm bảo jumper cho chốt đó được bật.
- Kết nối GND trên UNO với GND trên BRICK.
- Kết nối A5 trên UNO với SCL trên BRICK.
- Kết nối A4 trên UNO với SDA trên BRICK.
- Kết nối một điện trở kéo lên 4K7 từ SDA đến VCC.
- Kết nối một điện trở kéo lên 4K7 từ SCL đến VCC.
- Kết nối UNO của bạn với PC Dev của bạn bằng USB.
- Mở Bảng điều khiển Arduino, chọn 9600 baud (khởi động lại UNO và mở lại bảng điều khiển nếu bạn phải làm như vậy).
- Tên thuộc tính và giá trị phải được in ra bảng điều khiển sau đó từ ngủ được lặp lại.
Nếu bạn thấy "thiết lập" thì 3 dòng rác lặp lại, bạn có thể có dòng SDA và SCL của bạn trở lại phía trước.
Ghi nhật ký I2C Master từ I2C slave với hỗ trợ máy vẽ / siêu dữ liệu
#bao gồm |
# xác địnhADDRESS_SLAVE10 |
bool _outputPlotterOnly = false; |
bool _conf DeadMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = false; |
char _property [2] [24] = {"name", "value"}; |
voidsetup () { |
Wire.begin (); // tham gia bus i2c (địa chỉ tùy chọn cho chính) |
Serial.begin (9600); // bắt đầu nối tiếp cho đầu ra |
chậm trễ (1000); |
if (! _outputPlotterOnly) { |
Serial.println ("thiết lập"); |
Serial.println (); |
} |
} |
voidloop () { |
if (_i2cNodeProcessed) { |
if (! _conf DeadMetadata) {// cho máy chủ biết để bắt đầu gửi dữ liệu cảm biến |
trì hoãn (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Wire.write (1); |
Wire.endTransmission (); |
chậm trễ (100); |
_conf DeadMetadata = true; |
} |
_i2cNodeProcessed = false; |
if (! _outputPlotterOnly) { |
Serial.println (); |
} |
trở lại; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
gói char [16]; |
intindex = 0; |
bool isContinueSegment = false; // continueSegment (thứ 3) 1 = more, 0 = last |
while (Wire.available ()) {// nô lệ có thể gửi ít hơn yêu cầu |
char c = Wire.read (); |
pack [index] = int (c)> -1? c: ''; // thay thế các ký tự không hợp lệ bằng dấu cách |
if (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = true; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
if (int (c) == 48 || int (c) == 86) {// 0 trên thuộc tính cuối cùng |
_i2cNodeProcessed = true; |
// gửi giá trị tới MQTT |
nghỉ; |
} |
} |
chỉ số ++; |
} |
if (! isContinueSegment) { |
if (! _outputPlotterOnly) { |
Serial.println (gói tin); |
} |
strcpy (_property [_packetSegment - 1], pack); // đặt var cục bộ với tên / giá trị |
}khác{ |
if (_outputPlotterOnly && _conf DeadMetadata) { |
if (_i2cNodeProcessed) { |
Serial.println (_property [1]); |
}khác{ |
Serial.print (_property [1]); |
Serial.print (""); |
} |
} |
} |
} |
xem rawuno_i2c_generic_sensor_test_w_plotter_v2.ino được lưu trữ với ❤ bởi GitHub
Bước 5: Các bước tiếp theo
Bố cục cơ bản của mạch và lớp I2C của phần mềm có thể liên quan đến nhiều cảm biến khác nhau. Điều chính cần bắt đầu là hợp đồng gói giữa chủ và tớ.
Tôi đã dự kiến / bắt đầu một mạng lưới cảm biến đóng gói (in 3D) sử dụng khuôn khổ này và sẽ liên kết với nó khi các bộ phận được xuất bản.
KHỐI này được sử dụng bởi MQ2 ASSIMILATE SENSOR.
Đề xuất:
Nhấp vào Brick Switch cho Makey Makey: 4 bước (có hình ảnh)
Nhấp vào Brick Switch cho Makey Makey: Công tắc in 3D này sẽ cho phép người dùng biến Makey Makey thành " trượt ngón tay " để có " nhấp vào " trong trò chơi hoặc có thể là mũi tên phải / trái để cuộn qua các bản trình bày. Việc bổ sung các giá đỡ đầu cuối bên phải và bên trái cho
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy
500 LED-Pixel RGB-Brick: 9 bước (có hình ảnh)
500 LED-Pixel RGB-Brick: Một thời gian trước, tôi đã xây dựng một LED-Coffetable 10x10 với một số đèn LED WS2812 này, nhưng ngay cả khi có thể chơi trò chơi cổ điển Snake bằng điện thoại thông minh được kết nối với nó, tôi muốn một thứ gì đó hơn thế nữa đặc biệt. Vì vậy, tôi quyết định đặt thêm một vài đèn led vào nó, sắp xếp
IOT123 - D1M BLOCK - 2xAMUX Assembly: 7 bước (có hình ảnh)
IOT123 - D1M BLOCK - 2xAMUX Assembly: D1M BLOCKS thêm hộp xúc giác, nhãn, hướng dẫn phân cực và điểm ngắt cho Wemos D1 Mini SOC / Shields / Clones phổ biến. Một trong những vấn đề với chip ESP8266 là nó chỉ có sẵn một chân IO analog. Tài liệu hướng dẫn này chỉ ra cách lắp ráp 2xA
IOT123 - ASSIMILATE SENSOR: MQ2: 4 bước
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS là các cảm biến môi trường có thêm lớp trừu tượng phần cứng và phần mềm, giúp cho các loại hoàn toàn mới có thể được thêm vào HUB ASSIMILATE SENSOR và các kết quả đọc được sẽ được bơm đến máy chủ MQTT mà không cần thêm codin