Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: mustafa_cmbz - 11 Kasım 2018, 12:22:15

Başlık: MH-Z16 Co2 sensör uart haberleşme ?
Gönderen: mustafa_cmbz - 11 Kasım 2018, 12:22:15

(https://statics3.seeedstudio.com/seeed/file/2017-09/bazaar572845_grove_co2_sensor.jpg)

Resimdeki co2 sensörünü protonda hserin komutları ile nasıl okuyabilirim?

kendi datasheetinde c örnek kodu mevcut.protonda serial okuma için kodu çevirmem gerekiyor.yardımcı olabilirmisiniz?


char getCheckSum(char *packet)
{
char i, checksum;
for( i = 1; i < 8; i++)
{
checksum += packet[i];
}
checksum = 0xff – checksum;
checksum += 1;
return checksum;
}
Başlık: Ynt: MH-Z16 Co2 sensör uart haberleşme ?
Gönderen: sadogan - 11 Kasım 2018, 13:33:07
Burda okuma yapılmamış, packet adı diziye daha önce 8 byte lik veri kaydedilmiş.
Bu verinin doğruluğu kontrol ediliyor.
Başlık: Ynt: MH-Z16 Co2 sensör uart haberleşme ?
Gönderen: Murat Mert - 11 Kasım 2018, 20:31:53
S.A.
Sn. Mustafa burada uart dan gelen 8 baytlık veri üst üste toplanarak 255 den çıkartılıyor sonra 1 ile toplanıyor. Sonuç geri dönüyor.
Başlık: Ynt: MH-Z16 Co2 sensör uart haberleşme ?
Gönderen: mustafa_cmbz - 11 Kasım 2018, 22:41:31
Alıntı yapılan: Murat Mert - 11 Kasım 2018, 20:31:53S.A.
Sn. Mustafa burada uart dan gelen 8 baytlık veri üst üste toplanarak 255 den çıkartılıyor sonra 1 ile toplanıyor. Sonuç geri dönüyor.

crc dedikleri olay sanırım bu.
Başlık: Ynt: MH-Z16 Co2 sensör uart haberleşme ?
Gönderen: Murat Mert - 12 Kasım 2018, 00:08:54
Evet crc kısmı bu.
Başlık: Ynt: MH-Z16 Co2 sensör uart haberleşme ?
Gönderen: NagraEq - 12 Kasım 2018, 09:24:03
Merhaba,
Sensörün veri kağıdında komutlar mevcut. Veri Kağıdı (https://www.winsen-sensor.com/d/files/PDF/Infrared%20Gas%20Sensor/NDIR%20CO2%20SENSOR/MH-Z16%20CO2%20V2.1.pdf)

CO2 seviyesini okumak içik aşağıdaki diziyi göndereceksiniz.
0XFF 0x01 0x86 0x00 0x00 0x00 0x00 0x00 0x79

Sensör size aşağıdaki gibi yanıt verecek
0XFF 0x86 0x02 0x60 0x47 0x00 0x00 0x00 0xD1
Gelen cevapta 2. ve 3. byte CO2 seviyesidir. (Byte2*256+Byte3)

Gönderilen ve gelen dizideki son byte kontrol değeri olup mesajınızda yazdığınız gibi hesaplanıyor.

Herkese iyi forumlar.