DHT11 vs DHT22: Sensor Suhu & Kelembapan Mana Nak Beli?

Cartoon of a large light-blue DHT11 sensor block on a small black circuit board beside a large white DHT22 sensor housing on a narrow black board with a red-and-black wire loop, both with three sideways silver header pins, a teal swap arrow between them and a blue microcontroller board cropped small in the corner

Beli DHT22 kalau udara yang anda ukur pernah naik melepasi 90 %RH atau turun di bawah 0 °C — di Malaysia itu meliputi hampir apa sahaja di luar rumah, di dalam bilik air atau di dalam grow box. Di dalam rumah, DHT11 memang sudah cukup. Kedua-duanya berjalan atas tiga sambungan yang sama dan library yang sama, jadi kalau anda tukar fikiran kemudian, kosnya satu patah perkataan dalam satu baris kod.

Apa sebenarnya yang membezakan DHT11 dengan DHT22?

DHT11 dan DHT22 — yang turut dijual Aosong sebagai AM2302 — ialah satu reka bentuk yang dibina kepada dua gred: sebuah kapasitor yang peka kepada kelembapan, satu elemen suhu, dan sebuah microcontroller yang menukar kedua-duanya lalu menghantar nombor yang sudah siap menerusi satu utas wayar. Angka-angka di bawah ialah dakwaan datasheet Aosong, bukan ukuran kami. Kalau anda sedang menimbang tiga nama, sebenarnya cuma ada dua bahagian: DHT22 dan AM2302 ialah elemen penderia yang sama di bawah satu datasheet, dan AM2302 ialah nombor yang biasanya dicetak Aosong pada versi yang sudah berwayar dan yang sudah duduk di atas carrier — dan itulah maksud sebuah module 3-pin.

Dakwaan datasheet DHT11 DHT22 / AM2302
Julat kelembapan 20–90 %RH 0–100 %RH
Ketepatan kelembapan ±5 %RH ±2 %RH (maks ±5 %RH)
Langkah kelembapan 1 %RH 0.1 %RH
Julat suhu 0 hingga 50 °C −40 hingga 80 °C
Ketepatan suhu ±2 °C ±0.5 °C
Langkah suhu 1 °C 0.1 °C
Bekalan 3.3–5.5 V 3.3–6 V
Jarak minimum antara bacaan 2 s 2 s

Baris langkah itu bersifat struktur, bukan pilihan pembundaran. Kedua-dua sensor menghantar tepat 40 bit: dua bait kelembapan, dua bait suhu, satu checksum. Dalam frame DHT11, bait kedua bagi setiap pasangan itu ialah bahagian perpuluhannya, dan contoh kiraan Aosong sendiri mencatat bahawa ia sentiasa sifar — jadi DHT11 tidak mampu melaporkan 65.3 %RH, hanya 65. DHT22 pula membelanjakan dua bait yang sama itu sebagai satu nombor 16-bit dalam unit persepuluh, dan 0.1 itu terhasil dengan sendirinya daripada situ.

Bahan untuk cuba — pilih SATU sensor, bukan dua-dua

ItemPriceQty
DHT 11 DHT 22 Temperature and Humidity Sensor DHT22 High Sensitivity Sensor DHT11 For Aduino IOT - DHT11 SENSORDHT 11 DHT 22 Temperature and Humidity Sensor DHT22 High Sensitivity Sensor DHT11 For Aduino IOT - DHT11 SENSORDHT11HTRM4.95
DHT 11 DHT 22 Temperature and Humidity Sensor DHT22 High Sensitivity Sensor DHT11 For Aduino IOT - DHT22 SENSORDHT 11 DHT 22 Temperature and Humidity Sensor DHT22 High Sensitivity Sensor DHT11 For Aduino IOT - DHT22 SENSORDHT22HTRM14.95
Arduino Uno Compatible SMD UNO R3 with Type B Cable - ATMEGA328P with CH340G-Microcontroller ProjectArduino Uno Compatible SMD UNO R3 with Type B Cable - ATMEGA328P with CH340G-Microcontroller ProjectUNOCH34RM22.90
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-F 20CM40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-F 20CMDPWMF20RM3.20

Kedua-dua sensor duduk pada satu product page yang sama, jadi pilih DHT11 SENSOR atau DHT22 SENSOR pada dropdown sebelum masuk troli. Jumper male-to-female itu terus daripada pin module ke soket Uno, jadi tiada apa-apa lagi yang diperlukan.

Hanya kalau anda mahu ia di atas breadboard

ItemPriceQty
MB102 Breadboard 170 400 830 Holes Breadboard Donut Board Arduino Prototype Multi Color - MINI BREADBOARD 170 HOLES (WHITE)MB102 Breadboard 170 400 830 Holes Breadboard Donut Board Arduino Prototype Multi Color - MINI BREADBOARD 170 HOLES (WHITE)BRB170HRM1.00
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-M 20CM40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-M 20CMDPWMM20RM3.50

Mini breadboard dan jumper M-M ialah lorong alternatif, untuk bila sensor itu terpaksa berkongsi satu talian 5V dengan benda lain.

Udara Malaysia paksa anda pilih yang mana?

Siling kelembapan DHT11 yang dispesifikasikan pada 90 %RH itulah yang menentukan kebanyakan pembelian di sini. MET Malaysia meletakkan kelembapan relatif purata harian maksimum negara ini melebihi 94%, dan menyebut ia boleh mencapai setinggi 100%. Sepanjang malam dan selepas hujan, udara di luar tingkap anda duduk di atas angka tertinggi DHT11.

Melepasi siling itu DHT11 tidak gagal dengan kuat. Ia berada di luar julat yang kalibrasi kilangnya dipadankan, dan Aosong tidak menerbitkan sebarang angka ketepatan melepasi angka tersebut — ±5 %RH pada spec sheet itu sekadar berhenti terpakai, sedangkan bacaannya tetap sampai kelihatan cukup munasabah. Nombor munasabah yang anda tidak boleh percaya lebih buruk daripada nombor yang jelas-jelas rosak. Aosong menyebut satu lagi kos: beroperasi di luar julat yang dinyatakan mempercepatkan penuaan sensor itu.

Suhu pula menarik garisan di sebelah bawah. DHT11 bermula pada 0 °C, jadi logger peti sejuk atau penggera peti beku langsung tidak mendapat bacaan yang sah daripadanya. Di dalam rumah kedua-dua sensor duduk selesa di dalam julat, dan ±2 °C memadai untuk menentukan bila kipas patut hidup.

  • DHT11: monitor suhu bilik dalam rumah, projek sekolah dan RBT, apa sahaja yang mencetuskan kipas pada satu ambang.
  • DHT22: luar rumah, balkoni, rumah hijau, bilik air, inkubator, grow box, peti sejuk, dan apa-apa log yang anda memang berniat nak plot merentasi berminggu-minggu.
  • Dua-dua tak perlu: kalau anda cuma perlukan suhu, atau probenya akan basah, DS18B20 kalis air tiada elemen kelembapan yang boleh rosak.

Beberapa sensor membaca satu bilik yang sama, supaya angka ketepatan jadi sesuatu yang anda boleh nampak:

Di mana perintang pull-up duduk — pada module atau pada breadboard anda?

Talian data tunggal DHT ialah sebuah bus open-drain: tiada satu pun hujungnya yang pernah memacunya ke HIGH. Kedua-duanya hanya mampu menariknya turun ke ground kemudian melepaskan, dan sebiji perintang ke VCC sahajalah yang menariknya naik semula. Tanpa apa-apa yang menariknya naik, melepaskan tidak membuat apa-apa — talian itu terapung, denyut rendah sensor tadi tidak pernah menghasilkan tepi tinggi yang sepadan, dan library pun timeout. Itulah puncanya nan pada setiap bacaan bermula dari yang pertama.

Itulah keseluruhan beza antara module 3-pin dengan sensor bogel 4-pin, dan sebab itulah kedua-dua variant kami ialah module. Module DHT11 menunjukkan kerjanya: sebiji perintang SMD di R1 bertanda 512, yang dinyahkod sebagai 5.1 kΩ — nilai yang ada di dalam litar aplikasi tipikal Aosong sendiri. Module DHT22 membuat kerja yang sama mengelilingi AM2302 putih itu: carriernya memegang pull-up tadi dan meninggalkan kaki ketiga sensor yang tidak digunakan, jadi bahagian berkaki empat sampai kepada anda sebagai tiga pin yang boleh terus dicucuk. Beli yang bogel, kedua-duanya jadi urusan anda sendiri. Pegang bahagian berkaki empat itu dengan muka berkisi-kisinya menghadap anda dan kira kakinya dari kiri ke kanan: kaki 1 ialah VCC, kaki 2 data, kaki 3 tidak pergi ke mana-mana di dalam sensor, kaki 4 GND. Pull-up itu merentas dari kaki 2 ke kaki 1 — 5.1 kΩ atau 10 kΩ — dan kaki 3 dibiarkan kosong.

Perangkap di antara dua keadaan itulah sebabnya orang percaya perintang tadi pilihan. Library Adafruit menukar pin itu kepada INPUT_PULLUP semasa membaca, lalu menghidupkan pull-up dalaman ATmega328P — 20 kΩ hingga 50 kΩ. Pada lead 10 cm, sensor bogel selalunya berjalan dengan itu sahaja. Tetapi masa naik ialah rintangan didarab kapasitans wayar, jadi pull-up 30 kΩ mengecas wayar yang sama kira-kira enam kali lebih perlahan berbanding yang 5.1 kΩ, sedangkan denyut terpendek sensor itu cuma 26 µs. Tambah kabel, bacaan pun jadi tersekat-sekat.

Perbandingan kartun sensor DHT22 putih berkisi di atas board carrier hitam dengan bulatan teal menyerlahkan sebiji perintang surface-mount yang kecil, di sebelah sensor putih yang sama sebagai bahagian bogel berkaki empat dengan sebiji perintang berjalur warna krim diwayarkan antara dua kaki peraknya, turut dibulatkan dengan teal
Sensor DHT22 putih yang sama, dua cara untuk membelinya. Di atas board carrier, pull-upnya sudah pun ada sebagai sebiji perintang surface-mount yang halus. Dalam bentuk bogel, ia empat batang kaki dan sebiji perintang yang anda sendiri pasang antara kaki data dengan kaki bekalan.

Kenapa bacaan datang balik sebagai nan, atau beku pada satu nombor?

Library DHT memulangkan nan bila tiada frame 40-bit yang sah tiba — ia laporan tentang kesunyian, bukan satu nilai sensor. Nombor yang beku pula masalah yang bertentangan dengan punca yang berlainan. Empat perkara ini menjelaskan hampir kesemua kedua-duanya.

Apa yang anda nampak Apa yang sedang berlaku Cara betulkan
Nombor yang sama setiap gelung, bertukar sekali setiap dua saat sahaja Anda minta bacaan lebih awal daripada yang library sanggup ambil, jadi ia hulurkan balik keputusan sebelumnya yang tersimpan Beri jarak 2 s antara bacaan
nan pada setiap satu bacaan, dari yang pertama lagi Tiada pull-up pada sensor bogel, wayar data pada pin yang salah, atau DHT22 diisytiharkan sedangkan DHT11 yang dipasang Semak wayarnya dahulu, kemudian constructornya
nan bercampur dengan bacaan yang elok, secara rawak Tepi yang perlahan — kabel panjang atau tanpa perisai, pull-up yang lemah, atau logik 3.3 V Pendekkan lariannya, pull-up 5.1 kΩ
Nombor yang ada, mantap, tetapi mengarut DHT11 diisytiharkan sedangkan DHT22 yang dipasang; framenya dinyahkod dengan peraturan yang salah Betulkan jenisnya di dalam constructor

Nombor yang beku itu perlu dieja terang-terang, sebab tiada apa-apa yang memberi amaran. Library DHT Adafruit menetapkan jarak minimum 2000 ms; kalau diminta lebih awal, ia memulangkan keputusan sebelumnya tanpa bercakap dengan sensor itu langsung. Sebuah gelung dengan delay(200) oleh itu memberi anda sepuluh nombor yang serupa, barulah satu yang baharu. Itu jugalah sebabnya ayat yang sering diulang-ulang, “DHT11 buat satu bacaan sesaat”, bukan sesuatu yang elok diikut: datasheet DHT11 Aosong menyebut jarak bagi keseluruhan proses itu mesti melebihi 2 saat, sama persis seperti DHT22.

Larian kabel yang panjang gagal pada peringkat bit. Setiap bit bermula dengan 50 µs rendah, kemudian satu keadaan tinggi yang panjangnya itulah datanya: 26–28 µs bermakna sifar, 70 µs bermakna satu, dan Arduino membuat keputusan dengan menyukat tempoh tinggi itu. Kapasitans kabel membundarkan tepi menaiknya, jadi talian tadi melintasi ambang logik dengan lewat dan setiap keadaan tinggi tersukat pendek. Cukup jauh, satu terbaca sebagai sifar, checksum gagal, dan anda dapat nan. Aosong merating 20 m kabel dengan pull-up 5.1 kΩ, dan mengehadkannya kepada 100 cm pada 3.3 V — had kedua itu susut voltan sepanjang wayar dan bukan pembundaran tepi, tetapi ia menunjuk ke arah yang sama: pendekkan lariannya.

Jenis sensor yang salah gagal secara tidak simetri, dan itulah yang menjadikannya mengelirukan. Library menahan talian itu rendah selama 20 ms untuk memulakan DHT11 dan hanya 1.1 ms untuk memulakan DHT22. Isytiharkan DHT22 sedangkan DHT11 yang dipasang, 1.1 ms itu jauh di bawah minimum 18 ms yang DHT11 perlukan untuk perasan anda — nan berterusan. Isytiharkan DHT11 sedangkan DHT22 yang dipasang, permulaan yang panjang tadi tetap menjadi, tetapi framenya dibelah cara DHT11: 65.3 %RH yang sebenar dihantar sebagai 653, yang dua baitnya ialah 2 dan 141, lalu dibaca oleh peraturan DHT11 sebagai 2 + 14.1 = 16.1 %RH. Checksumnya lulus, jadi tiada apa-apa yang membantah.

Perbandingan kartun sensor DHT22 putih di atas board carrier hitam yang diwayarkan ke sebuah board microcontroller biru kecil — di atas, larian tiga wayar yang pendek dan tegang dengan bentuk gelombang denyut segi empat teal yang tajam; di bawah, larian tiga wayar yang panjang dan berkeluk dengan bentuk gelombang oren yang tepi menaiknya condong dan denyut sempitnya melendut menjadi bonggol rendah yang bulat
Bagaimana panjang kabel bertukar menjadi nan. Sensor itu menyukat denyutnya dengan sempurna di kedua-dua hujung wayar, tetapi kapasitans membundarkan setiap tepi menaik. Merentasi larian yang panjang, denyut yang paling pendek nyaris tidak terangkat daripada talian, Arduino menyukatnya salah, dan checksum pun gagal.

Macam mana nak wayarkannya dan buktikan ia menjadi?

Module DHT11 dan DHT22 kedua-duanya berakhir dengan header male bersudut tepat 3 pin, dan soket Uno pula female, jadi tiga utas jumper male-to-female itulah keseluruhan kerja pendawaiannya. Baca silkscreen di sebelah header itu dan jangan mengira dari tepi board, kerana dua carrier ini tidak mencetak susunan yang sama. Board DHT11 tertulis S, VCC, − dengan pin data di hujung S; board DHT22 tertulis +, out, − dengan pin data di tengah. Cuma pin − sahaja yang berada di tempat yang sama pada kedua-duanya — VCC dan data bertukar tempat.

Pin module (baca silkscreennya) Soket Uno Kenapa
+ (VCC) 5V Kedua-dua sensor dispesifikasikan bermula dari 3.3 V, jadi rail 5V duduk selesa di dalam julat
− (GND) GND Rujukan yang dikongsi — setiap lebar denyut disukat terhadapnya
S atau out (data) D2 Mana-mana pin digital pun boleh; D2 sekadar apa yang dinamakan oleh sketch di bawah

Pada board 3.3 V — sebuah ESP32 atau ESP8266, seperti yang ada dalam binaan monitor OLED kami di bawah — ambil + module itu daripada pin 3V3 dan bukan daripada 5V. Kedua-dua sensor dispesifikasikan turun sehingga 3.3 V, jadi ia membaca dengan elok di situ, dan sebab rail itu penting ialah talian datanya melahu pada apa jua voltan yang anda suap ke +: dikuasakan daripada 5V, module itu menghulurkan 5 V kepada sebatang GPIO yang tidak dirating untuknya. Apa yang anda korbankan ialah margin bekalan — kurang ruang untuk susut voltan sepanjang wayar sebelum sensor itu tidak cukup voltan — dan itulah sebabnya had kabel 100 cm di atas tadi milik 3.3 V dan yang 20 m itu milik 5 V.

Sketch ini perlukan library DHT sensor daripada Adafruit. Dalam Arduino IDE buka Tools → Manage Libraries, cari DHT sensor library, pasang yang Adafruit punya, dan terima bila ia menawarkan Adafruit Unified Sensor — library DHT itu tidak akan compile tanpa dependency tersebut.

// Baca DHT11 atau DHT22 dan cetak kedua-dua nilainya sekali setiap dua saat.
// Nak tukar sensor, edit SATU baris: DHT22 -> DHT11. Tiada apa-apa lagi yang berubah.
#include <DHT.h>

const uint8_t DHT_PIN = 2;   // pin S / out pada module itu
#define DHT_TYPE DHT22       // <-- DHT11 untuk sensor biru, DHT22 untuk yang putih

DHT dht(DHT_PIN, DHT_TYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
  delay(2000);               // biar sensor habiskan penukaran pertamanya tanpa diganggu
}

void loop() {
  float rh    = dht.readHumidity();
  float tempC = dht.readTemperature();

  if (isnan(rh) || isnan(tempC)) {
    // nan bermakna frame 40-bit itu tidak pernah tiba, atau tiba dengan checksum yang rosak.
    Serial.println(F("no reading - check the data wire, the pull-up and DHT_TYPE"));
  } else {
    Serial.print(tempC, 1);
    Serial.print(F(" C   "));
    Serial.print(rh, 1);
    Serial.println(F(" %RH"));
  }

  delay(2000);               // Aosong: keseluruhan kitaran bacaan mesti kekal melebihi 2 saat
}

Buka Serial Monitor pada 9600 baud dan satu baris sepatutnya muncul setiap dua saat. Baris DHT_TYPE itulah pertukaran yang menjadi topik artikel ini: dicompile untuk Uno mana-mana pun, sketch ini tetap 5,184 bait yang sama. Bermula dengan sensor yang lebih murah itu satu keputusan, bukan satu pertaruhan — asalkan anda cabut dan cucuk semula tiga jumper itu mengikut silkscreen board yang baharu bila anda tukar, sebab dua carrier ini tidak meletakkan pin data di tempat yang sama.

Kedua-dua sensor berwayar dan berjalan, kalau anda lebih suka menonton pertukarannya:

Binaan monitor DHT11 dan OLED kami meletakkan nombor-nombor itu di atas skrin; untuk bekerja di atas mini breadboard pula, panduan breadboard kami menerangkan lubang mana yang bersambung dengan mana.

Kartun sebuah board microcontroller biru disambung dengan wayar jumper merah, hitam dan kuning ke sensor DHT22 putih di atas board carrier hitam, dengan module sensor DHT11 biru pucat terbaring tanpa disambung di sebelahnya dan anak panah dua kepala teal di antara dua sensor itu
Keseluruhan rig ujian: tiga utas wayar jumper daripada Uno ke tiga pin module itu. DHT11 biru pucat yang menunggu di sebelahnya menerima tiga wayar yang sama, tetapi bukan dalam susunan yang sama — pin datanya di hujung S board itu, sedangkan pada module putih ia di tengah.

Kesilapan biasa yang kami lihat daripada pelanggan sebenar

Membaca dalam gelung yang ketat supaya paparan terasa lebih pantas. Hasilnya sebaliknya: apa-apa yang lebih laju daripada dua saat memulangkan nombor yang tersimpan, jadi skrin itu dikemas kini dengan licin menggunakan data yang basi.

Membeli DHT11 untuk logger luar rumah atau bilik air sebab nombornya “nampak lebih kurang betul”. Memang akan nampak begitu — di atas 90 %RH, DHT11 berada di luar julat yang ketepatan ±5 %RHnya dispesifikasikan, dan nombor yang tidak dispesifikasikan pun tetap kelihatan seperti nombor. Munasabah bukan bermakna betul, dan inilah satu-satunya kes yang ringgit lebihnya membeli sesuatu yang nyata.

Memasang sensor itu di dalam kotak yang sama dengan benda yang sedang diperhatikannya. Aosong meminta ia diletakkan jauh daripada apa jua yang mengubah suhu setempat; oleh sebab kelembapan relatif ditakrifkan terhadap suhu, sebuah regulator yang panas memesongkan kedua-dua bacaan sekali gus.

Memindahkan jumper terus melintang bila menukar sensor. Dua board carrier ini tidak berkongsi pinout: data duduk di hujung S pada board DHT11 dan di tengah pada board DHT22, dan cuma − sahaja yang berada di tempat yang sama. Bawa pendawaian DHT11 itu terus tanpa diubah dan 5V Uno akan mendarat pada pin data DHT22 sementara D2 mendarat pada pin bekalannya — satu cara pantas untuk membunuh sensor. Cabut ketiga-tiga jumper dan cucuk semula mengikut silkscreen setiap kali anda tukar sensor.

FAQ

Apa beza sebenar antara DHT11 dengan DHT22?

Julat dan resolusi, bukan kebolehpercayaan. Aosong menspesifikasikan DHT11 pada 20–90 %RH dan 0–50 °C, ±5 %RH dan ±2 °C dalam langkah nombor bulat; DHT22 pula pada 0–100 %RH dan −40 hingga 80 °C, ±2 %RH dan ±0.5 °C dalam langkah 0.1. Pendawaian, protokol dan librarynya serupa, dan kedua-duanya mahukan dua saat antara bacaan.

Kenapa DHT22 saya asyik memulangkan nan?

nan bermakna tiada frame 40-bit yang sah tiba. Kalau ia berlaku pada setiap bacaan, syaki pin datanya, pull-up yang hilang pada sensor bogel 4-pin, atau jenis yang salah di dalam constructor. Kalau bacaan yang elok dan nan berselang-seli, framenya tiba dalam keadaan rosak — pendekkan kabel dan pasang pull-up 5.1 kΩ.

Macam mana nak test sensor DHT22?

Pinout carrier DHT22 tertulis +, out, − merentasi headernya, jadi pin datanya yang di tengah. Wayarkan + ke 5V, − ke GND dan out ke D2, muat naik sketch di atas, dan buka Serial Monitor pada 9600 baud. Satu baris setiap dua saat bermakna sensor itu bercakap. Hembus perlahan-lahan padanya: kelembapan sepatutnya naik kemudian turun semula dengan perlahan, dan itu menunjukkan elemen penderianya hidup dan bukan sekadar checksumnya yang lulus.

Boleh ke saya kalibrasi DHT11 atau DHT22?

Tidak, bukan dalam erti kata yang sebenar. Setiap sensor dikalibrasi di kilang dan pekalinya dibakar ke dalam memori on-chip, yang dirujuknya pada setiap bacaan. Apa yang Aosong terbitkan sebaliknya ialah prosedur pemulihan untuk sensor yang tertinggal dalam udara tepu: satu tempoh pada 50–60 °C di bawah 10 %RH, kemudian beberapa jam pada 20–30 °C di atas 70 %RH. Balang garam tepu itu cara yang berpatutan untuk menyemak sama ada sensor itu masih betul, bukan satu pelarasan yang anda boleh tulis balik ke dalamnya.

Apa beza sensor DHT22 dengan module DHT22?

Sensor bogel ialah bahagian putih berkaki empat itu seorang diri, dan anda yang membekalkan pull-up antara kaki data dengan VCC. Module pula bahagian yang sama di atas sebuah board carrier yang sudah pun ada perintang tadi dan menggugurkan kaki ketiga sensor yang tidak digunakan — itulah sebabnya ia keluar sebagai tiga pin. Sensor yang sama; module itu yang boleh terus dicucuk.

Kemas kini terakhir September 2026. Tersangkut? Chat dengan kami di WhatsApp.

Leave a Reply

Your email address will not be published. Required fields are marked *