Интересную идею придумала и реализовала мастер с ником carolinebuttet1.
В мире насчитывается около 770 миллионов камер наблюдения. Некоторые из них не имеют пароля или стоит пароль по умолчанию. Это делает их легко доступными для всех, у кого есть подключение к интернету.
Этот виртуальный глазок, который придумала мастер - устройство для наблюдения за некоторыми из этих незащищенных камер. Выбор камеры случайный, т.е. при каждом закрытии и вновь открытии глазка, можно увидеть изображение с другой, рандомно выбранной, видеокамеры.
Для реализации этой идеи мастер использовала следующее оборудование:
-Ардуино Микро
-Фоторезистор
-Raspberry Pi 3 Модель B
-Экран Raspberry Pi
-Деревянная Коробка
-Дверной глазок
-Дрель
-Отвертка
Виртуальный глазок состоит из двух отличительных частей: Raspberry Pi (с небольшим экраном) и Arduino Micro. Raspberry Pi подключен к Интернету и к веб-сайту, который транслирует один случайный канал с камеры.
Внутри глазка есть датчик освещенности, чтобы определить, открыт он или закрыт. Всякий раз, когда глазок закрыт, сигнал отправляется на Raspberry Pi (через Arduino Micro), и веб-сайт переключается на другую камеру. Данные камеры, которые мастер использовала для этого проекта, были взяты с сайта Insecam , который регистрирует более 73 000 незащищенных камер.
Веб-сайт для отображения.
Для своего виртуального глазка мастер создала веб-сайт с данными, которые собрала из insecam. Можно обойтись без создания сайта и использовать эту ссылку (она меняет веб-камеру при каждом нажатии клавиши пробела)
Настройка Raspberry Pi.
Убедитесь, что ваш Raspberry Pi работает и настроен (см. Это руководство, если вы новичок в Raspberry Pi ). Подключите ЖК-экран к Raspberry Pi. Нужно настроить Raspberry Pi так, чтобы при запуске открывалась веб-страница. Как это сделать можно посмотреть здесь.
Настройка Arduino.
Внимание: чтобы сделать этот проект, ваша плата Arduino должна поддерживать библиотеку клавиатуры. Как упомянуто на странице библиотеки:
Поддерживаемые модели - платы на базе 32u4 и SAMD (семейство Leonardo, Esplora, Zero, Due и MKR)
Подключите свой датчик света к Arduino
Загрузите код на Arduino.
Код сначала запускает калибровку в течение 5 секунд (в течение которой будет зарегистрировано минимальное и максимальное значение для фотодатчика), а затем посылает сигнал клавиши «пробел» всякий раз, когда значение освещенности ниже значения (то есть глазок закрыт).
КОД НАЧАЛО
previousMillis = 0
//because light always varies, we will calibrate the photosesor at each boot.
long calibrationtime = 5000;
long startMillis = 0;
//the max value for an analog sensor is 1024
int sensorMin = 1024;
int sensorMax = 0;
int average = 0;
int threshold = 5;
bool lastState = true;
bool isClosed = true;
void setup() {
Serial.begin(9600); // open the serial port
Keyboard.begin(); // start the keyboard library
startMillis = millis(); //start the counter
}
void loop() {
//stabilize the reading in the first 5 seconds
//then, detect a variation in the stabilization.
unsigned long currentMillis = millis(); //set millis as the current time
int sensorValue = analogRead(A0); //read the sensor
if(currentMillis-startMillis < calibrationtime) {
//as long as we are in the calibration time
//during this calibration time, open and close the peephole to calibrate it.
int elapsedtime = currentMillis - startMillis;
Serial.println(elapsedtime);
Serial.println(sensorMin);
Serial.println(sensorMax);
if(sensorValue < sensorMin){ //register the max and min value for the sensor
sensorMin = sensorValue;
average = (sensorMin + sensorMax )/2;
}
if(sensorValue > sensorMax){
sensorMax = sensorValue;
average = (sensorMin + sensorMax )/2;
}
delay(100); //delay
}
else{ //if the calibration is done
if(sensorValue > average + threshold){ //detect if the peephole is open or closed
isClosed = false;
if(lastState != isClosed){
}
}
else{
isClosed = true;
if(lastState != isClosed){
Keyboard.print(" "); //send a key signal if the peephole is open
}
}
lastState = isClosed;
delay(100);
}
}
КОНЕЦ КОДА.
Дальше нужно установить оборудование в коробку.
Просверлите отверстие в глазке двери, чтобы установить фотодатчик (он определит, открыт ли или не закрыт ваш глазок, и затем активирует изменение веб-камеры). Просверлите отверстие в коробке. Перед глазком двери закрепите экран Raspberry (мастер использовал липучку).
Подключите Arduino:
Подключите фотодатчик к Arduino
Проложите USB-кабель между Rpi и Arduino. Arduino будет действовать как клавиатура и посылать сигнал пробела Raspberry Pi.
После того, как все смонтировано можно запустить виртуальный глазок.
Разместите устройство на стене
Подключите Rapsberry Pi к питанию
Теперь у вас будет 5 секунд для калибровки фотодатчика, расположенного в проеме двери, нужно открыть и закрыть его несколько раз.
Теперь виртуальный глазок должен работать!
На мой взгляд отличная идея и реализация. Конечно, можно установить устройство в другой корпус, может быть доработать код и составить список камер с предпочтительным подключением, но это уже каждый сможет сделать самостоятельно.
Источник (Source)