Подключение датчиков температуры к Octoprint: различия между версиями

Материал из Ender 3 Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «-----------Черновик------------ <b>Цели:</b> Вывести температуру с датчика температуры DS1820 в Octoprint, и…»)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
-----------Черновик------------
 
 
 
<b>Цели:</b>
 
<b>Цели:</b>
  
Вывести температуру с датчика температуры DS1820 в Octoprint, используя Orange PI.
+
Вывести температуру с датчиков температуры DS1820 в Octoprint, используя Orange PI.
  
 
<b>Что потребуется:</b>
 
<b>Что потребуется:</b>
# Датчик температуры DS1820, например такой https://qps.ru/6XdbW
+
# Датчики температуры 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 кОм.
Строка 19: Строка 17:
 
[[Файл:Макетная плата.jpg|200px|thumb|left]]
 
[[Файл:Макетная плата.jpg|200px|thumb|left]]
 
<br><br><br><br><br><br><br><br><Br><br><br><br><br><br><br>
 
<br><br><br><br><br><br><br><br><Br><br><br><br><br><br><br>
2.
+
2. Приступаем к настройке. Заходим по ssh на наш одноплатный компьютер под пользователем root<br>
 +
3. Если уже реализовано управление питанием принтера через Octoprint [https://ender3.club/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B8%D1%82%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_Octoprint статья в Вики] то переходим сразу к пункту <b>7</b>.
 +
4. Переходим в домашнюю директорию пользователя, под которым работает Ocroprint. Для пользователей [https://github.com/Nebari-xx/octoprint_installer нашего установщика] - пользователь octo). <pre>cd /home/octo</pre>
 +
5. Скачиваем библиотеку для управления пинами <pre>
 +
git clone https://github.com/zhaolei/WiringOP.git -b h3 && cd WiringOP
 +
</pre>
 +
6. Устанавливаем библиотеку
 +
<pre>
 +
chmod +x ./build
 +
sudo ./build
 +
</pre>
 +
7. Проверяем работоспособность
 +
<pre>
 +
cd ..
 +
gpio readall
 +
</pre>
 +
Должна появиться подобная таблица
 +
<pre>
 +
+-----+-----+----------+------+---+-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+---+------+----------+-----+-----+
 +
</pre>
 +
8. Редактируем файл <b>armbianEnv.txt</b><pre>
 +
nano /boot/armbianEnv.txt
 +
</pre>
 +
9. Прописываем в файле:<pre>
 +
overlays=w1-gpio
 +
param_w1_pin=PA9
 +
param_w1_pin_int_pullup=0
 +
</pre>
 +
Строка <b>param_w1_pin=PA9</b> указывает, что датчики подключены к пину <b>PA9</b>, который соответствует физическому пину <b>33</b> (см. таблицу выше).<br>
 +
Строка <b>param_w1_pin_int_pullup=0</b> указывает, что используется резистор, если <b>=1</b>, значит резистор не используется.
 +
10. Сохраняем и закрываем файл<pre>
 +
Ctrl + O
 +
Enter
 +
Ctrl + X
 +
</pre>
 +
11. Редактируем файл <b>modules.conf</b>:<pre>
 +
nano /etc/modules-load.d/modules.conf
 +
</pre>
 +
12. Прописываем в файле:<pre>
 +
w1-gpio
 +
w1-therm
 +
</pre>
 +
13. Сохраняем и закрываем файл<pre>
 +
Ctrl + O
 +
Enter
 +
Ctrl + X
 +
</pre>
 +
14. Перезагружаем систему:<pre>
 +
reboot
 +
</pre>
 +
15. После перезагрузки опять заходим по ssh под пользователем root и выполняем команду:<pre>
 +
dmesg | grep -E 'w1|wire'
 +
</pre>
 +
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.

Что потребуется:

  1. Датчики температуры DS1820, например такие https://qps.ru/6XdbW
  2. Установленный Octoprint на Orange PI (Например https://is.gd/Vvaclx), доступ по ssh.
  3. Резистор 4.7 кОм.
  4. Опционально: Макетная плата.
  5. Опционально: Паяльник, припой, флюс, изолента, термоусадка.

Начнем:
1. Подсоединяем датчики температуры к резистору 4.7 кОм и Orange PI, в соответствии с рисунком:

OrangePI DS1820.jpg









Для удобства коммутации я использовал небольшую макетную плату:

Макетная плата.jpg
















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. Заходим в настройки плагина

Enclosure Plugin.JPG











22. Можем написать свое название датчика в строке Label
23. Input Type и Sensor Type устанавливаем как на картинке выше
24. В строке Sensor Pin указываем номер пина, как в строке 9
25. В строке DS18B20 Serial указываем серийный номер вашего датчика из строки 17
26. Устанавливаем галку напротив Show temperature on navbar и сохраняем
27. Таким образом можно добавить несколько датчиков, я добавил два.
28. Если все сделали правильно, то в верхнем правом углу появится иконка плагина и по нажатию на нее открывается список датчиков с фактической температурой:

Enclosure temp.JPG








Спасибо за внимание!