Технічні питання
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);
}
Підхід дуже примітивний, але сподіваюсь, що це має спрацювати.