Isi kandungan:

IOT123 - I2C MQ2 BRICK: 5 Langkah
IOT123 - I2C MQ2 BRICK: 5 Langkah

Video: IOT123 - I2C MQ2 BRICK: 5 Langkah

Video: IOT123 - I2C MQ2 BRICK: 5 Langkah
Video: MQ-2 датчик газов и дыма подключаем к Arduino 2024, Julai
Anonim
IOT123 - IZC MQ2 BRICK
IOT123 - IZC MQ2 BRICK
IOT123 - IZC MQ2 BRICK
IOT123 - IZC MQ2 BRICK
IOT123 - IZC MQ2 BRICK
IOT123 - IZC MQ2 BRICK
IOT123 - IZC MQ2 BRICK
IOT123 - IZC MQ2 BRICK

IOT123 BRICKS adalah unit modular DIY yang dapat disatukan dengan IOT123 BRICKS yang lain, untuk menambahkan fungsi ke simpul atau boleh pakai. Mereka didasarkan pada protoboards dua sisi persegi, bersambung melalui lubang.

Sebilangan BRICKS ini dijangka berada di beberapa node (Master MCU - ESP8266 atau ATTINY84) di laman web. MCU tidak memerlukan pengetahuan terlebih dahulu mengenai keperluan sensor atau keperluan perisian. Ia mengimbas node I2C kemudian meminta dump harta (data sensor) dari setiap hamba. BRICK ini membekalkan 5.0V, 3.3V dan talian AUX lain yang boleh disesuaikan.

BRICK I2C MQ2 ini membuang 3 sifat:

LPG (Bahagian Per Juta), CO (PPM), MEROKOK (PPM)

Sensor ini memberikan senario menarik: Memerlukan sekurang-kurangnya 2 minit (hingga 5 minit) untuk memanaskan badan, kemudian perlu menentukur selama 20 saat sebelum digunakan. Oleh kerana MCU tuan rumah hanya ingin mendapatkan pasangan nama / nilai (dan mesej lanjutan), kami telah memperkenalkan harta "PREPARE". Oleh kerana mesej lanjutannya adalah "1" (lebih banyak yang akan datang), Host MCU akan terus memilih BRICK sehingga siap. Juga disarankan untuk "Burn-in" MQ2 sebelum digunakan iaitu membiarkannya tersambung ke litar 5V anda selama 24 jam.

Batu bata sensor jenis Keyes akan diabstrak terlebih dahulu kerana disertakan dengan vitamin (komponen tambahan diperlukan) termasuk dan agak murah (saya beli 37 untuk 10AUD). Papan / litar lain akan diperkenalkan kepada I2C BRICKS.

Lubang-lubang yang bersebelahan dengan ATTINY85 dibiarkan tidak digunakan, untuk membolehkan pengaturcara pogo pin semasa DIP8 disolder ke PCB.

Pengambilan lebih lanjut, membungkus BRICKS dalam silinder kecil yang disambungkan ke hab D1M WIFI BLOCK, mengepam nilai ke pelayan MQTT, sedang dikembangkan.

Langkah 1: Bahan dan Alat

Bahan dan Alat
Bahan dan Alat
Bahan dan Alat
Bahan dan Alat
Bahan dan Alat
Bahan dan Alat

Terdapat senarai Bil Bahan dan Sumber yang lengkap.

  1. Bata sensor MQ2 (1)
  2. ATTINY85 20PU (1)
  3. 1 "protoboard dua sisi (1)
  4. Header Lelaki 90º (3P, 3P)
  5. Header Lelaki (2P, 2P)
  6. Jumper Shunt (1)
  7. Kawat cangkuk (~ 7)
  8. Pateri dan Besi (1)

Langkah 2: Siapkan ATTINY85

Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85

AttinyCore dari Boards Manager diperlukan. Burn bootloader "EEPROM Retained", "8mHZ Internal" (semua konfigurasi ditunjukkan di atas).

Gunakan sumber yang disertakan; menyusun dan memprogram ke ATtiny85.

GIST ada di sini:

gist.github.com/IOT-123/4c501046d365d01a60…

Anda boleh mendapatkan lebih banyak butiran dalam arahan ini:

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…

Sebaik-baiknya diuji melalui papan roti sebelum meneruskan.

Sekiranya anda mempunyai SENSOR ASSIMILAT, pastikan alamat hamba berbeza pada kombinasi Host SENSOR / MCU, iaitu semua sensor Suhu dapat memiliki alamat yang sama asalkan anda hanya memiliki satu sensor Suhu pada MCU / nod.

Langkah 3: Pasang Litar

Pasang Litar
Pasang Litar
Pasang Litar
Pasang Litar
Pasang Litar
Pasang Litar
  1. Di bahagian depan, masukkan komponen ATTINY85 (1), tajuk lelaki 3P 90deg (2) (3), tajuk lelaki 2P (4) (5), dan solder di bahagian belakang.
  2. Di bahagian belakang, jejak wayar oren dari ORANGE1 ke ORANGE2 dan solder.
  3. Di bahagian belakang, jejak wayar biru dari BLUE1 ke BLUE2 dan solder.
  4. Di bahagian belakang, jejak wayar hijau dari GREEN1 ke GREEN2 dan solder.
  5. Di bahagian belakang, jejak wayar kosong dari SILVER1 ke SILVER2 dan solder.
  6. Di bahagian belakang, jejak wayar kosong dari SILVER3 ke SILVER4 dan solder.
  7. Di bahagian belakang, jejak wayar hitam dari BLACK1 ke BLACK2 dan solder.
  8. Di bahagian belakang, jejak wayar hitam dari BLACK3 ke BLACK4 dan solder.
  9. Di bahagian belakang, jejak wayar merah dari RED1 hingga RED2 dan solder.
  10. Di bahagian belakang, jejak wayar merah dari RED3 hingga RED4 dan solder.
  11. Di bahagian belakang, jejak wayar kuning dari KUNING1 hingga KUNING2 dan pateri.

Sensor kini boleh disambungkan secara langsung melalui pin ke PCB atau melalui wayar, ke titik yang ditunjukkan dalam kontrak pin.

Langkah 4: Menguji

Ujian
Ujian
Ujian
Ujian
Ujian
Ujian

Sebilangan BRICKS ini dijangka berada di beberapa node (MCU - ESP8266 atau ATTINY84) di persekitaran. Ini adalah ujian unit: memeriksa permintaan / respons UNO sehingga semua data dibuang, kemudian mengabaikan hamba I2C.

  1. Muat naik kod UNO ke abah ujian UNO anda. Pastikan ADDRESS_SLAVE sepadan dengan alamat I2C BRICK.
  2. Sambungkan 5.0V di UNO ke VCC di BRICK.
  3. Pastikan jumper untuk pin itu dihidupkan.
  4. Sambungkan GND di UNO ke GND di BRICK.
  5. Sambungkan A5 di UNO ke SCL di BRICK.
  6. Sambungkan A4 di UNO ke SDA di BRICK.
  7. Sambungkan perintang tarik 4K7 dari SDA ke VCC.
  8. Sambungkan perintang tarik 4K7 dari SCL ke VCC.
  9. Sambungkan UNO anda ke PC Dev anda dengan USB.
  10. Buka Arduino Console. Pilih 9600 baud (mulakan semula UNO dan buka semula konsol jika anda perlu).
  11. Nama dan nilai Harta harus dicetak ke konsol sekali kemudian kata tidur diulang.

Sekiranya anda melihat "persediaan" maka 3 baris sampah berulang anda mungkin garis SDA dan SCL anda kembali ke depan.

Pembalakan Master I2C dari hamba I2C dengan sokongan plotter / metadata

#sertakan
# tentukanADDRESS_SLAVE10
bool _outputPlotterOnly = salah;
bool _confirmedMetadata = false;
int _packetSegment = 0;
bool _i2cNodeProcessed = salah;
char _property [2] [24] = {"nama", "nilai"};
kekosongan () {
Wire.begin (); // sertai bas i2c (alamat pilihan untuk master)
Serial.begin (9600); // memulakan siri untuk output
kelewatan (1000);
jika (! _outputPlotterOnly) {
Serial.println ("persediaan");
Bersiri.println ();
}
}
kekosongan () {
jika (_i2cNodeProcessed) {
jika (! _confirmedMetadata) {// beri tahu hamba untuk mula menghantar data sensor
kelewatan (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
kelewatan (100);
_confirmedMetadata = benar;
}
_i2cNodeProcessed = salah;
jika (! _outputPlotterOnly) {
Bersiri.println ();
}
kembali;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
paket char [16];
intindex = 0;
bool isContinueSegment = false; // terusSegment (yang ke-3) 1 = lagi, 0 = terakhir
sementara (Wire.available ()) {// hamba boleh menghantar lebih sedikit daripada yang diminta
char c = Wire.read ();
paket [index] = int (c)> -1? c: ''; // gantikan watak yang tidak sah dengan spasi
jika (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = benar;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
jika (int (c) == 48 || int (c) == 86) {// 0 pada harta tanah terakhir
_i2cNodeProcessed = benar;
// hantar nilai ke MQTT
rehat;
}
}
indeks ++;
}
jika (! isContinueSegment) {
jika (! _outputPlotterOnly) {
Serial.println (paket);
}
strcpy (_property [_packetSegment - 1], paket); // tetapkan var tempatan dengan nama / nilai
} lain {
jika (_outputPlotterOnly && _confirmedMetadata) {
jika (_i2cNodeProcessed) {
Serial.println (_property [1]);
} lain {
Serial.print (_property [1]);
Cetakan bersiri ("");
}
}
}
}

lihat rawuno_i2c_generic_sensor_test_w_plotter_v2.ino dihoskan dengan ❤ oleh GitHub

Langkah 5: Langkah Seterusnya

Susun atur asas rangkaian dan lapisan I2C perisian berkaitan dengan banyak sensor yang berbeza. Perkara utama untuk bermula dengan betul, adalah kontrak paket antara tuan dan hamba.

Saya telah menjadualkan / memulakan rangkaian sensor yang dibungkus (dicetak 3D) yang menggunakan rangka ini dan akan menghubungkannya semasa bahagian diterbitkan.

BLOK ini digunakan oleh MQ2 ASSIMILATE SENSOR.

Disyorkan: