Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
divers_elec:mlx90614:mlx90614 [05/2018] – [Pi] fred | divers_elec:mlx90614:mlx90614 [07/2019] (Version actuelle) – [cablibration] fred | ||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
* http:// | * http:// | ||
* https:// | * https:// | ||
- | * https:// | + | * S_DATA\electronique\arduino\code\weethermos |
- | * Pi 3 Model B+ rev 1.0 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | + | |
- | * Pi 3 Model B rev 1.2 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | + | |
- | * Pi 2 Model B rev 1.2 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | + | |
- | * Pi Model B+ rev 1.2 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | + | |
- | * Pi Model A+ rev 1.1 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | + | |
- | * Pi Zero rev 1.3 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | + | |
- | * Pi Zero W rev1.1 : ? pas de BCM2835 sur le schéma ? | + | |
| | ||
====== cablage ====== | ====== cablage ====== | ||
===== mlx90614 ===== | ===== mlx90614 ===== | ||
- | {{: | + | |
- | [[https:// | + | |
* Part No. MLX90614 | * Part No. MLX90614 | ||
* Temperature Code E (-40°C...85°C) | * Temperature Code E (-40°C...85°C) | ||
Ligne 41: | Ligne 34: | ||
* Standard part -000 | * Standard part -000 | ||
* Packing form -TU | * Packing form -TU | ||
+ | |||
+ | {{: | ||
+ | [[https:// | ||
===== Pi ===== | ===== Pi ===== | ||
Ligne 59: | Ligne 55: | ||
| | | 0v | | | | 0v | ||
+ | * https:// | ||
+ | * Pi 3 Model B+ rev 1.0 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | ||
+ | * Pi 3 Model B rev 1.2 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | ||
+ | * Pi 2 Model B rev 1.2 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | ||
+ | * Pi Model B+ rev 1.2 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | ||
+ | * Pi Model A+ rev 1.1 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | ||
+ | * Pi Zero rev 1.3 : 1.8k pull on SDA SCL (R23 GPIO2) (R24 GPIO3) | ||
+ | * Pi Zero W rev1.1 : ? pas de BCM2835 sur le schéma ? | ||
+ | ===== code ===== | ||
+ | <code c> | ||
+ | //gcc mlx90614.c -o mlx90614 -l bcm2835 | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #define AVG 1 // | ||
+ | |||
+ | # include < | ||
+ | char getch(){ | ||
+ | char buf=0; | ||
+ | fflush(stdout); | ||
+ | if(read(0,& | ||
+ | return buf; | ||
+ | } | ||
+ | |||
+ | int main(int argc, char **argv) | ||
+ | { | ||
+ | unsigned char buf[6]; | ||
+ | unsigned char i,reg; | ||
+ | double temp=0, | ||
+ | unsigned int G_nb_sample_uint16=0; | ||
+ | char c_command; | ||
+ | |||
+ | //pas d' | ||
+ | struct termios old={0}; | ||
+ | if(tcgetattr(0, | ||
+ | old.c_lflag& | ||
+ | old.c_lflag& | ||
+ | old.c_cc[VMIN]=0; | ||
+ | old.c_cc[VTIME]=0; | ||
+ | if(tcsetattr(0, | ||
+ | |||
+ | bcm2835_init(); | ||
+ | bcm2835_i2c_begin(); | ||
+ | bcm2835_i2c_set_baudrate(25000); | ||
+ | // set address | ||
+ | bcm2835_i2c_setSlaveAddress(0x5a); | ||
+ | printf(" | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | { | ||
+ | bcm2835_i2c_begin(); | ||
+ | bcm2835_i2c_write (®, 1); | ||
+ | bcm2835_i2c_read_register_rs(& | ||
+ | temp = (double) (((buf[1]) << 8) + buf[0]); | ||
+ | temp = (temp * 0.02)-0.01; | ||
+ | temp = temp - 273.15; | ||
+ | calc+=temp; | ||
+ | } | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | bcm2835_i2c_begin(); | ||
+ | bcm2835_i2c_write (®, 1); | ||
+ | bcm2835_i2c_read_register_rs(& | ||
+ | temp = (double) (((buf[1]) << 8) + buf[0]); | ||
+ | temp = (temp * 0.02)-0.01; | ||
+ | temp = temp - 273.15; | ||
+ | calc+=temp; | ||
+ | } | ||
+ | atemp=calc/ | ||
+ | |||
+ | if (c_command == ' | ||
+ | sky_temp_sum_double += skytemp; | ||
+ | G_nb_sample_uint16++; | ||
+ | sky_temp_average_double = sky_temp_sum_double/ | ||
+ | |||
+ | printf(" | ||
+ | c_command = getch(); | ||
+ | sleep(1); | ||
+ | } | ||
+ | //restore setting of getch | ||
+ | old.c_lflag|=ICANON; | ||
+ | old.c_lflag|=ECHO; | ||
+ | if(tcsetattr(0, | ||
+ | printf(" | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ====== cablibration ====== | ||
+ | |||
+ | <code C> | ||
+ | données | ||
+ | Gris mlx(IR) | ||
+ | 20 21.8 21.65 | ||
+ | 21.8 24.76 24.42 | ||
+ | 18.5 21.2 19.72 | ||
+ | 25.6 28.4 26.9 | ||
+ | 29.2 31.30 31 | ||
+ | 11 9.6 9.6 | ||
+ | |||
+ | amb_temp_f = ((amb_temp_f_ar[0]+amb_temp_f_ar[1]+amb_temp_f_ar[2])/ | ||
+ | obj_temp_f = ((obj_temp_f_ar[0]+obj_temp_f_ar[1]+obj_temp_f_ar[2])/ | ||
+ | </ | ||