Стимпанк - и вдруг современный e-ink? Но мир самоделок видел и не такие невероятные сочетания. Тем более, что в предлагаемой конструкции автора Instructables под ником MrLeeh всё это смотрится очень органично. Метеостанция не требует датчиков - ни встроенных, ни выносных, информацию о погоде она получает с сайта openweather.org
В состав устройства входят: Raspberry Pi Zero W, карта памяти на 16 ГБ, 7,5-дюймовый дисплей на e-ink фирмы Waveshare, «шляпа» с универсальным драйвером такого дисплея того же производителя, деревянная рамка для фотографий формата 10х15 см (самого распространённого) глубиной не менее 20 мм, чтобы поместилась вся электроника, USB-шнур и соответствующий БП, стимпанк-аксессуары - уголки, шестерёнки. На «шляпе» драйвера дисплея уже есть гнёзда под гребёнку, а в Raspberry Pi Zero W гребёнка не впаяна, поэтому мастер её впаял. Остальные соединения он выполнил без пайки. Для шнура пропилил выемку, в которой зафиксировал его при помощи клеевого пистолета, оставив небольшой запас шнура в корпусе.
Читал я в девяностых книгу об устройстве калькулятора. Её автор восхищался, что корпус этого прибора, если он крупный - почти пустой: маленькая плата, а вокруг - воздух. Как в анекдоте про контрабас: кусок воздуха, обитый досками. Здесь примерно так же:
Только всё это хорошо бы закрепить:
А здесь вам предоставляется уникальная возможность посмотреть на e-ink-дисплей с обратной стороны и увидеть негативное изображение:
Дисплей оказался чуть меньше стекла рамки, пришлось закрыть его по бокам картоном. Стимпанк-аксессуары мастер приклеил клеевым пистолетом:
Собрав аппаратную часть, мастер взялся за программную. Скачал Raspbian и установил на карту памяти по инструкции. Удобной программой для этой операции является Etcher.
После записи Raspbian на карту MrLeeh переподключил её к компьютеру как обычный накопитель, где в папке /boot создал пустой файл под названием ssh и файл wpa_supplicant.conf следующего содержания:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant
GROUP=netdev
update_config=1
network={
ssid="WIFI_SSID"
scan_ssid=1
psk="WIFI_PASSWORD"
key_mgmt=WPA-PSK
}
Почему US, если разработчик живёт в Берлине, не знаю, а WIFI_SSID и WIFI_PASSWORD он заменил на соответствующие параметры своего роутера. Отключил карту памяти от компьютера, поместил в Raspberry Pi, включил его, дождался загрузки, подключился к нему по SSH:
$ ssh pi@raspberrypi.local
В Windows может потребоваться установка сторонней терминальной программы, запускаемой по-другому, в Linux и MacOS всё необходимое уже есть. Подключившись, мастер ввёл пароль raspberry и тут же сменил его на другой командой passwd. Установил Python, менеджер пакетов, шрифты:
$ sudo apt-get upgrade
$ sudo apt-get install -y python3 python3-pip python3-smbus python3-serial python3-dev
$ sudo apt-get install -y fonts-freefont-ttf wiringpi git
$ sudo pip3 install pillow requests
Настроил поддержку дисплея по этой инструкции.
Установил скрипт метеостанции:
$ git clone https://github.com/stlehmann/rpi_epaper_weatherstation.git weather
$ cd weather
Зарегистрировался здесь и получил ключ к API.
Указал свои местоположение и ключ (при повторении смените на свои), запустил скрипт:
$ export OWM_LOCATION="Berlin,de"
$ export OWM_API_KEY="yourapikey"
$ python weather.py
Вскоре после этого на e-ink-дисплее появилось изображение. Метеостанция готова к работе.