
рднрд╛рдЧ 2 <-
рднрд╛рдЧ 1рдЪрд▓рд┐рдП STM32F103C8T6 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ, рдХреБрдЫ I2C рд╕реЗрдВрд╕рд░ / рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ "рдмреНрд▓реВ рдЯреИрдмрд▓реЗрдЯ" рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред
рд▓реЛрдХрдкреНрд░рд┐рдп I2C рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╕рдорд░реНрдерди:
- рдПрд▓рд╕реАрдбреА 1602
- SSD1306
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рд╕рдорд░реНрдерди:
- BH1750 - рд▓рд╛рдЗрдЯ рд╕реЗрдВрд╕рд░
- BME280 - рддрд╛рдкрдорд╛рди, рджрдмрд╛рд╡, рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░
- CCS811 - CO2 рд╕реЗрдВрд╕рд░, рд╡реАрдУрд╕реА (рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдХрд╛рд░реНрдмрдирд┐рдХ рдкрджрд╛рд░реНрде)
рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
MIOC рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рд▓рд┐рдВрдХ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реЗрдВрд╕рд░
BH1750 рд╕реЗрдВрд╕рд░

I2C рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде BH1750 16-рдмрд┐рдЯ рд▓рд╛рдЗрдЯ рд╕реЗрдВрд╕рд░ (рд▓рд╛рдЗрдЯ рдореАрдЯрд░)ред BH1750 рдкрд░ рдлреЛрдЯреЛрдбрд┐рдпреЛрдб рдкреНрд░рдХрд╛рд╢ рдХреА рддреАрд╡реНрд░рддрд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкрд░рд┐рдЪрд╛рд▓рди рдПрдореНрдкрд▓реАрдлрд╛рдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╡реЛрд▓реНрдЯреЗрдЬ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд ADC 16-рдмрд┐рдЯ рдбрд┐рдЬрд┐рдЯрд▓ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред BH1750 рдХрд╛ рдЖрдВрддрд░рд┐рдХ рддрд░реНрдХ рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓ рдЧрдгрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реАрдзреЗ рд▓рдХреНрд╕ (рд▓рдХреНрд╕) рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбрд┐рдЬрд┐рдЯрд▓ рдбреЗрдЯрд╛ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, BH1750 рд╕реЗрдВрд╕рд░ рджреГрд╢реНрдп рдкреНрд░рдХрд╛рд╢ рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╡рд░рдХреНрдд рд╡рд┐рдХрд┐рд░рдг рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЕрд░реНрдерд╛рддред рд▓рдЧрднрдЧ рдПрдХ рд╣реА рд╡рд░реНрдгрдХреНрд░рдореАрдп рд╢реНрд░реЗрдгреА рдореЗрдВ рдорд╛рдирд╡ рдЖрдВрдЦ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред
"рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди" рдЯреИрдм рдкрд░, рдЗрд╕ рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, BH1750 рдЪреБрдиреЗрдВред
рдорд╛рдк рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдореЗрдВ рд╣реЛрдВрдЧреЗ:
uint32_t BH_L;
рд╕реЗрдВрд╕рд░ рдХреЛ I2C2 рдмрд╕ рд╕реЗ рдЬреЛрдбрд╝рдирд╛:

BME280 рд╕реЗрдВрд╕рд░

рдпрд╣ рд╕реЗрдВрд╕рд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдорд╛рдкрддрд╛ рд╣реИ: рддрд╛рдкрдорд╛рди, рд╡рд╛рдпреБрдордВрдбрд▓реАрдп рджрдмрд╛рд╡, рд╕рд╛рде рд╣реА рдЖрд░реНрджреНрд░рддрд╛ред
рдПрдХ рд╕рдорд╛рди рд╕реЗрдВрд╕рд░ рднреА рд╣реИ - BMP280, рдЬрд┐рд╕рдореЗрдВ рдЖрд░реНрджреНрд░рддрд╛ рдХреЛ рдорд╛рдкрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд▓рд╛рдЧрдд рдмрд╣реБрдд рдХрдо рдЖрддреА рд╣реИред
рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рд╕реЗрдВрд╕рд░ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдорд╛рдкрддрд╛ рд╣реИ, рдпрд╣ рднреА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╢реЛрд░ рдХреЛ рдХреИрд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд░реАрдбрд┐рдВрдЧ рдХрд╛ рдЕрдВрд╢рд╛рдВрдХрди рдЗрд╕рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдиреНрдп рд╕реЗрдВрд╕рд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рд╕реЗрдВрд╕рд░ рдЗрди рд╕рднреА рдорд╛рдкреЛрдВ рдХреЛ рди рдХреЗрд╡рд▓ рдЬрд▓реНрджреА, рдмрд▓реНрдХрд┐ рд╡реНрдпрд╛рдкрдХ рд░реЗрдВрдЬ рдореЗрдВ рднреА рдмрдирд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рд╕реЗрдВрд╕рд░ 20 рдкреНрд░рддрд┐рд╢рдд рд╕реЗ рдХрдо рдХреА рд╡рд╛рдпреБ рдЖрд░реНрджреНрд░рддрд╛ рдХреЛ рдорд╛рдкрдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред
рд╕реЗрдВрд╕рд░ рдХреА рдШреЛрд╖рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

рд╕реЗрдВрд╕рд░ I2C2 рдмрд╕ рд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЬреБрдбрд╝реЗ рд╣реИрдВ:

рдпрджрд┐ BMP280 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдореБрдЦреНрдп / bme280.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдкрдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ // BMP рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВред
рдорд╛рдк рдкрд░рд┐рдгрд╛рдо рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдореЗрдВ рд╣реЛрдВрдЧреЗ:

BH1750, BME280 рд╕реЗрдВрд╕рд░ рдФрд░ 1602 рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
#include "mx_init_hw.c" int main() { char s[64]; float t=0, p=0, h=0; Init_HW();
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо:

SSD1306 рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд░рдо рддрд╛рдкрдорд╛рди, рджрдмрд╛рд╡, рдЖрд░реНрджреНрд░рддрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛
(рдЗрд╕ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдФрд░ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЪреБрдиреЗрдВ):

BME280 рдЕрдзрд┐рдХ рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рддрд╛рдкрдорд╛рди рдХреЛ рдорд╛рдк рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЦреНрдп / bme280.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдореИрдХреНрд░реЛ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ:
# рдбреЗрдлрд┐рди рдбреАрдЯреА 3520
CCS811 рд╕реЗрдВрд╕рд░

рд╣рдорд╛рд░реЗ рдЖрд╕рдкрд╛рд╕ рдХреА рд╣рд╡рд╛ рдЧреИрд╕реЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдирд╛рдЗрдЯреНрд░реЛрдЬрди (рд▓рдЧрднрдЧ 78%) рдФрд░ рдСрдХреНрд╕реАрдЬрди (рд▓рдЧрднрдЧ 21%) рд╣реЛрддрд╛ рд╣реИред рд╢реЗрд╖ рдкреНрд░рддрд┐рд╢рдд рдХрд╛ рд╡рд┐рднрд┐рдиреНрди рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ (рдЕрдХреНрд░рд┐рдп рдЧреИрд╕реЛрдВ, рдХрд╛рд░реНрдмрди рдбрд╛рдЗрдСрдХреНрд╕рд╛рдЗрдб, рдХрд╛рд░реНрдмрди рдореЛрдиреЛрдСрдХреНрд╕рд╛рдЗрдб, рдХрд╛рд░реНрдмрдирд┐рдХ рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдкрджрд╛рд░реНрдереЛрдВ (рд╡реАрдУрд╕реА), рдЖрджрд┐) рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдЫреЛрдЯрд╛ рд╣реИ, рдЙрдирдХреА рдПрдХрд╛рдЧреНрд░рддрд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдордиреБрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдкреНрд░рд┐рдп рдФрд░ рдЦрддрд░рдирд╛рдХ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рд▓рдп рдФрд░ рдЖрд╡рд╛рд╕реАрдп рдкрд░рд┐рд╕рд░ рдореЗрдВ рд╡рд╛рдпреБ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдЕрдХреНрд╕рд░ CO2 рдФрд░ рд╡реАрдУрд╕реА рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИред
рдХрд╛рд░реНрдмрдирд┐рдХ рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдкрджрд╛рд░реНрдереЛрдВ рдореЗрдВ 5000 рд╕реЗ рдЕрдзрд┐рдХ рдпреМрдЧрд┐рдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреА рд╢рд┐рдХреНрд╖рд╛ рдХрд┐рд╕реА рддрд░рд╣ рдорд╛рдирд╡ рдЬреАрд╡рди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдмрдВрдж рдХрдорд░реЗ рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдирд╡ рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣рд╡рд╛ рдХреЗ "рдкреНрд░рджреВрд╖рдг" рдФрд░ рд╡реЗрдВрдЯрд┐рд▓реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╡рд╛ рдореЗрдВ рд╡реАрдУрд╕реА рдХреА рдПрдХрд╛рдЧреНрд░рддрд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, VOCs рдХреА рдПрдХрд╛рдЧреНрд░рддрд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП CO2 рд╕реЗрдВрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ред рдЙрд╕реА рд╕рдордп, рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╡реАрдУрд╕реА рдФрд░ рд╕реАрдУ 2 рдХреА рд╕рд╛рдВрджреНрд░рддрд╛ рдмрд╛рдзреНрдп рд╣реИрдВред рд╕реАрдУ 2 рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдИ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рд╡реАрдУрд╕реА рдХреА рдПрдХрд╛рдЧреНрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рд╡рд╛ рдореЗрдВ рдХрд╛рд░реНрдмрди рдбрд╛рдЗрдСрдХреНрд╕рд╛рдЗрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИ, рддреЛ рд╡реЗрдВрдЯрд┐рд▓реЗрд╢рди рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, VOC рдФрд░ CO2 рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╣рдореЗрд╢рд╛ рд╕реАрдзрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдирдбреЛрд░ рдзреВрдореНрд░рдкрд╛рди VOC рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдПрдХ рддреЗрдЬ рдЙрдЫрд╛рд▓ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдЬреЛ CO2 рд╕реЗрдВрд╕рд░ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд╛рд░реНрдмрди рдбрд╛рдЗрдСрдХреНрд╕рд╛рдЗрдб рдХреА рдПрдХрд╛рдЧреНрд░рддрд╛ рдореЗрдВ рдмрд╣реБрдд рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдХрд╛рд░реНрдмрди рдбрд╛рдЗрдСрдХреНрд╕рд╛рдЗрдб рд╕реЗрдВрд╕рд░ рднреА рд╢рдХреНрддрд┐рд╣реАрди рд╣реЛрдВрдЧреЗ рдпрджрд┐ рдХрдорд░реЗ рдореЗрдВ рдШрд░реЗрд▓реВ рд░рд╕рд╛рдпрдиреЛрдВ, рд╕рдлрд╛рдИ рдЙрддреНрдкрд╛рджреЛрдВ, рдкреЗрдВрдЯ рдФрд░ рд╡рд╛рд░реНрдирд┐рд╢ рдпрд╛ рд╕рд╛рдзрд╛рд░рдг рдЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред AMS VOC рдПрдХрд╛рдЧреНрд░рддрд╛ рдХреЛ рдорд╛рдкрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ - CCS811 рд╕реЗрдВрд╕рд░ред
CCS811B рд╡рд╛рдпреБ рдЧреБрдгрд╡рддреНрддрд╛ рд╕реЗрдВрд╕рд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

рд╕реЗрдВрд╕рд░ рдореЗрдВ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдВрд╢рд╛рдВрдХрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИред рдХреБрдЫ рджрд┐рдиреЛрдВ рдХреЗ рднреАрддрд░ рдорд╛рдкрд╛ рдЧрдпрд╛ рдорд╛рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдирдП рд╕реЗрдВрд╕рд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рддреНрд░реБрдЯрд┐ рд╣реИ рдФрд░ рдХрдо рд╕реЗ рдХрдо рддреАрди рд╕реЗ рдЪрд╛рд░ рджрд┐рдиреЛрдВ рддрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рди рд╣реЛрдВ:

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рднреА рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рд░ рдмрд╛рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, CCS811 рд╕реЗрдВрд╕рд░ рдХреЛ "рд╡рд╛рд░реНрдо рдЕрдк" рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕реЗ "рд╡рд╛рд░реНрдо-рдЕрдк" рдХрд╛ рд╕рдордп 30 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд░реВрдк рд╕реЗ рдмрдбрд╝реА рд╣реИ:

CCS811 рдХреА рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рд╕реЗрдВрд╕рд░ рдорд╛рдк рдкрд░рд┐рдгрд╛рдо рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдореЗрдВ рд╣реИрдВ:
uint32_t CCS_CO2;
uint32_t CCS_TVOC;
рд╕реЗрдВрд╕рд░ рдХреЛ I2C2 рдмрд╕ рд╕реЗ рдЬреЛрдбрд╝рдирд╛:

рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдХреЗ рдЗрд╕ рд╕реЗрдВрд╕рд░ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдиреНрдп рд╕реЗрдВрд╕рд░реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг
рдореЛрд╢рди рд╕реЗрдВрд╕рд░ HC-SR501

рдХреБрдЫ рд╕реЗрдВрд╕рд░, рдЬреИрд╕реЗ рдХрд┐ HC-SR501 рдореЛрд╢рди рд╕реЗрдВрд╕рд░, рдХреЛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдЗрд╕ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ, рдЯрд╛рдЗрдк рдХрд░реЗрдВ = GPIO_Mode_IN_FLOATING, рдПрдХ рдкреЛрд░реНрдЯ рдЪреБрдиреЗрдВред
рдмреАрдПрд╕рдкреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ, рд╕рдВрдХрд▓рди рдХрд░реЗрдВ, рдПрдордХреЗ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред рдЕрдЧрд▓рд╛, рд╣рдо рдЗрд╕ рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдмрдЯрди (рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред
HC-SR501 рд╕реЗрдВрд╕рд░ рдХрдиреЗрдХреНрд╢рди:

рддрд╛рдкрдорд╛рди / рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░ DHT22

рддрд╛рдкрдорд╛рди / рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрдВрд╕рд░
рд╕реЗрдВрд╕рд░ рдХрдиреЗрдХреНрд╢рди:

рдЗрд╕ рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдирд┐рдкреЗрдЯ (рдЖрд░реНрдбрд┐рдиреЛ рд╕реНрдХреИрдЪ рдХрд╛ рдПрдирд╛рд▓реЙрдЧ) рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдЧрд╛ред
рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рдпрд╣рд╛рдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
dht22.cрдЗрд╕реЗ рдореБрдЦреНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВ
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
#define PORT GPIOA #define PIN GPIO_Pin_5
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реЗрдВрд╕рд░ рдХрдиреЗрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛
рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд╛рда:
#include "mx_init_hw.c" #include "dht_22.c" int main() { int16_t dht_t, dht_h; Init_HW(); dht_init();
рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо:

рд╣рд░ 4-5 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рд╕реЗрдВрд╕рд░ рдХреЛ рдкреВрдЫрддрд╛рдЫ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдХрд╛рд░рдг: рддрд╛рдкрдорд╛рди рдХреА рдЧрдгрдирд╛ 800-900 mS рдХреЗ рднреАрддрд░ рд╣реЛрддреА рд╣реИ, рджреВрд╕рд░рд╛: рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдмрд╛рд░ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реЗрдВрд╕рд░ рд╕реНрд╡рдпрдВ рдЧрд░реНрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
CLI
рдлрд░реНрдорд╡реЗрдпрд░ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╢реЗрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрдВрд╕реЛрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореБрдЦреНрдп / mx_cli.c рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рдХрдорд╛рдВрдб рд╣реИрдВ
рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреА рдХрд┐рд╕реА рднреА рдЯреАрдо рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реАрдПрд▓рдЖрдИ рдиреЛ рдЗрдХреЛ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдпрд╛рдиреА рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдЕрдХреНрд╖рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рд╡рд░реНрдгреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдк рдХрд░реЗрдВ: рдЗрдХреЛ рдСрдиред
"Sh on" рдХрдорд╛рдВрдб, рджреБрд╕рд░реЗ рджрд┐рди рджреБрдЧрдиреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡рд┐рдиреНрдпрд╛рд╕рдХрд░реНрддрд╛ рдореЗрдВ рдШреЛрд╖рд┐рдд рдЪрд░ рдФрд░ рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдЪрд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рдиреНрдпрд╛рд╕рдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓рд╛рдЗрди рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдпрд╣ рдХрдорд╛рдВрдб рдХрдВрд╕реЛрд▓ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИред
рдХреЛрдИ рдЭрдВрдбреЗ рдФрд░ рдореНрдпреВрдЯреЗрдХреНрд╕ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдХрдВрд╕реЛрд▓ рдХреА рд╡реНрдпрд╕реНрддрддрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╕рд╛рде "рдкреНрд░рд┐рдВрдЯ" рдФрд░ "рдЗрдХреЛ рдСрди" рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдЙрдЯрдкреБрдЯ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рджреЛ рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдВрд╕реЛрд▓ UART1 рдкрд░ рд╣реИ, рдФрд░ рд╡реАрд╕реАрдкреА рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрддреНрдкрд╛рджрдиред рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред
рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
send_uart1( char *data, int len ) send_usb( char *data, int len )
рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк gbl.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рд┐рдВрдЯрдлрд╝ рдореИрдХреНрд░реЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд:
#define printf(fmt,argv...){char s[128];sprintf(s,fmt,##argv);send_usb(s,strlen(s));}
рдХрдВрд╕реЛрд▓ рдХреЛ рдЙрджрд╛рд╣рд░рдг рдЖрдЙрдЯрдкреБрдЯ (рдкрд░ рдЧреВрдВрдЬ):

I2Cx рдмрд╕ рд╕реНрдХреИрди
I2C1 рдпрд╛ I2C2 рдмрд╕ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣рд╛рдБ рддреИрдпрд╛рд░ "рдлрд░реНрдорд╡реЗрдпрд░" * .hex рд╣реИрдВ
рд╕реНрдХреИрдирд░ I2CxUART1 рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдирд╛ рдЙрддреНрдкрд╛рджрди, рдЧрддрд┐ - 115200.8, рдПрди, 1
рд╕реНрдХреИрдирд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, "рд░реАрд╕реЗрдЯ" рдмрдЯрди рджрдмрд╛рдПрдВред
рдлрд░реНрдорд╡реЗрдпрд░ рдмрд╕ рдкрд░ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдкрддреЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рддреАрди рдЬреБрдбрд╝реЗ рд╕реЗрдВрд╕рд░ред