Подключение датчиков температуры к Octoprint: различия между версиями
Строка 1: | Строка 1: | ||
− | |||
− | |||
<b>Цели:</b> | <b>Цели:</b> | ||
− | Вывести температуру с | + | Вывести температуру с датчиков температуры DS1820 в Octoprint, используя Orange PI. |
<b>Что потребуется:</b> | <b>Что потребуется:</b> | ||
− | # | + | # Датчики температуры DS1820, например такие https://qps.ru/6XdbW |
# Установленный Octoprint на Orange PI (Например https://is.gd/Vvaclx), доступ по ssh. | # Установленный Octoprint на Orange PI (Например https://is.gd/Vvaclx), доступ по ssh. | ||
# Резистор 4.7 кОм. | # Резистор 4.7 кОм. | ||
Строка 97: | Строка 95: | ||
dmesg | grep -E 'w1|wire' | dmesg | grep -E 'w1|wire' | ||
</pre> | </pre> | ||
− | 16. | + | 16. Если все сделали правильно, то должны увидеть примерно такое сообщение:<pre> |
+ | root@orangepilite:~# dmesg | grep -E 'w1|wire' | ||
+ | [ 4.436632] Driver for 1-wire Dallas network protocol. | ||
+ | [ 4.443777] gpio-9 (onewire@0): enforced open drain please flag it properly in DT/ACPI DSDT/board file | ||
+ | [ 4.491932] w1_master_driver w1_bus_master1: Attaching one wire slave 28-03139779d52e crc 05 | ||
+ | [ 4.584033] w1_master_driver w1_bus_master1: Attaching one wire slave 28-051680b9b3ff crc 50 | ||
+ | </pre> | ||
+ | 17. Копируем номер между slave и crс - это своего рода серийный номер датчика, он пригодится нам дальше<br> | ||
+ | В моем случае это: <b>28-03139779d52e</b> и <b>28-051680b9b3ff</b><br> | ||
+ | 18. Для того, чтобы проверить температуру конкретного датчика вводим команду:<pre> | ||
+ | cat /sys/bus/w1/devices/серийный номер датчика/w1_slave | ||
+ | </pre> | ||
+ | 19. Если все ввели правильно, то должны увидеть примерно такое сообщение:<pre> | ||
+ | root@orangepilite:~# cat /sys/bus/w1/devices/28-051680b9b3ff/w1_slave | ||
+ | 87 01 4b 46 7f ff 0c 10 b7 : crc=b7 YES | ||
+ | 87 01 4b 46 7f ff 0c 10 b7 t=24437 | ||
+ | </pre> | ||
+ | <b>t=24437</b> - это и есть температура без разделительного знака, т.е. по факту это 24,437 градусов Цельсия<br><br> | ||
+ | 20. Устанавливаем в Octoprint плагин <b>Enclosure Plugin</b><br> | ||
+ | 21. Заходим в настройки плагина | ||
+ | [[Файл:Enclosure_Plugin.JPG|200px|thumb|left]] | ||
+ | <br><br><br><Br><br><br><br><br><br><br> | ||
+ | 22. Можем написать свое название датчика в строке <b>Label</b><br> | ||
+ | 23. <b>Input Type</b> и <b>Sensor Type</b> устанавливаем как на картинке выше<br> | ||
+ | 24. В строке <b>Sensor Pin</b> указываем номер пина, как в строке <b>9</b><br> | ||
+ | 25. В строке <b>DS18B20 Serial</b> указываем серийный номер вашего датчика из строки <b>17</b><br> | ||
+ | 26. Устанавливаем галку напротив <b>Show temperature on navbar</b> и сохраняем<br> | ||
+ | 27. Таким образом можно добавить несколько датчиков, я добавил два.<br> | ||
+ | 28. Если все сделали правильно, то в верхнем правом углу появится иконка плагина и по нажатию на нее открывается список датчиков с фактической температурой: | ||
+ | [[Файл:Enclosure_temp.JPG|200px|thumb|left]] | ||
+ | <br><br><br><Br><br><br><br> | ||
+ | <b>Спасибо за внимание!</b> |
Текущая версия на 00:21, 20 декабря 2019
Цели:
Вывести температуру с датчиков температуры DS1820 в Octoprint, используя Orange PI.
Что потребуется:
- Датчики температуры DS1820, например такие https://qps.ru/6XdbW
- Установленный Octoprint на Orange PI (Например https://is.gd/Vvaclx), доступ по ssh.
- Резистор 4.7 кОм.
- Опционально: Макетная плата.
- Опционально: Паяльник, припой, флюс, изолента, термоусадка.
Начнем:
1. Подсоединяем датчики температуры к резистору 4.7 кОм и Orange PI, в соответствии с рисунком:
Для удобства коммутации я использовал небольшую макетную плату:
2. Приступаем к настройке. Заходим по ssh на наш одноплатный компьютер под пользователем root
3. Если уже реализовано управление питанием принтера через Octoprint статья в Вики то переходим сразу к пункту 7.
4. Переходим в домашнюю директорию пользователя, под которым работает Ocroprint. Для пользователей нашего установщика - пользователь octo).
cd /home/octo
5. Скачиваем библиотеку для управления пинами
git clone https://github.com/zhaolei/WiringOP.git -b h3 && cd WiringOP
6. Устанавливаем библиотеку
chmod +x ./build sudo ./build
7. Проверяем работоспособность
cd .. gpio readall
Должна появиться подобная таблица
+-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+ | | | 3.3v | | | 1 || 2 | | | 5v | | | | 12 | 8 | SDA.0 | ALT3 | 0 | 3 || 4 | | | 5V | | | | 11 | 9 | SCL.0 | ALT3 | 0 | 5 || 6 | | | 0v | | | | 6 | 7 | GPIO.7 | ALT3 | 0 | 7 || 8 | 0 | ALT3 | TxD3 | 15 | 13 | | | | 0v | | | 9 || 10 | 0 | ALT3 | RxD3 | 16 | 14 | | 1 | 0 | RxD2 | ALT3 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1 | 1 | 110 | | 0 | 2 | TxD2 | ALT3 | 0 | 13 || 14 | | | 0v | | | | 3 | 3 | CTS2 | ALT3 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4 | 4 | 68 | | | | 3.3v | | | 17 || 18 | 0 | ALT3 | GPIO.5 | 5 | 71 | | 64 | 12 | MOSI | ALT3 | 0 | 19 || 20 | | | 0v | | | | 65 | 13 | MISO | ALT3 | 0 | 21 || 22 | 0 | ALT3 | RTS2 | 6 | 2 | | 66 | 14 | SCLK | ALT3 | 0 | 23 || 24 | 0 | ALT3 | CE0 | 10 | 67 | | | | 0v | | | 25 || 26 | 0 | ALT3 | GPIO.11 | 11 | 21 | | 19 | 30 | SDA.1 | ALT3 | 0 | 27 || 28 | 0 | ALT3 | SCL.1 | 31 | 18 | | 7 | 21 | GPIO.21 | ALT3 | 0 | 29 || 30 | | | 0v | | | | 8 | 22 | GPIO.22 | ALT3 | 0 | 31 || 32 | 0 | ALT3 | RTS1 | 26 | 200 | | 9 | 23 | GPIO.23 | ALT3 | 0 | 33 || 34 | | | 0v | | | | 10 | 24 | GPIO.24 | ALT3 | 0 | 35 || 36 | 0 | ALT3 | CTS1 | 27 | 201 | | 20 | 25 | GPIO.25 | ALT3 | 0 | 37 || 38 | 0 | ALT3 | TxD1 | 28 | 198 | | | | 0v | | | 39 || 40 | 0 | ALT3 | RxD1 | 29 | 199 | +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+
8. Редактируем файл armbianEnv.txt
nano /boot/armbianEnv.txt
9. Прописываем в файле:
overlays=w1-gpio param_w1_pin=PA9 param_w1_pin_int_pullup=0
Строка param_w1_pin=PA9 указывает, что датчики подключены к пину PA9, который соответствует физическому пину 33 (см. таблицу выше).
Строка param_w1_pin_int_pullup=0 указывает, что используется резистор, если =1, значит резистор не используется.
10. Сохраняем и закрываем файл
Ctrl + O Enter Ctrl + X
11. Редактируем файл modules.conf:
nano /etc/modules-load.d/modules.conf
12. Прописываем в файле:
w1-gpio w1-therm
13. Сохраняем и закрываем файл
Ctrl + O Enter Ctrl + X
14. Перезагружаем систему:
reboot
15. После перезагрузки опять заходим по ssh под пользователем root и выполняем команду:
dmesg | grep -E 'w1|wire'
16. Если все сделали правильно, то должны увидеть примерно такое сообщение:
root@orangepilite:~# dmesg | grep -E 'w1|wire' [ 4.436632] Driver for 1-wire Dallas network protocol. [ 4.443777] gpio-9 (onewire@0): enforced open drain please flag it properly in DT/ACPI DSDT/board file [ 4.491932] w1_master_driver w1_bus_master1: Attaching one wire slave 28-03139779d52e crc 05 [ 4.584033] w1_master_driver w1_bus_master1: Attaching one wire slave 28-051680b9b3ff crc 50
17. Копируем номер между slave и crс - это своего рода серийный номер датчика, он пригодится нам дальше
В моем случае это: 28-03139779d52e и 28-051680b9b3ff
18. Для того, чтобы проверить температуру конкретного датчика вводим команду:
cat /sys/bus/w1/devices/серийный номер датчика/w1_slave
19. Если все ввели правильно, то должны увидеть примерно такое сообщение:
root@orangepilite:~# cat /sys/bus/w1/devices/28-051680b9b3ff/w1_slave 87 01 4b 46 7f ff 0c 10 b7 : crc=b7 YES 87 01 4b 46 7f ff 0c 10 b7 t=24437
t=24437 - это и есть температура без разделительного знака, т.е. по факту это 24,437 градусов Цельсия
20. Устанавливаем в Octoprint плагин Enclosure Plugin
21. Заходим в настройки плагина
22. Можем написать свое название датчика в строке Label
23. Input Type и Sensor Type устанавливаем как на картинке выше
24. В строке Sensor Pin указываем номер пина, как в строке 9
25. В строке DS18B20 Serial указываем серийный номер вашего датчика из строки 17
26. Устанавливаем галку напротив Show temperature on navbar и сохраняем
27. Таким образом можно добавить несколько датчиков, я добавил два.
28. Если все сделали правильно, то в верхнем правом углу появится иконка плагина и по нажатию на нее открывается список датчиков с фактической температурой:
Спасибо за внимание!