Программа верхнего уровня для термометров-регистраторов на базе Ардуино.

Стандартное и не стандартное программное обеспечение верхнего уровня для работы с системами Ардуино
Эдуард
Администратор
Сообщения: 484
Зарегистрирован: 30 окт 2016, 20:53

Программа верхнего уровня для термометров-регистраторов на базе Ардуино.

Сообщение Эдуард » 01 ноя 2016, 21:23

Почти во всех проектах Ардуино термометров информация выводится на дисплей компьютера через программу Монитор последовательного порта из пакета Arduino IDE. Но, бегущие по экрану цифры - не самый удобный вариант отображения измеренной температуры.
Для своих уроков Ардуино я разработал простую программу, отображающую температуру на дисплее компьютера в ”человеческом виде”. Кроме того, программа превращает любой термометр в электронный регистратор изменения температуры, что часто необходимо для контроля за такими медленными процессами. Назвал приложение Thermometer.

Изображение
Информация из контроллера термометра может передаваться как через стандартную связь платы Ардуино с компьютером, так и через любой другой COM порт реальный или виртуальный. В программе Thermometer задается номер COM порта для обмена c платой термометра, с этим портом она и работает.
Для связи через мосты USB-UART (например, PL2303) требуется драйвер моста. При подключении через стандартный кабель платы Ардуино используется драйвер платы. Arduino IDE запускать не надо. Для компьютеров с реальным COM портом (интерфес RS232) драйверы не нужны.
По сути, программа просто принимает данные с COM порта в текстовом виде и выводит их на экран. Принимается до 10 байтов, прием заканчивается после пробела или признака “\r” (код 0xd). Т.е. если будут переданы коды не цифр, а букв они также напечатаются на экране. Между передачей пакетов данных необходима пауза не менее 300 мс. Скорость передачи данных 9600 бод.
Программа рассчитана на прием данных с периодом 1 сек. Прием каждого пакета данных индицируется миганием светодиода. Если более секунды данных нет, то на экране вместо значения температуры отображается ”----”.

Изображение
Для передачи значения температуры в скетче Ардуино достаточно раз в секунду вызывать

Serial.println(temperature); // передача температуры на компьютер

Регистратор программы каждую секунду записывает полученные значения температуры в оперативную память компьютера. В любой момент можно нажать кнопку ”Регистратор” и увидеть график изменения температуры.

Изображение
При выходе из программы информация теряется.
Загрузить программу и получить полную информацию по установке и подключению можно из урока 24. В Уроках программирования Ардуино приложение применялось с термометрами Ардуино, которые использовали:
    аналоговые термодатчики LM35, TMP35-36;
    кремниевые датчики температуры KTY81;
    цифровой датчик DS18B20;
    термопары.
Несмотря на то, что программа написана для уроков Ардуино, она может быть использована в рабочих разработках для основной или дополнительной индикации температуры. Кроме того, не обязательно выводить информацию от плат Ардуино. Ничего не мешает подключать любые другие микроконтроллеры. Главное соблюдать протокол передачи данных и скорость обмена.


nikolay
Сообщения: 6
Зарегистрирован: 22 фев 2018, 07:54

Re: Программа верхнего уровня для термометров-регистраторов на базе Ардуино.

Сообщение nikolay » 22 фев 2018, 12:22

добрый день! в arduino.ide float_to_byte и double_to_byte одинаковые байты.значит с windows приложения надо только float посылать? потому как C# эти переменные по разному видит.

Эдуард
Администратор
Сообщения: 484
Зарегистрирован: 30 окт 2016, 20:53

Re: Программа верхнего уровня для термометров-регистраторов на базе Ардуино.

Сообщение Эдуард » 23 фев 2018, 22:20

Здравствуйте!
Да, наверное.


Вернуться в «Программы верхнего уровня для систем Ардуино»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей