====== Настройка Raspberry Pi для jrobo ======
Проверено на оборудовании:
* Raspberry Pi 2 Model B
* Raspberry Pi 3 Model B
===== комплектующие =====
* Корпус
* https://tmelectronics.ru/product/IT-25.0410000.RP3/
* https://tmelectronics.ru/product/IT-25.0410000.RP4/
* Часы
* поиск на ali: **''rtc ds3231 raspberry pi''**
* Порт rs-232
* поиск на ali: **''max3232 rs232 db9''** (китайские провода не брать!)
===== power =====
{{:doc:jroboplc:microusb_pinout.jpg?direct&100|}}
===== sdcard =====
Скачать образ Raspbian Lite https://www.raspberrypi.org/downloads/raspbian/
Установка образа:
df -h
sudo umount /dev/sdc1
sudo dd if=pi-jrobo.img of=/dev/sdc bs=4M conv=fsync status=progress
sync
Сохранение образа:
sudo dd of=pi-jrobo.img if=/dev/sdc bs=4M conv=fsync status=progress
Имя образа и диска заменить на свои!
===== raspi-config =====
user: pi
pass: raspberry
sudo raspi-config
* Change User Password / jradmin
* Network Options / Hostname / jrobo
* Boot Options / Wait for Network at Boot / No
* Localization Options
* Change Locale / Select:
* en_US.UTF-8 UTF-8 (default)
* ru_RU.UTF-8 UTF-8
* Change Timezone/ Asia-Barnaul
* Change Keyboard Layout/ American US
* Interfaciong Options
* SSH / Yes
* I2C / Yes
* Serial
- NO - login over serial disabled
- Yes - serial port enabled
Для дистрибутива stretch (апрель 2019) также требуется отключить блютус и поиграть с частотами в /boot/config.txt - говенное решение пользовать последовательный порт на raspberry,
также последовательные порты мапятся на /dev/serial0, и /dev/serial1 - добро пожаловать к танцу с бубном
Алексей, сделай своё решение, раз тебе это говенное.
sudo apt-get install mc telnet dos2unix nmap minicom rsync
sudo mcedit /etc/default/keyboard
XKBLAYOUT="us"
sudo mcedit /etc/ssh/sshd_config
UseDNS no
===== static ip =====
''sudo mcedit /etc/dhcpcd.conf''
interface eth0
static ip_address=192.168.2.210/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1
[[https://pi-hole.net/faq/how-do-i-set-a-static-ip-address-in-raspbian-jessie-using-etcdhcpcd-conf/|src]]
===== static ip (debian 12) =====
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
sudo mcedit /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.210
netmask 255.255.255.0
gateway 192.168.1.210
dns-nameservers 8.8.4.4 8.8.8.8
===== static ip (debian 12 via nmtui) =====
$ nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
lo loopback connected (externally) lo
wlan0 wifi disconnected --
$ sudo nmtui edit "Wired connection 1"
$ sudo systemctl restart NetworkManager
===== static ip (raspberry pi os lite 2025) =====
sudo nmtui
===== serial port =====
{{:doc:jroboplc:rs232_ttl_max3232_2.jpg?200|}}
{{:doc:jroboplc:rpi_pinout.jpg?200|}}
Подключение адаптера RS-232
^ Raspberry Pi ^ Адаптер ^
|4: +5V |VCC |
|6: GND |GND |
|8: TXD |RXD |
|10: RXD |TXD |
У адаптера микросхема с ножками:
11 - RX
12 - TX
обычно порядок такой:
VCC
TXD
RXD
GND
{{:doc:jroboplc:rpi-comport.jpg?400|}}
===== rtc ds3231 =====
В общем-то, можно и не использовать часы, если настроить синхронизацию времени с windows-компом
{{:doc:jroboplc:ds3231_module.jpg?400|}}
sudo apt-get install python-smbus i2c-tools
sudo apt-get purge fake-hwclock ntp
sudo apt-get install ntpdate
Add at the end:
sudo mcedit /boot/config.txt
dtoverlay=i2c-rtc,ds3231
Add the line (above “exit 0”):
sudo mcedit /etc/rc.local
/sbin/hwclock -s
Change:
sudo mcedit /etc/init.d/hwclock.sh
HWCLOCKACCESS=no
reboot
sudo date -s "10 OCTOBER 2016 10:00:00"
sudo hwclock -w
===== java =====
Скачать JDK 8 (Linux ARM v6/v7 Hard Float ABI) [[http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html|здесь]] и скопировать в ''/data''. Номер версии (101) заменить на нужный.
sudo su
mkdir /usr/lib/jvm
mv /data/jdk-8u101-linux-arm32-vfp-hflt.tar.gz /usr/lib/jvm
cd /usr/lib/jvm
tar xzvf jdk-8u101-linux-arm32-vfp-hflt.tar.gz
rm jdk-8u101-linux-arm32-vfp-hflt.tar.gz
ln -s jdk1.8.0_101 java-8-oracle
sudo mkdir /data
sudo chmod 777 /data
sudo mkdir /usr/lib/jvm
sudo chmod 777 /usr/lib/jvm
# скопировать дистрибутив с другого компа при помощи mc/Shell Link... пример адреса:
denis@192.168.1.44/home/denis/Public/1
cd /usr/lib/jvm
# перенести дистрибутив и распаковать
tar -xzvf jdk-8u391-linux-aarch64.tar.gz
sudo ln -s jdk1.8.0_391 java-8-oracle
===== temperature =====
#!/bin/bash
cpuTemp0=$(cat /sys/class/thermal/thermal_zone0/temp)
cpuTemp1=$(($cpuTemp0/1000))
cpuTemp2=$(($cpuTemp0/100))
cpuTempM=$(($cpuTemp2 % $cpuTemp1))
echo CPU temp"="$cpuTemp1"."$cpuTempM"'C"
echo GPU $(/opt/vc/bin/vcgencmd measure_temp)