Mengukur suhu dengan RASPBERRY PI
Salah satu karakteristik utama lingkungan tempat kita tinggal adalah suhu dan oleh karena itu pengukurannya cukup penting.
Cara termudah untuk mengukurnya adalah dengan menggunakan sensor 1-Wire terintegrasi Maxim.
Dengan cara ini Anda dapat menghubungkan hingga 10 sensor ke satu konverter DS2482 1-Wire ke I2C.
Anda dapat menjalankannya dengan cara ini:
Dengan cara ini Anda dapat menghubungkan hingga 10 sensor ke satu konverter DS2482 1-Wire ke I2C.
Anda dapat menjalankannya dengan cara ini:
1. Ubah file “arch/arm/mach-bcm2708/bcm2708.c” dari sumber kernel berisi yang berikut:
static struct platform_device bcm2708_bsc1_device ={
.name ="bcm2708_i2c", .id =1, .num_resources =ARRAY_SIZE(bcm2708_bsc1_resources), .resource =bcm2708_bsc1_resources,};
static struct i2c_board_info __initdata pi_i2c_devs[] ={ { I2C_BOARD_INFO("ds1307", 0x68), I2C_BOARD_INFO("ds2482", 0x18), },}; ...... bcm_register_device(&bcm2835_thermal_device);
i2c_register_board_info(1, pi_i2c_devs,ARRAY_SIZE(pi_i2c_devs));
3. Ubah fungsi static void w1_post_write(struct w1_master *dev) dari file drivers/w1/w1_io.c jadi isinya:
static void w1_post_write(struct w1_master *dev){
if (dev->pullup_duration) { if (dev->enable_pullup &&dev->bus_master->set_pullup){
dev->bus_master->set_pullup(dev->bus_master->data, 0); msleep(dev->pullup_duration); else{ msleep(dev->pullup_duration); } dev->pullup_duration =0; }}
4. Tambahkan fungsi static u8 ds2482_w1_set_pullup(void *data, int delay) dalam file drivers/w1/masters/ds2842.c
static u8 ds2482_w1_set_pullup(void *data, int delay){
struct ds2482_w1_chan *pchan =data; struct ds2482_data *pdev =pchan->pdev; u8 retval =1; u8 cfg; /* jika penundaan bukan nol aktifkan pullup, * pullup yang kuat akan dinonaktifkan secara otomatis * oleh master, jadi jangan menonaktifkannya secara eksplisit */ if (delay) { /* keduanya menunggu sangat penting, jika tidak, perangkat mungkin tidak * bertenaga cukup lama, menyebabkan mis sensor w1_therm untuk
* memberikan hasil konversi yang salah */ ds2482_wait_1wire_idle(pdev); /* catatan:sepertinya SPU dan APU harus disetel! */ retval =ds2482_send_cmd_data(pdev, DS2482_CMD_WRITE_CONFIG,
ds2482_calculate_config(DS2482_REG_CFG_SPU | DS2482_REG_CFG_APU)); ds2482_wait_1wire_idle(pdev); } kembalikan retval;}
Untuk lebih detail:Mengukur suhu dengan RASPBERRY PI Proyek / Postingan Saat Ini juga dapat ditemukan menggunakan:
- Подключение атчиков ерез осхему DS2482