Метеостанція побудова графіка C#
Хоча я в роботі з arduino новачок, і не все ще знаю про здібності даного апарату, я вирішив поділитися своїм успішним досвідом, тому що знаю, як це шукати те, що неможливо знайти або цього просто немає. У цій статті я докладно опишу мій проект, який став моєю практикою в університеті. Мені ніхто не нав'язував, просто друг захопився, показав мені. Мене, звичайно ж, ця штука зацікавила і я вирішив спробувати. Моя програма не така складна.
Отже, робота полягає в наступному: з відомого багатьом датчика DHT11 (датчик вологості та температури) приймаємо дані через COM порт, далі записуємо дані в текстовий файл і за цими даними будуємо графік змін.
Arduino Uno

Arduino Uno побудований на ATmega328. Платформа має 14 цифрових вхід/виходів, 6 аналогових входів, кварцовий генератор 16 МГц, USB-роз'єм, силовий роз'єм, роз'єм ICSP і кнопку перезавантаження. Для роботи необхідно підключити платформу до комп'ютера за допомогою USB-кабелю, або подати живлення за допомогою адаптера AC/DC або батареї.
Характеристики:
| Мікроконтролер | ATmega328 |
| робоча напруга | 5 В |
| Вхідна напруга (рекомендована) | 7-12 В |
| Вхідна напруга (гранична) | 6-20 В |
| Цифрові входи/виходи | 14 |
| Аналогові входи | 6 |
| Постійний струм через вхід/вихід | 40 мА |
| Постійний струм для виведення 3.3 | 50 мА |
| Флеш пам `ять | 32 Кб (ATmega328) з яких 0.5 Кб використовуються для завантажувача |
| ОЗУ | 2 Кб (ATmega328) |
| EEPROM | 1Кб (ATmega328) |
| Тактова частота | 16 МГц |
Датчик DHT11

- роздільна здатність = 16 Bit
- повторюваність = ±1%
- точність = якщо 25℃, то ±5%
- взаємозамінність = повністю взаємозамінний
- час відгуку = 1-2 сек
- гістерезис =

DHT11 цифровий датчик температури та вологості є складовим датчиком, який містить калібрований цифровий вихідний сигнал із показаннями температури та вологості. Він має високу надійність та чудову довготривалу стабільність роботи. Датчик включає резистивний сенсор вологості і компоненти NTC структури для вимірювання температури.
Підключення

1 - VCC - живлення 3,5 - 5,5 V 2 - DATA - передача даних 3 - NC - не використовується 4 - GND - негативне харчування
Для підключення до arduino необхідно підключити між 1 та 2 ніжкою резистор = 10кОм.

Схеми підключення

Схема:

Програмний код (скетч для датчика DHT11)
Завантажую цей скетч, на кожну хвилину та отримую дані в моніторі COM порту

34 - % відносна вологість 25 - в ℃ температура
Далі я прикрашав свою програму, надавав їй товарний вигляд. Все це я робив серед програмування Microsoft Visual Studio 2012 .NET. Я зробив додаток, який через COM порт отримує дані та обробляє їх. Отримую, записую у файл. Теж построчно. У першому рядку значення другий рядок - дата і час в момент отримання даних. Це стане в нагоді для побудови графіків. Хто не знайомий із роботою в C# дуже рекомендую, зручна річ. Створю форму з 2-матекстбоксами, 1 буде виводиться значення вологості, 2 - значення температури. З них створюється файл, якщо не був створений, якщо був створений до дописування до нього. 2 файли - 1-графік_температури, 2-графік_вологості. Назви можете вигадати свої. Елементи, що використовуються в програмі: textbox і textbox1, openFileDialog - для роботи з вибором файлу для графіка, notifyIcon - для роботи з іконкою, для згортання в трей.
Ось запуск програми


Далі натискаємо - Відкрити, і побачимо графік

Це графік відносної вологості. Є властивість графіка – він масштабується по осі Х. Якщо великий інтервал, ми мишкою виділяємо зону, яка нам цікава і він наближає. Якщо загальний графік, то на осі Х близько 0 натиснемо "-" і графік буде загальним.
Також я трохи вдосконалив програму, зробив так, щоб вона згорталася в трей. Тому що, щоб працювати, вона повинна бути відкрита, або запущена, її можна згорнути як вікно, але ймовірно, що вона заважатиме. А дуже зручно.
Перший значок у треї - програма. Після натискання лівої кнопки миші згортається або розгортається програма.