Skip to main content

Автоматическое уведомление о появлении радиодеталей на Digikey

Описание проблемы

Понадобилось тут как-то отслеживать появление некоторых позиций на Digikey (в эту же группу входят всякие кастомные разъёмчики от SAMTEC, например, под мезонин FMC) и в какой-то момент это надоело делать, открывая периодически сохраненную ссылку, а уж коль скоро не пристало последние годы заниматься Design Automation, то и тут пришлось в очередной раз сесть за «клавикорд».

ТЗ на проблему и черновик решения

NB!  Несмотря на богатый API Digikey [https://api-portal.digikey.com/] с удобным интерфейсом и кучей примеров начиная с bash & php и заканчивая Go & Swift [https://api-portal.digikey.com/node/3287], в первую очередь задал себе цель показать мощь и изящество инструментов для DOM-парсинга страниц и принципа «каждой задаче — свой инструмент».

Для решения поставленной задачи используем так ненавистный ЕЕ-сообществом и так любимый мной за быстрый старт (минимум кодинга) и множество примеров интерпретируемый язык PHP. Помимо самого интерпретатора нам понадобится библиотека PHP Simple HTML DOM Parser[http://simplehtmldom.sourceforge.net/], которая распарсит любой HTML с фиксированной структурой легко и непринуждённо, впрочем понадобится она номинально, поскольку устанавливать самому ничего не надо — она скачивается автоматически из мейкфайла, если отсутствует в директории запуска скрипта. 

На входе скрипта должны быть партнамберы электронных компонентов, которые нам надо периодически пробивать на наличие у поставщика, но мне удобнее давать конкретную ссылку, поэтому в файле partnumber.list будет просто список URL-адресов наблюдаемых компонентов в формате: каждый URL с новой строки (лишние пробелы в начале и в конце строк удаляются внутри скрипта).

На выходе скрипта желаем получить уведомление о появлении у поставщика компонентов из списка в partnumber.list в удобном для нас формате:

  • в виде письма на email
  • в виде сообщения в телеграм-клиенте
  • в виде push-уведомления на смартфоне, например через ранее обозреваемое приложение PushOver: http://idoka.ru/pushover-notifications-on-gadgets/

В самом теле сообщения хотим видеть что за компонент (партнамбер) появился, его количество в наличии и стоимость (в US$, для кого интересно в рублях — можно запрашивать через API текущий курс и пересчитывать налету).

Сам скрипт будем пускать по cron с подходящим нам периодом.

Подробности решения

Тут всё достаточно просто и лаконично: парсим файл со ссылками и запускаем цикл foreach. Далее, получив страницу через curl, используем всю мощь Simple HTML DOM Parser, а именно, нам надо найти в исходнике страницы якоря следующих элементов: партнамбер, количество в стоке и цена за 1 шт.

Партнамбер

Партнамбер можно вытянуть из нескольких мест файла, остановимся на одном, а именно:

Из этого кода следует, что нам надо сообщить simplehtmldom, что надо извлечь партнамбер из уникального для текущей страницы сочетания: содержимое тега h1, у которого атрибут  itemprop установлен в значении «model»:

Количество

В нотации simplehtmldom запишем действие «найти содержимое тега span с id=dkQty»: 

Цена

На языке simplehtmldom это означает найти содержимое тега span с якорем itemprop в значении price: 

 Также перед этим не лишним было убедиться что это единственный элемент на странице (обычно присутствуют оптовые цены за 10, 25, 50, 250шт, но у них другие якоря).

Итог работы скрипта

Возможные альтернативные применения

Модифицировав, скрипт можно использовать не только для начальной задачи, но и для множества иных, как то:

  • динамика изменения цены на компонент
  • отслеживание популярности компонента через отслеживание изменения количества в стоке
  • инверсная задача: отслеживание опустошения складских запасов (чтобы те, кто запасся заранее знали когда из под полы можно начать приторговывать. #лопата #смеяться #шутка)

Скачать

 

Листинг исходника

https://github.com/iDoka/digikey-cool-stuff/blob/master/digikey-stock-watcher.php

 

 

 

Читать далее

[Clock Solution] Формирователи тактовых сигналов

В этой заметке буду  собирать информацию о решениях для формирования и менеджмента тактовых сигналов (преимущественно для ПЛИС), добытые из схемотехнических решений (открытых и не очень) разнообразных отладок на FPGA.

ФАПЧи, «менеджеры» и разветвители

  •  SI5342/SI5344/SI5345 — $20/$20/$30, ФАПЧ с ультранизким джиттером, 2/4/10 диф.выходами и четырьмя входами, управляемая по I2C, диапазон выходных частот: от 100 Гц до 1028 МГц
  • SI5338A$15, ФАПЧ с низким джиттером, четырьмя диф.выходами и двумя входами, управляемая по I2C, диапазон выходных частот: 0.16..710 МГц
  • SI5351B$2.5, ФАПЧ и независимый ГУН (управляемый с наружной ножки),  восемь выходов, управление по I2C, диапазон выходных частот: 2,5 кГц..200 МГц
  • SI5351A$1, две ФАПЧ, от 3х до 8ми выходов, управление по I2C, диапазон выходных частот: 2,5 кГц..200 МГц

 

 Источники тактового сигнала

  • SiT8208A — $1.5, MEMS-генератор с перестраиваемой выходной частотой в пределах 1..80 МГц и стабильностью до ±20ppm, доступные размеры: от 2*2.5мм до 5*7мм

Читать далее

[PoM] Power-on-Module: питание мощных FPGA-потребителей на PCB

Задача

  1. Подбор All-in-One компактных DC/DC-преобразователей для обеспечения всех нужных питаний для нежирных ПЛИС. В большинстве из них сделан упор на компактность и минимальное вмешатесльтво в управление работой со стороны системы
  2. Подбор мощных DC/DC-преобразователей на несколько (десятков) ампер для запитки жирных ПЛИС и/или процессоров. Большинство из них проектировались специально для использования с сильножружими ПЛИС

 

Компакт класс (All-in-One)

Linear Technology

  • LTC3569 — отлично подойдёт для какого-нибудь середнячка типа Spartan-6: три DC/DC (1.2A и 2×600мA), высокая частота преобразования (до 3МГц —  можно индуктивности покомпактнее), входной диапазон: 2.5..5.5V (хочешь от USB питай, хочешь от LiIon)

(далее…)

Читать далее

RF SoC Si10xx от SiLabs

Замечательная штука! Раньше была серия Si44xx, а теперь вот решили добавить ядро процессора, причем мощность не снизили: у лучших представителей семейства до +20 дБм!!

Всего в серии 3 семейства:

  • Si100х — матюрное
  • Si106х — выпускается
  • Si108х — выпускается

!ToDo: чем отличается Si106х от Si108х?

Цена в розничном DigiKey, например:

  • Si1080 за $3.7 а это всёже: +20dBm, 16 кБ флеша и диапазон 142..1050 МГц
  • Si1061 за $4.2: те же +20dBm, 32 кБ флеша (или $4.5 за 64 кБ) и диапазон 142..1050 МГц

 

Читать далее