Дизайн Artyom Petrovich
9 892

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

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

В закладки
Аудио

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В итоге

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

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

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

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Artyom Petrovich", "author_type": "self", "tags": [], "comments": 58, "likes": 151, "favorites": 79, "is_advertisement": false, "subsite_label": "design", "id": 51869, "is_wide": true, "is_ugc": true, "date": "Tue, 27 Nov 2018 12:29:24 +0300" }
{ "id": 51869, "author_id": 215437, "diff_limit": 1000, "urls": {"diff":"\/comments\/51869\/get","add":"\/comments\/51869\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/51869"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199114, "possessions": [] }

58 комментариев 58 комм.

Популярные

По порядку

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

Мы собирали колокольчик, который звенит при поступлении денег на счет. Но теперь хотим и ваш счетчик тоже!

Ответить
0

Круто! А как узнавать состояние счета? По оповещению через емэйл?

Ответить
14

Нужно покрутить ручку на этом аппарате, наклониться и спросить: «Оператор, сколько на счете?»

Ответить
0

Бот в Slack.

Ответить
0

А бот как от банка узнает? Или у банка фича есть?

Ответить
1

Речь пока что не обо всех поступлениях, а о транзакциях на сайте.

Ответить
4

Ага, понял. Хороший мотиватор )
Подумал что обо всех поступлениях можно было через СМС сделать, они же приходят от банка.

Ответить
0

Бот получает сообщение об успешной транзакции от платежной системы.

Ответить
0

Вот здесь подробнее vc.ru/flood/33597

Ответить
0

Спасибо!

Ответить
0

Servo наживает?

Ответить
11

ЧТо за бред!
Всю жизнь счетчики дорабатывали что бы они не крутились, а вы тут похабщиной занимаетесь.
До сих пор кое где справа от стеклышка старого механического счетчика обрезок фотопленки вставлен

Ответить
0

Отличный коммент )
Помню медом диск мазали как-то и муравьев запускали. А тут придется обрушить сервера Цукерберга

Ответить
0

Ну, отключить свет в офисе куда проще)

Ответить
7

А слабо сделать такое: за дизлайк в офис заезжает робот и, например, стреляет водой в кого-то рандомно? Ну или кричит что-нибудь матерное.

Ответить
3

Картинка с троллейбусом из буханки.jpg

Ответить
1

Прикольно :)

Ответить
1

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

Ответить
0

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

Ответить
1

Охренительно.

Ответить
0

Сколько лет назад я видел это на каком-нибудь Хабре или сайте для домохозяек. Где инновации, почему сразу ардуино

Ответить
1

Это даже не ардуино а искра, потому что на ней собирать просто с модулями тройка на тройка-шилде. Счетчики делают давно, это правда, но в таком корпусе я не видел еще.

Ответить
0

А нет онлайн стрима счетчика? Прям захотелось зайти лайкнуть, и посмотреть на счетчик. Вообще, идея - огонь. Это просто гениальный SMM ход - заставить людей лайкнуть страницу, ради того что-б посмотреть как счетчик крутанется. Молодцы!

Ответить
1

Есть у нас на сайте. Но в счетчике сгорел сервомотор, починим и повесим обратно.

Ответить
0

Интересная задумка)

Ответить
0

Отличный девайс. Петровичи, а что если Вам "допилить" дизайн счетчика, скрыть все техно и нано, на фасад штамповку смонтировать "made in Petrovich Brothers" (сделано в СССР) и ценник прикрепить как в старые добрые времена - на джутовой веревки. Договриться с хедлайнерами от ютуба - вы им девайс и креатив в стрим, они вам конверсию на ресурсы.

Ответить
0

Пока вдохновение закончилось его докручивать. Надо же и клиентские проекты еще иногда делать.

Ответить
0

А какая задержка между получением лайка и изменением значения счётчика?

Ответить
0

Когда все работает то через 20-30 секунд видна картинка на камере. Но он подвисает иногда думаю что из-за вайфая.

Ответить
0

Окей, спасибо) Классная задумка!

Ответить
0

и лойсы считает?

Ответить
0

Конечно

Ответить

0

Конечно, как бы я сам его тестировал без дизлайков )

Ответить
0

тяга к тактильному созиданию остается, и никакие новшества её не отобьют

Ответить
0

Ждите звонков: - Ваш счетчик вышел из строя, необходимо сделать поверку, ждите нашего специалиста!

Ответить
0

Скручено!

Ответить
0

у BB Burgers стоит счётчик лайков во всех заведениях , надо у них спросить )

Ответить
0

Счётчик надо в форме нарцисса тогда...смастерить вокруг него лепестки из солнечных панелей...и чтоб на каждой новой сотне лайков гимн звучал)))

Ответить
0

Сделайте такой же счетчик для подсчета лайков этой статьи с вебкой и обратной связью. Уверен, что статья взлетит в топ, поставив рекорд на vc.ru.

Ответить
0

Круто, я б купил, за разумные деньги конечно.

Ответить
0

Задумка хорошая, а вот реализация убогая.

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

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

И вообще изначально это надо было делать на ESP модуле.

Ответить
0

Модуль не может запрашивать количество лайков напрямую у страницы в Facebook, так как не работает с HTTPS

ESP8266? Даже в примерах есть HTTPSRequest.

Ответить
0

Можно пруфлинк?

Ответить
0

Ты и сам можешь ардуину открыть и найти:

Ответить
0

Конечно можно лучше сделать, это без сомнений. Я старался использовать по максимуму готовые решения.

Ямка на краю диска покажет только оборот диска целиком. А он может повернуться на 300 градусов вместо 360, и как это отслеживать? Там механику надо дорабатывать вместе с электроникой.

Ответить
0

А он может повернуться на 300 градусов вместо 360, и как это отслеживать?

Зачем? Один оборот диска - одно переключение цифры. Надо точнее - энкодер поставь на вал движка.

Ответить
0

Сейчас увидел, что на лицевой панели прямо написано соотношение оборотов диска к переключению цифр. Для переключения младшего разряда нужно 128 оборотов диска. Даже серва не нужна, можно обычным двигателем постоянного тока обойтись.

Ответить
0

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

Ответить
0

Конечно это костыль. И это не важно. Потому что это концепт а не прототип для массового производства.

Ответить
0

Тёплый ламповый счётчик с диском.....
Как раньше 😍

Ответить
0

Хочу такой

Ответить
0

Круто!)) Всегда рад появлению таких вот необычных устройств. Мы вот на Raspberry Pi 3 собрали девайс для мгновенной передачи информации на разные прикольные интерфейсы такие как LED экран, онлайн стрим, VR и т.п. Работает на блокчейне сети Ethereum.

Ответить
0

Спасибо! Видео не показывается, а посмотреть интересно что это.

Ответить
0

Хочу такой же =)

Ответить
0

Поздно, но всё же (странно, что до этого никто не выложил это).

Ответить
0

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

Ответить

0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Команда калифорнийского проекта
оказалась нейронной сетью
Подписаться на push-уведомления
{ "page_type": "default" }