MH-Z16 Co2 sensör uart haberleşme ?

Başlatan mustafa_cmbz, 11 Kasım 2018, 12:22:15

mustafa_cmbz




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;
}

sadogan

Burda okuma yapılmamış, packet adı diziye daha önce 8 byte lik veri kaydedilmiş.
Bu verinin doğruluğu kontrol ediliyor.

Murat Mert

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.
mert07

mustafa_cmbz

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.

Murat Mert

mert07

NagraEq

Merhaba,
Sensörün veri kağıdında komutlar mevcut. Veri Kağıdı

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.