Mục lục:

IOT123 - I2C MQ2 BRICK: 5 bước
IOT123 - I2C MQ2 BRICK: 5 bước

Video: IOT123 - I2C MQ2 BRICK: 5 bước

Video: IOT123 - I2C MQ2 BRICK: 5 bước
Video: MQ-2 датчик газов и дыма подключаем к Arduino 2024, Tháng bảy
Anonim
IOT123 - GẠCH I2C MQ2
IOT123 - GẠCH I2C MQ2
IOT123 - GẠCH I2C MQ2
IOT123 - GẠCH I2C MQ2
IOT123 - GẠCH I2C MQ2
IOT123 - GẠCH I2C MQ2
IOT123 - GẠCH I2C MQ2
IOT123 - GẠCH I2C MQ2

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ụ

Vật liệu và Công cụ
Vật liệu và Công cụ
Vật liệu và Công cụ
Vật liệu và Công cụ
Vật liệu và Công cụ
Vật liệu và Công cụ

Có đầy đủ Bill of Material and Sourcing list.

  1. Gạch cảm biến MQ2 (1)
  2. ATTINY85 20PU (1)
  3. Protoboard 1 "hai mặt (1)
  4. Tiêu đề nam 90º (3P, 3P)
  5. Tiêu đề nam (2P, 2P)
  6. Jumper Shunt (1)
  7. Dây móc (~ 7)
  8. Hàn và sắt (1)

Bước 2: Chuẩn bị ATTINY85

Chuẩn bị ATTINY85
Chuẩn bị ATTINY85
Chuẩn bị ATTINY85
Chuẩn bị ATTINY85
Chuẩn bị ATTINY85
Chuẩn bị ATTINY85
Chuẩn bị ATTINY85
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

Lắp ráp mạch
Lắp ráp mạch
Lắp ráp mạch
Lắp ráp mạch
Lắp ráp mạch
Lắp ráp mạch
  1. Ở 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.
  2. Ở phía sau, vạch một dây màu cam từ ORANGE1 đến ORANGE2 và hàn.
  3. Ở phía sau, vạch một dây màu xanh lam từ BLUE1 đến BLUE2 và hàn.
  4. Ở phía sau, vạch một dây màu xanh lá cây từ GREEN1 đến GREEN2 và hàn.
  5. Ở phía sau, vạch một dây trần từ SILVER1 đến SILVER2 và hàn.
  6. Ở phía sau, vạch một dây trần từ SILVER3 đến SILVER4 và hàn.
  7. Ở phía sau, vạch một dây đen từ BLACK1 đến BLACK2 và hàn.
  8. Ở phía sau, vạch một dây đen từ BLACK3 đến BLACK4 và hàn.
  9. Ở phía sau, vạch một dây màu đỏ từ RED1 đến RED2 và hàn.
  10. Ở phía sau, vạch một dây màu đỏ từ RED3 đến RED4 và hàn.
  11. Ở 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

Thử nghiệm
Thử nghiệm
Thử nghiệm
Thử nghiệm
Thử nghiệm
Thử nghiệm

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.

  1. 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.
  2. Kết nối 5.0V trên UNO với VCC trên BRICK.
  3. Đảm bảo jumper cho chốt đó được bật.
  4. Kết nối GND trên UNO với GND trên BRICK.
  5. Kết nối A5 trên UNO với SCL trên BRICK.
  6. Kết nối A4 trên UNO với SDA trên BRICK.
  7. Kết nối một điện trở kéo lên 4K7 từ SDA đến VCC.
  8. Kết nối một điện trở kéo lên 4K7 từ SCL đến VCC.
  9. Kết nối UNO của bạn với PC Dev của bạn bằng USB.
  10. 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).
  11. 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: