Счётчик лайков в Facebook из старого электросчётчика

Мы сделали физический счётчик лайков страницы студии в Facebook. Из старого электросчётчика. В основе программируемая плата Iskra Neo от «Амперки» (аналог «Ардуино») и сервомотор постоянного вращения.

Чтобы наблюдать за ростом лайков, мы поставили онлайн-камеру, направленную на счётчик, и вынесли сюда кнопку лайков (мы, конечно, хотим набрать лайков на страницу, но не только). Ещё мне нравится разбираться с электроникой и управлять вещами через интернет.

Это первый опыт.

Как это сделано

Электроника для получения лайков уже была собрана и опробована в проекте «Амперки», её достаточно только собрать. Оказалось, что это не так просто, когда я захотел вместо «Искры» сделать всё на Arduino Uno. Не получилось из-за разных принципов работы с UART(через него получает сигналы WiFi-модуль). Чтобы не писать программный UART, пришлось забить на «Ардуино» и использовать оригинальную Iskra Neo.

Модуль не может запрашивать количество лайков напрямую у страницы в Facebook, так как не работает с HTTPS. Чтобы обойти ограничение на сервер, вешается PHP-скрипт, который узнаёт количество лайков и выдаётся в виде переменной. А модуль уже обращается к адресу этого PHP-скрипта с помощью AT-команд. (Помните, раньше модему можно было сказать ATDP XXX, где XXX — это телефонный номер, и он начинал по нему звонить? Вот это они и есть.)

Электроника была готовая. Оставшиеся задачи я разделил на две части.

  1. Привод для счётчика.
  2. Управляющая программа.

Привод для счётчика

Было бы здорово сделать элегантное решение подключения счётчика с подачей тока на оригинальные катушки. Тогда можно было и оставить вращающийся диск и по минимуму вмешиваться в конструкцию. Но это сложно реализовать, поэтому отложили до следующей версии. Сейчас в счётчике сервомотор постоянного вращения прикреплён напрямую к шестерням, вращающим счётчик.

Управляющая программа

Сначала я посчитал, на сколько миллисекунд нужно включать мотор, чтобы он поворачивал диск на один оборот. Получилось примерно 1650 мс. Тут же выяснилось, что это число меняется от напряжения в сети (а оно почему-то иногда скачет) и от гуляния колёсиков счётчика. Они были разработаны лет 50 назад и плюс-минус полцифры тогда роли не играли.

Вот оригинальное устройство для получения лайков из интернета

Программе нужно знать, что именно показывает счётчик, а нам хотя бы иметь возможность вручную подкорректировать его. Чтобы узнать точное количество градусов, на которое мотор повернул колёсики, понадобится датчик вроде датчика положения дроссельной заслонки на автомобиле, это сложно.

Поэтому в первой версии для контроля правильности показаний есть электронный дисплей рядом со счётчиком и две кнопки, которыми можно вручную подкорректировать счётчик, если он куда-то не туда убежал. Полуручной режим, а что делать.

В программе предусмотрена переменная, которая хранит количество лайков на физическом счётчике. При выключении питания она сохраняется в EPROM и при включении оттуда же берётся обратно.

Это нужно, чтобы при отключении от сети знали, на сколько надо поправить счётчик.

В итоге

Получился классный арт-объект. Прежде чем настроить камеру и повесить его на стену у себя в комнате, мы показали его в общей зоне коворкинга. Это добавило нашей странице пару десятков лайков :)

Он ещё сильно далёк от совершенства. Не хватает точности, сервомотор при включении питания иногда начинает крутиться сам по себе, а также отсутствует оригинальный вращающийся диск.

Доработаем в следующей версии.

0
58 комментариев
Написать комментарий...
Sandy Bell

Ещё можно скорость вращения в зависимости от числа посетителей на сайте.
СССР счётчики поддерживали шикарный диапазон скоростей вращения...

Ответить
Развернуть ветку
Artyom Petrovich
Автор

Скорость вращения диска? Да, это можно сделать при большом количестве лайков. Но тогда точно нужно сохранять оригинальный привод и через силу тока управлять. Хотя... может и механику оставить, ей хоть понятно как управлять сразу.

Ответить
Развернуть ветку
55 комментариев
Раскрывать всегда