AEHA UART - ATtiny85 Ds18b20 SSD1306 С передачей данных в Скада BortX
pic1
Введение
программа ATtiny85
BortX
Видео обзор
Скачать
pic2
Датчик температуры DS18b20, простой как мычание
и надежный как кирпич. Для подключения к устройству
требуется всего одна нога контроллера, ибо Информация
передается по протоколу 1-Wire.
Сразу можно подключить сразу до 127 датчиков
Диапазон измерений лежит в пределах от -55 С до +125
Также в нем присутствует небольшая память которую
можно записывать и читать, и сигнал тревоги
Есть только маленький косячок ,
Датчики Ds18b20 даже купленные в одном месте
в один день, могут показывать разную
температуру, Разброс в пределах одного градуса
Не особо критично
pic1
Есть еще вариант использования применения данного изделия
В качестве ключа защиты прошивки от копирования
подробно описано тут
pic3
ATtiny85 и DS18b20
Данный девайс прекрасно программируется в среде
разработки BasCom Avr, и тут будет описание такой программы
Обратите внимание! Именно DS18B20 другие типа DS18S20 DS1820
работают иначе
Наша конструкция будет получать значение с трех датчиков температуры
Выводить показания на дисплей SSD1306. Отправлять в Com port
данные в специальном формате, для Скада BortX
Процессором системы будет контроллер ATtiny85
А так как осталась еще одна свободная нога контролера
Будем вести подсчет импульсов на ней, на случай использования
датчика движения, или счетчика входящих на турникете
а так же вести подсчет числа перезапусков системы
pic4
Полученные данные будем отправлять в Скада BortX
для визуализации и обработки
pic5
********
программа для ATtiny85
Написана в BasCom Avr
Для дисплея SSD1306 библиотека не используется, а управляется он
в командах шины I2c. Видимо ресурсов контролера ATtiny85 маловато
и провернуть библиотеку
$lib "glcdSSD1306-I2C.lib" он не в силах
но на просторах интернета нашел данный исходник
и он прекрасно работает с SSD1306 на прямую
Получается текстовый дисплей 8 строк по 16 символов
мелковато но для отладки само то, графики нет
но есть регулировка контраста
Описывать исходник вроде нет надобности
там везде написаны комментарии, но если возникнут вопросы
задавайте в комментариях к видео
BortX
Описание ТУТ********
pic6
Такая микро скада, построена на ESP8266
передает данные посредством вашего домашнего интернета
через роутер с WiFi на сайт , на котором можно смотреть
данные, управлять устройствами подключенными к ESP8266
а также менять настройки и редактировать скрипт управления
девайсом. Размер скрипта ограничен 20 строками кода,
и 20 меток для переходов, скрипту доступны десять встроенных
числовых переменных $X0-$X9.
В эти переменные можно передать любые цифровые
данные с контролера AVR или Arduino
Через COM PORT (UART , rs232) в специальном формате
На BasCom Avr ATtiny85 это выглядит так -
Open "comb.4:19200,8,n,1" For Output As #1
' ОДНИМ ОПЕРАТОРОМ
Print #1, "<0>";100;"</0> <1>";111;"</1> <2>" ;222;"</2>"
'ИЛИ КАЖДЫЙ ТЕГ ПО ОТДЕЛЬНОСТИ
Print #1, "<3>";333;"</3>"
Print #1, "<4>";444;"</4>"
после обработки скриптом BortX
1:$X0=$input;
$S0=$X0;
$S1=$X1;
$S2=$X2;
$S3=$X3;
$S4=$X4;
trans{1};
эти значения будут присвоены переменным $X
с соответствующими номерами
отобразить в браузере на данный момент получится
только пять, в окнах $S0 - $S4, которым в настройках
можно дать понятные имена типа
Temp1
Temp2
Temp3
CNT
RESET_DEVICE
pic8
однако в браузере увидите только 7 символов от названия, терпимо.
Скрипт также может отправлять сообщения в телеграм мессенджер
и на электронную почту,
Переписывать инструкцию не буду, прочитать ее можно на сайте BortX
Скада система BortX
была проверена на модулях ESP8266 01,07, weMos D1 mini
работает с разными степенями корявости,
питаются модули ESP8266 от 3,3 вольта
можно использовать зарядное от телефона и копеечные
стабилизаторы ams1117 или L78L33, вполне хватает
для работы вывод CH_PD должно соединить с VCC
pic7
на 01 понравилось больше, хотя выходов там всего 2
GPIO0 GPIO2 , и есть UART RxD TxD соответственно
И поэтому UART bortX , может работать с переферией
датчиками и прочим
по умолчанию в прошивке BortX ESP8266 для Serial port
задана скорость 115200, Однако для ATtiny85 такая бешеная ни к чему
понизить ее можно отредактировав исходник BortX.ino в Arduino IDE
который доступен для скачивания
********
для этого в коде, нужно найти
Serial.begin(115200);
и заменить на 19200 (к примеру)
Однако редактировать прошивку мне все равно пришлось
Ибо потребовалось указать ssid точки доступа, и password
к ней же, в строках
String wifi_ssid = "ssid"; // INSERT HERE Your_wifi_ssid
String wifi_password = "password"; // INSERT HERE Your_wifi_password
pic9
Так как Мастер настройки у меня не заработал
но может вам повезет
Прошивается BortX в ESP8266 01, 07 , программой ESP8266Flasher.exe
через USB-UART PL2303HX или похожий
pic10
weMos D1 mini USB-UART уже установлен
нужен только телефонный USB шнур, и установленные драйвера
pic11
при этом вывод GPIO0 любого модуля ESP8266 нужно посадить на землю