Технічні питання

2021-05-17 17:43

Запишу тут сам собі нотатки про технічні штуки з блоґом.

Відео з веб-камери

У мене є веб-камера, що дивиться на підвіконня (переважно на кактуси), та скрипт у crontab’і, що кожні 15 хвилин робить знімок.

Для посту про рухи рослин я взяв знімки камери за кілька днів, видалив всі що припадали на час з 23 до 04 години (лишив зовсім трохи для затемнення), потім переглянув і ще вручну видалив кілька невдалих кадрів.

Далі обрізав зображення за допомогою ImageMagick.

#!/bin/sh
rm frames/*
c=0
for if in `find 2021* -type f | sort`
do
  of=frames/`printf %04d $c`.jpg
  echo $if $of
  convert $if -crop 300x300+420+540 $of
  c=`expr $c + 1`
done

Потім конвертував у mp4/h264 та webm/vp8 (чомусь з vp9 були проблеми).

#!/bin/sh
ffmpeg -framerate 10 -i frames/%04d.jpg \
  -r 25 -c:v libx264 -pix_fmt yuv420p -crf 23 \
  -y plant.mp4
ffmpeg -framerate 10 -i frames/%04d.jpg \
  -c:v libvpx -qmin 0 -qmax 50 -crf 5 \
  -y plant.webm

Датчик вологості ґрунту

У мене є плани використати різні датчики: вологості ґрунту, температури тощо. Дані буду збирати і потім, можливо, аналізувати.

Для цього я хочу зробити супер-простий проект на Arduino, що збирає дані з сенсорів. Ось так:

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.print("INSERT INTO sensor (board_id, A0, A1, A2, millis) VALUES (1, ");
  Serial.print(analogRead(A0)); Serial.print(", ");
  Serial.print(analogRead(A1)); Serial.print(", ");
  Serial.print(analogRead(A2)); Serial.print(", ");
  Serial.print(millis());
  Serial.println(");");
  delay(1000);
}

Підхід дуже примітивний, але сподіваюсь, що це має спрацювати.