====== Настройка 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 ===== 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)