Чтобы считать напряжение и преобразовать его к осязаемому цифровому значению используется аналого-цифровой преобразователь (AЦП). В мини-компьютерах Raspberry Pi, Banana Pi, Orange Pi, Nano Pi и др. отсутствуют встроенные АЦП, поэтому для чтения аналоговых сигналов потребуется внешний АЦП. Один из них — это Аналого-Цифровой Преобразователь/АЦП ADS1115.
ADS1115 — это 4-х канальный 16-битный аналого-цифровой преобразователь (АЦП). Преобразователь разработан для обеспечения точности, энергоэффективности, простоты в реализации, выполняет преобразование с программируемыми скоростями обработки данных. Встроенный усилитель с программируемым коэффициентом усиления (PGA), что позволяет проводить точные измерения больших и малых напряжений. ADS1115 имеет входной мультиплексор (MUX), который позволяет выполнять два дифференциальных или четыре несимметричных входных измерения.
В Pi4J есть библиотека для работы с АЦП ADS1115 по I2C/TWI из Java на Raspberry Pi, Banana Pi, Orange Pi, Nano Pi и Odroid. Все классы и интерфейсы находятся в пакете com.pi4j.gpio.extension.ads.*;
.
Пока не все возможности АЦП модулей ADS1x15 реализованы, например, нельзя дифференциально измерять напряжение между входами модуля, доступно только измерение относительно земли (GND). Также не реализована возможность использования пина ALERT/READY, используя GPIO для уведомления о событиях. Это было бы более эффективно, чем постоянный опрос доступности данных.
- 1 Класс ADS1x15GpioProvider
- 1.1 ADS1x15GpioProvider(int, int)
- 1.2 ADS1x15GpioProvider(I2CBus, int)
- 1.3 getProgrammableGainAmplifier(Pin)
- 1.4 setProgrammableGainAmplifier(ProgrammableGainAmplifierValue, Pin…)
- 1.5 getEventThreshold(Pin)
- 1.6 setEventThreshold(double, Pin…)
- 1.7 getMonitorInterval()
- 1.8 setMonitorInterval(int)
- 1.9 getImmediateValue(Pin)
- 1.10 ADCMonitor
- 2 Класс ADS1115GpioProvider
- 3 Класс ADS1115Pin
- 4 Подключение АЦП ADS1115 к Orange Pi PC
- 5 Материалы
- 6 Похожие записи
Класс ADS1x15GpioProvider
Это абстрактный класс, что реализует общие методы аналого-цифровых преобразователей серии ADS1x15, ADS1015 и ADS1113/ADS1114/ADS1115.
ADS1x15GpioProvider(int, int)
Конструктор класса.
public ADS1x15GpioProvider(int busNumber, int address) throws UnsupportedBusNumberException, IOException
Параметры
busNumber — номер шины.
address — I2C адрес устройства.
Возвращает
новый экземпляр ADS1x15GpioProvider
Бросает
UnsupportedBusNumberException — если данный номер шины не поддерживается базовой системой.
IOException — если сообщение с шиной I2C не работает.
ADS1x15GpioProvider(I2CBus, int)
Конструктор класса.
public ADS1x15GpioProvider(I2CBus bus, int address) throws IOException
Параметры
bus — I2C шина.
address — I2C адрес устройства.
Возвращает
новый экземпляр ADS1x15GpioProvider
Бросает
IOException — если сообщение с шиной I2C не работает.
getProgrammableGainAmplifier(Pin)
Возвращает коэффициент усиления внутреннего усилителя (PGA).
public ProgrammableGainAmplifierValue getProgrammableGainAmplifier(Pin pin)
Параметры
pin — номер пина АЦП.
Возвращает
экземпляр ProgrammableGainAmplifierValue — Коэффициент усиления внутреннего усилителя (PGA).
setProgrammableGainAmplifier(ProgrammableGainAmplifierValue, Pin…)
Настройка коэффициента усиления внутреннего усилителя (PGA).
public void setProgrammableGainAmplifier(ProgrammableGainAmplifierValue pga, Pin...pin)
Параметры
pga — коэффициент усиления внутреннего усилителя (PGA).
pin — номер пина/пинов АЦП.
getEventThreshold(Pin)
Возвращает заданный пину порог события.
public double getEventThreshold(Pin pin)
Параметры
pin — номер пина АЦП.
Возвращает
порог события
setEventThreshold(double, Pin…)
Задаёт минимальное значение порога срабатывания события/й. Другими словами, событие срабатывает, если разница между предыдущим и текущим измерением больше заданного значения.
public void setEventThreshold(double threshold, Pin...pin)
Параметры
threshold — минимальное значение порога срабатывания события/й.
pin — пин АЦП.
getMonitorInterval()
Метод возвращает интервал обновления потока мониторинга (в миллисекундах).
public int getMonitorInterval()
setMonitorInterval(int)
Метод задаёт интервал обновления потока мониторинга (в миллисекундах). Это определяет скорость, с которой контрольный поток будет считывать входные значения из чипа АЦП (значение менее 50 мс не разрешено, по умолчанию — 100 мс).
public void setMonitorInterval(int monitorInterval)
Параметры
monitorInterval — интервал обновления потока мониторинга (в миллисекундах).
getImmediateValue(Pin)
Метод используется «монитором» (ADCMonitor), чтобы получить текущее напряжение с указанного пина АЦП. Напряжение измеряется между одним из входов и общим проводом (GND), а дифференциальное измерение библиотека не поддерживает.
public double getImmediateValue(Pin pin) throws IOException
Параметры
pin — пин АЦП.
Возвращает
текущее значение от АЦП.
Бросает
IOException — если сообщение с шиной I2C не работает.
ADCMonitor
Этот класс/поток используется для активного мониторинга прерываний GPIO. Монитор запускается при создании экземпляра класса ADS1x15GpioProvider.
private class ADCMonitor extends Thread {}
Класс ADS1115GpioProvider
Этот GPIO провайдер расширяет абстрактный класс ADS1x15GpioProvider и реализует интерфейс GpioProvider, для работы с пинами АЦП ADS1115, как с родными пинами Pi4J.
ADS1115GpioProvider(int, int)
Конструктор класса.
public ADS1115GpioProvider(int busNumber, int address) throws UnsupportedBusNumberException, IOException
Параметры
busNumber — номер шины.
address — I2C адрес устройства.
Возвращает
новый экземпляр ADS1115GpioProvider
Бросает
UnsupportedBusNumberException — если данный номер шины не поддерживается базовой системой.
IOException — если сообщение с шиной I2C не работает.
ADS1115GpioProvider(I2CBus, int)
Конструктор класса.
public ADS1115GpioProvider(I2CBus bus, int address) throws IOException
Параметры
bus — I2C шина.
address — I2C адрес устройства.
Возвращает
новый экземпляр ADS1115GpioProvider
Бросает
IOException — если сообщение с шиной I2C не работает.
Класс ADS1115Pin
Класс ADS1115Pin содержит 4 экземпляра пинов АЦП ADS1115: INPUT_A0
, INPUT_A1
, INPUT_A2
и INPUT_A3
.
createAnalogInputPin(int, String)
С помощью этого метода можно создать собственный аналоговый пин. Различие между пином по умолчанию и собственным лишь в том, что второму можно задать имя.
private static Pin createAnalogInputPin(int address, String name)
Параметры
address — номер пина (0-3).
name — имя пина.
Возвращает
новый экземпляр Pin
Подключение АЦП ADS1115 к Orange Pi PC
Поскольку эта библиотека не поддерживает дифференциальное измерение, я привёл только один пример, напряжение измеряется между одним из входов и общим проводом (GND).
Схема подключения ADS1115 к Orange Pi
Можно подключить по одному переменному резистору на каждый вход датчика, если хотите проверить все входы. АЦП ADS1115 подключён к порту номер 1, так как адрес 0x48 на порту 0 резервирован. Но можно менять адрес АЦП с помощью пина ADDR и подключить устройство на порт 0.
Пример программы
Приведённая ниже программа считывает данные с датчика и выводит результаты в терминал. Обратите внимание на следующую строку:
gpioProvider.setEventThreshold(500, ADS1115Pin.ALL);
я установил порог в 500 (макс.: 32767). Если вам нужно, чтобы событие сработало при любом изменении значений с датчика, тогда установите 0 вместо 500:
gpioProvider.setEventThreshold(0, ADS1115Pin.ALL);
Пример кода:
import java.io.IOException; import java.text.DecimalFormat; import com.pi4j.gpio.extension.ads.ADS1115GpioProvider; import com.pi4j.gpio.extension.ads.ADS1115Pin; import com.pi4j.gpio.extension.ads.ADS1x15GpioProvider.ProgrammableGainAmplifierValue; import com.pi4j.io.gpio.GpioController; import com.pi4j.io.gpio.GpioFactory; import com.pi4j.io.gpio.GpioPinAnalogInput; import com.pi4j.io.gpio.event.GpioPinAnalogValueChangeEvent; import com.pi4j.io.gpio.event.GpioPinListenerAnalog; import com.pi4j.io.i2c.I2CBus; import com.pi4j.io.i2c.I2CFactory.UnsupportedBusNumberException; public class ADS1115Example { /** * @param args */ public static void main(String[] args) { try { System.out.println("<--Pi4J--> ADS1115 GPIO Example ... started."); /* * формат чисел для вывода данных */ final DecimalFormat df = new DecimalFormat("#.##"); final DecimalFormat pdf = new DecimalFormat("###.#"); /* * создаем gpio контроллер */ GpioController gpio = GpioFactory.getInstance(); /* * создаем пользовательский provider GPIO ADS1115 */ final ADS1115GpioProvider gpioProvider = new ADS1115GpioProvider(I2CBus.BUS_1, ADS1115GpioProvider.ADS1115_ADDRESS_0x48); /* * создаём аналоговые входные пины от ADS1115 */ GpioPinAnalogInput analogInputPin0 = gpio.provisionAnalogInputPin(gpioProvider, ADS1115Pin.INPUT_A0, "MyAnalogInput-A0"); GpioPinAnalogInput analogInputPin1 = gpio.provisionAnalogInputPin(gpioProvider, ADS1115Pin.INPUT_A1, "MyAnalogInput-A1"); GpioPinAnalogInput analogInputPin2 = gpio.provisionAnalogInputPin(gpioProvider, ADS1115Pin.INPUT_A2, "MyAnalogInput-A2"); GpioPinAnalogInput analogInputPin3 = gpio.provisionAnalogInputPin(gpioProvider, ADS1115Pin.INPUT_A3, "MyAnalogInput-A3"); /* * ВНИМАНИЕ !! Для всех аналоговых входных контактов важно установить PGA * (программируемый коэффициент усиления внутреннего усилителя). (Вы * можете опционально установить каждый вход на другое значение). * Измеренное входное напряжение никогда не должно превышать это значение! */ gpioProvider.setProgrammableGainAmplifier(ProgrammableGainAmplifierValue.PGA_4_096V, ADS1115Pin.ALL); /* * Определяем пороговое значение для каждого вывода для событий изменения * аналогового значения. Важно установить этот порог достаточно высоким, * чтобы программа не захлебнулась событиями изменения для незначительных * изменений */ gpioProvider.setEventThreshold(500, ADS1115Pin.ALL); /* * Определите интервал обновления потока мониторинга (в миллисекундах). * Это определяет скорость, с которой контрольный поток будет считывать * входные значения из чипа АЦП (значение менее 50 мс не разрешено) */ gpioProvider.setMonitorInterval(300); /* * создаем слушатель изменения значения входного напряжения */ GpioPinListenerAnalog listener = new GpioPinListenerAnalog() { @Override public void handleGpioPinAnalogValueChangeEvent(GpioPinAnalogValueChangeEvent event) { /* необработанное значение */ double value = event.getValue(); /* в процентах */ double percent = ((value * 100) / ADS1115GpioProvider.ADS1115_RANGE_MAX_VALUE); /* * приблизительное напряжение (* масштабируется на основе настройки * PGA) */ double voltage = gpioProvider.getProgrammableGainAmplifier(event.getPin()).getVoltage() * (percent / 100); /* выводим данные */ System.out.println(" (" + event.getPin().getName() + ") : VOLTS=" + df.format(voltage) + " | PERCENT=" + pdf.format(percent) + "% | RAW=" + value + " "); } }; analogInputPin0.addListener(listener); analogInputPin1.addListener(listener); analogInputPin2.addListener(listener); analogInputPin3.addListener(listener); /* * Оставляем программу работать 5 минут */ Thread.sleep(5 * 60 * 1000); /* * останавливаем все действия / потоки GPIO, отключая контроллер GPIO * (этот метод принудительно завершает работу всех потоков мониторинга * GPIO и запланированных задач) */ gpio.shutdown(); System.out.println("Exiting ADS1115GpioExample"); } catch (UnsupportedBusNumberException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } }
Проверяем код:
- создаём java файл и вставляем код:
nano ADS1115Example.java
- компилируем файл:
javac -classpath .:classes:/opt/pi4j/lib/'*' ADS1115Example.java
- запускаем программу:
sudo java -classpath .:classes:/opt/pi4j/lib/'*' ADS1115Example
Результат
Материалы
ADS1115 — 16-битный Аналого-Цифровой Преобразователь с I2C интерфейсом. Модуль RI038
Pi4J/pi4j · GitHub
Скачать документацию Datasheet ADS1115.pdf
Устали от непрерывных убираний? Доверьте заботы о гигиене профессионалам! Наша чистая компания предоставляет услуги уборки для жилых помещений и рабочих пространств: постоянная, основная, специальная и другие варианты! Мы используем только безопасные и эффективные моющие средства, а также новейшее оборудование. Поручите уборку и удовлетворяйте временем для себя! Познакомьтесь больше о наших услугах на сайте: https://ubork-kompan24.ru . Приятный порядок — залог здоровья!
Устали от непрерывной уборки в своем доме или офисе? Мы осознаем, как непросто найти время на поддержание абсолютной чистоты, особенно в круговороте повседневной жизни. Наша клининговая компания в Санкт-Петербурге предлагает услуги профессионального клининга, которые сделают ваше пространство совершенным. Мы гарантируем высокое качество работы, применяя только неагрессивные и эффективные средства. Выбирайте Уборка помещений и офисов Не дайте пыли и беспорядку отнимать у вас время. Доверьте уборку нашим опытным специалистам, и получайте удовольствие от уютом и чистотой в вашем доме или офисе. Мы готовы помочь вам в любое время, формируя атмосферу, в которой комфортно находиться.
безопасная сделка аккаунтов https://marketplace-akkauntov-top.ru/
купить аккаунт с прокачкой маркетплейс аккаунтов
Find Accounts for Sale Account Trading Platform
Account Selling Service Account Buying Platform
Account Trading Platform Account Selling Platform
Account Sale accountsmarketplacehub.com
Sell accounts Account Buying Platform
Secure Account Sales Purchase Ready-Made Accounts
database of accounts for sale accounts for sale
accounts marketplace account trading
guaranteed accounts https://buyaccountsdiscount.com
account exchange buy account
find accounts for sale profitable account sales
buy and sell accounts accounts for sale
accounts for sale profitable account sales
account trading account store
ready-made accounts for sale account exchange service
account trading service sell pre-made account
secure account sales account buying service
account sale account trading
buy account account catalog
online account store account selling platform
accounts marketplace account trading platform
account selling platform sell pre-made account
account selling service account purchase
account exchange service buy accounts
sell pre-made account social-accounts-marketplaces.live
website for buying accounts https://social-accounts-marketplace.xyz/
account buying service https://buy-accounts-shop.pro/
gaming account marketplace https://buy-accounts.live/
website for selling accounts https://social-accounts-marketplace.live
secure account purchasing platform accounts market
купить аккаунт akkaunty-na-prodazhu.pro
маркетплейс аккаунтов rynok-akkauntov.top
маркетплейс аккаунтов https://akkaunt-magazin.online/
продажа аккаунтов купить аккаунт
биржа аккаунтов https://online-akkaunty-magazin.xyz
маркетплейс аккаунтов соцсетей https://kupit-akkaunt.online
facebook ad account for sale https://buy-adsaccounts.work
buy account facebook ads buy a facebook account
buy facebook ads manager https://buy-ad-account.top
buy accounts facebook https://buy-ads-account.click
buy facebook profile facebook ad accounts for sale
google ads accounts https://buy-ads-account.top
facebook ad account for sale https://buy-accounts.click
buy google agency account https://ads-account-for-sale.top
buy google ads https://buy-account-ads.work
buy google ads threshold accounts https://sell-ads-account.click
adwords account for sale https://ads-agency-account-buy.click
buy verified bm buy verified business manager facebook
buy business manager https://buy-business-manager-acc.org
buy fb bm buy facebook business manager accounts
buy business manager https://verified-business-manager-for-sale.org
buy facebook bm https://buy-business-manager-accounts.org/
buy tiktok business account https://buy-tiktok-ads-account.org
buy tiktok ads https://tiktok-ads-account-for-sale.org
buy tiktok ads accounts https://tiktok-agency-account-for-sale.org
buy tiktok ads account https://buy-tiktok-ad-account.org
buy tiktok ad account https://buy-tiktok-ads.org
https://t.me/s/vavada_official_vavada
Календарь стрижек https://inforigin.ru .
dragon slots online real money dragon slots online real money .
thepokies.net thepokiesnet250.com .
sportbets http://www.sportbets17.ru .
прогнозы на спорт хоккей https://luchshie-prognozy-na-khokkej1.ru/ .
дешевые айфоны спб kupit-ajfon-cs1.ru .
mobis спб http://kupit-ajfon-cs3.ru/ .
1win aviator predictor http://www.1win3027.com
электрокарнизы москва http://elektrokarnizy750.ru/ .
mostbet az promo ilə qeydiyyat mostbet az promo ilə qeydiyyat
1win qeydiyyat bonus 1win qeydiyyat bonus
проект перепланировки цена проект перепланировки цена .
buy facebook account account exchange service secure account purchasing platform
доставка воды на дачу https://www.dostavka-tehnicheskoi-vodi.ru .
оценка швейцарских часов в ломбарде ocenka-chasov-onlajn10.ru .
изготовление лестниц из металла https://lestnicy-na-metallokarkase-1.ru/ .
1win armenia https://www.1win3072.ru
mostbet lisenziyasi uz http://mostbet4073.ru
mental health support chat http://www.mental-health22.com/ .
1win am 1win3073.ru
1win https://1win3075.ru/
winline как получить бонус winline как получить бонус .
I think this is one of the most important info for me.
And i’m glad reading your article. But want to remark on few general things, The web site style is great,
the articles is really nice : D. Good job, cheers
1win 1win
Appreciate this post. Will try it out.
These are in fact fantastic ideas in on the topic of
blogging. You have touched some nice points here.
Any way keep up wrinting.
I know this web site offers quality based articles and other stuff, is there any other web page which presents these things in quality?
Thanks for sharing your thoughts on пожелания счастья.
Regards
An impressive share! I have just forwarded this onto a coworker who has been doing a little research on this.
And he in fact bought me lunch due to the fact that I stumbled
upon it for him… lol. So let me reword this….
Thank YOU for the meal!! But yeah, thanks for spending the time to talk about this issue here on your internet site.
Hi there this is kinda of off topic but I was wondering if blogs use WYSIWYG
editors or if you have to manually code with HTML.
I’m starting a blog soon but have no coding experience so
I wanted to get advice from someone with experience.
Any help would be enormously appreciated!
Howdy, i read your blog from time to time and i own a similar one and i
was just curious if you get a lot of spam feedback?
If so how do you stop it, any plugin or anything you can suggest?
I get so much lately it’s driving me crazy so any help is very
much appreciated.
I just could not go away your site before suggesting that I really
enjoyed the standard information a person supply to your
visitors? Is gonna be back incessantly in order to check
up on new posts
Sweet blog! I found it while searching on Yahoo News. Do you
have any suggestions on how to get listed in Yahoo News?
I’ve been trying for a while but I never seem to
get there! Appreciate it
Good day! I just would like to offer you a big thumbs up for your excellent information you have got here on this post.
I’ll be returning to your blog for more soon.
If some one needs to be updated with latest
technologies afterward he must be visit this
web site and be up to date everyday.
Helpful information. Lucky me I found your web site by chance,
and I am surprised why this coincidence did not happened earlier!
I bookmarked it.
melbet app play store http://www.melbet1035.ru
кашпо дизайн кашпо дизайн .
1вин теннис ставки https://1win3065.ru
интересные горшки для цветов [url=www.dizaynerskie-kashpo-sochi.ru]интересные горшки для цветов[/url] .
купить цветочный горшок кашпо купить цветочный горшок кашпо .
how to take rybelsus and levothyroxine: does aetna cover semaglutide — AsthmaFree Pharmacy
relief from muscle spasms online: muscle relaxants online no Rx — Zanaflex medication fast delivery
safe online source for Tizanidine: muscle relaxants online no Rx — Zanaflex medication fast delivery
ventolin 90 mg: ventolin prices in canada — ventolin otc usa
IverCare Pharmacy: is ivermectin safe for pregnant mares — IverCare Pharmacy
AsthmaFree Pharmacy: AsthmaFree Pharmacy — AsthmaFree Pharmacy
cheap semaglutide: AsthmaFree Pharmacy — AsthmaFree Pharmacy
FluidCare Pharmacy: lasix 40mg — FluidCare Pharmacy
https://asthmafreepharmacy.com/# ventolin generic
http://glucosmartrx.com/# AsthmaFree Pharmacy
muscle relaxants online no Rx: prescription-free muscle relaxants — buy Zanaflex online USA
1win скачать айфон https://www.1win40010.ru
AsthmaFree Pharmacy: AsthmaFree Pharmacy — semaglutide fda
stromectol dosage chart in pounds: IverCare Pharmacy — IverCare Pharmacy
AsthmaFree Pharmacy: AsthmaFree Pharmacy — where can i buy ventolin online
drug ivermectin: IverCare Pharmacy — IverCare Pharmacy
atractive http://1win40005.ru
интересные цветочные горшки интересные цветочные горшки .
Slot oyunlari Pinco-da: Uduslari tez çixar Pinco il? — Yüks?k RTP slotlar
Ca cu?c tr?c tuy?n GK88: Khuy?n mai GK88 — Dang ky GK88
Situs togel online terpercaya: Situs togel online terpercaya — Abutogel login
Jiliko app: Jiliko login — Jiliko login
Slot oyunlari Pinco-da: Qeydiyyat bonusu Pinco casino — Etibarli onlayn kazino Az?rbaycanda
Swerte99 casino walang deposit bonus para sa Pinoy: Swerte99 — Swerte99 bonus
Situs judi online terpercaya Indonesia: Mandiribet — Live casino Mandiribet
https://jilwin.pro/# Jiliko casino
Jollibet online sabong: jollibet login — jollibet casino
https://1winphili.company/# Online gambling platform Jollibet
Swerte99 login: Swerte99 slots — Swerte99
Khuy?n mãi GK88: Trò choi n? hu GK88 — Cá cu?c tr?c tuy?n GK88
Slot gacor Beta138: Login Beta138 — Live casino Indonesia
Situs judi resmi berlisensi: Withdraw cepat Beta138 — Bonus new member 100% Beta138
мелбет ком мелбет ком
Online betting Philippines: Online betting Philippines — Online casino Jollibet Philippines
скачать 1win casino на андроид http://1win40008.ru
https://swertewin.life/# Swerte99 app
1winphili: jollibet — 1winphili
Slot oyunlari Pinco-da: Onlayn rulet v? blackjack — Qeydiyyat bonusu Pinco casino
Online casino Jollibet Philippines: jollibet app — jollibet app
Online betting Philippines: Online gambling platform Jollibet — jollibet login
Abutogel login: Jackpot togel hari ini — Bandar togel resmi Indonesia
креативные горшки для цветов купить креативные горшки для цветов купить .
Jollibet online sabong: Online casino Jollibet Philippines — jollibet casino
Ca cu?c tr?c tuy?n GK88: Casino online GK88 — GK88
jollibet login: 1winphili — jollibet app
jollibet: Online betting Philippines — 1winphili
Live casino Indonesia: Bonus new member 100% Beta138 — Bandar bola resmi
Situs judi resmi berlisensi: Link alternatif Beta138 — Login Beta138
Mexican Pharmacy Hub: Mexican Pharmacy Hub — Mexican Pharmacy Hub
http://mexicanpharmacyhub.com/# Mexican Pharmacy Hub
escitalopram oxalate online pharmacy: smith’s pharmacy — MediDirect USA
Indian Meds One: Indian Meds One — indian pharmacy paypal
wedgewood pharmacy: ibuprofen pharmacy only — MediDirect USA
стильные цветочные горшки стильные цветочные горшки .
which pharmacy has the best price on viagra: MediDirect USA — international pharmacy
Mexican Pharmacy Hub: Mexican Pharmacy Hub — Mexican Pharmacy Hub
mexican pharmacy for americans: low cost mexico pharmacy online — order azithromycin mexico
Mexican Pharmacy Hub: isotretinoin from mexico — get viagra without prescription from mexico
naturxheal family pharmacy & health store-doral: MediDirect USA — MediDirect USA
MediDirect USA: motion sickness — us online pharmacy
Indian Meds One: п»їlegitimate online pharmacies india — online shopping pharmacy india
indian pharmacy paypal: Indian Meds One — Indian Meds One
mexico online pharmacy reviews: percocet price pharmacy — can i get misoprostol at a pharmacy
http://mexicanpharmacyhub.com/# Mexican Pharmacy Hub
Indian Meds One: Indian Meds One — Indian Meds One
MediDirect USA: MediDirect USA — MediDirect USA
buy viagra from mexican pharmacy: Mexican Pharmacy Hub — Mexican Pharmacy Hub
https://indianmedsone.com/# indian pharmacy
MediDirect USA: MediDirect USA — MediDirect USA
online shopping pharmacy india: world pharmacy india — india pharmacy mail order
xenical pharmacy online: atomoxetine online pharmacy — MediDirect USA
кашпо из ротанга с автополивом кашпо из ротанга с автополивом .
rybelsus from mexican pharmacy: Mexican Pharmacy Hub — best prices on finasteride in mexico
https://medidirectusa.com/# national rx pharmacy
buy antibiotics over the counter in mexico: buy cialis from mexico — Mexican Pharmacy Hub
Mexican Pharmacy Hub: isotretinoin from mexico — buy from mexico pharmacy
Tadalify: blue sky peptide tadalafil review — cialis bodybuilding
SildenaPeak: viagra professional pfizer — generic viagra singapore
SildenaPeak: sildenafil citrate tablets ip 100 mg — SildenaPeak
https://tadalify.com/# cialis overnight deleivery
https://kamameds.shop/# ED treatment without doctor visits
Fast-acting ED solution with discreet packaging: Compare Kamagra with branded alternatives — ED treatment without doctor visits
overnight cialis: Tadalify — Tadalify
интересные горшки для цветов интересные горшки для цветов .
Safe access to generic ED medication: KamaMeds — ED treatment without doctor visits
Sildenafil oral jelly fast absorption effect: Safe access to generic ED medication — Affordable sildenafil citrate tablets for men
SildenaPeak: SildenaPeak — SildenaPeak
cialis where can i buy: Tadalify — Tadalify
viagra pharmacy australia: viagra prescription india — SildenaPeak
Non-prescription ED tablets discreetly shipped: Affordable sildenafil citrate tablets for men — ED treatment without doctor visits
Kamagra oral jelly USA availability: Kamagra oral jelly USA availability — Non-prescription ED tablets discreetly shipped
Tadalify: cialis otc 2016 — Tadalify
viagra drug: SildenaPeak — SildenaPeak
Men’s sexual health solutions online: Kamagra oral jelly USA availability — Kamagra reviews from US customers
Tadalify: Tadalify — Tadalify
SildenaPeak: female viagra pill buy — can you purchase viagra over the counter in mexico
SildenaPeak: sildenafil 100mg from india — female viagra pill for sale
Kamagra oral jelly USA availability: Kamagra oral jelly USA availability — Kamagra oral jelly USA availability
Safe access to generic ED medication: Fast-acting ED solution with discreet packaging — Online sources for Kamagra in the United States
горшок с автополивом горшок с автополивом .
Non-prescription ED tablets discreetly shipped: Men’s sexual health solutions online — Compare Kamagra with branded alternatives
Tadalify: Tadalify — Tadalify
Tadalify: Tadalify — cialis coupon free trial
Affordable sildenafil citrate tablets for men: ED treatment without doctor visits — Kamagra oral jelly USA availability
Men’s sexual health solutions online: Compare Kamagra with branded alternatives — KamaMeds
Fast-acting ED solution with discreet packaging: Kamagra oral jelly USA availability — Fast-acting ED solution with discreet packaging
viagra 100mg online uk: SildenaPeak — SildenaPeak
SildenaPeak: SildenaPeak — SildenaPeak
Tadalify: cialis and nitrates — how much does cialis cost at cvs
SildenaPeak: sildenafil buy over the counter — SildenaPeak
Compare Kamagra with branded alternatives: Kamagra oral jelly USA availability — Men’s sexual health solutions online
cialis erection: cheapest cialis 20 mg — Tadalify
cialis online no prior prescription: Tadalify — teva generic cialis
Tadalify: cialis 5 mg tablet — Tadalify
Safe access to generic ED medication: Safe access to generic ED medication — Safe access to generic ED medication
Tadalify: canadian pharmacy cialis 20mg — Tadalify
Tadalify: best place to get cialis without pesricption — cialis tablets
price of viagra 100mg in india: SildenaPeak — SildenaPeak
cialis w/o perscription: cialis samples — Tadalify
Tadalify: cialis prescription assistance program — where to buy tadalafil in singapore
SildenaPeak: sildenafil purchase india — SildenaPeak
Tadalify: buy generic cialiss — Tadalify
order viagra pills: SildenaPeak — buy online sildenafil citrate
Tadalify: Tadalify — tadalafil troche reviews
IverGrove: IverGrove — IverGrove
TrustedMeds Direct: TrustedMeds Direct — TrustedMeds Direct
CardioMeds Express: CardioMeds Express — CardioMeds Express
CardioMeds Express: lasix 20 mg — CardioMeds Express
lasix generic: lasix for sale — buy lasix online
lasix generic name: lasix dosage — lasix 40 mg
cheap clomid pill: buying generic clomid no prescription — FertiCare Online
IverGrove: durvet ivermectin horse paste — IverGrove
furosemide 100mg: CardioMeds Express — CardioMeds Express
https://trustedmedsdirect.com/# amoxicillin buy online canada
buying generic clomid: FertiCare Online — FertiCare Online
IverGrove: IverGrove — IverGrove
TrustedMeds Direct: order amoxicillin online — TrustedMeds Direct
SteroidCare Pharmacy: prednisone 1 mg for sale — prednisone 200 mg tablets
amoxicillin online purchase: TrustedMeds Direct — amoxicillin discount
IverGrove: heartguard ivermectin — IverGrove
can i get generic clomid without a prescription: FertiCare Online — FertiCare Online
горшки с автополивом для комнатных растений горшки с автополивом для комнатных растений .
TrustedMeds Direct: amoxicillin brand name — TrustedMeds Direct
buy prednisone without a prescription best price: SteroidCare Pharmacy — buy prednisone from canada
SteroidCare Pharmacy prednisone pack SteroidCare Pharmacy
cost of cheap clomid FertiCare Online where can i get clomid
ivermectin ticks: IverGrove — IverGrove
lasix medication: CardioMeds Express — furosemide 100mg
amoxicillin over counter: amoxicillin 500mg capsules price — amoxicillin 875 125 mg tab
how can i get cheap clomid without prescription how to get clomid FertiCare Online
https://trustedmedsdirect.com/# TrustedMeds Direct
TrustedMeds Direct: TrustedMeds Direct — amoxicillin 500mg for sale uk
can i get generic clomid: cost cheap clomid online — FertiCare Online
purchase prednisone from india: SteroidCare Pharmacy — prednisone online india
SteroidCare Pharmacy: SteroidCare Pharmacy — SteroidCare Pharmacy
Farmacie online sicure farmaci generici a prezzi convenienti Farmacia online piГ№ conveniente
https://potenzafacile.shop/# cialis farmacia senza ricetta
farmacie online affidabili: ordina tadalafil da casa in Italia — farmacie online sicure
viagra pfizer 25mg prezzo: viagra online Italia — viagra generico prezzo piГ№ basso
Farmacie on line spedizione gratuita farmacia online cialis Italia top farmacia online
farmacia online: acquisto discreto di medicinali in Italia — farmacia online senza ricetta
farmacie online autorizzate elenco: ordina tadalafil da casa in Italia — migliori farmacie online 2024
comprare farmaci online all’estero: acquistare cialis generico online — farmacia online senza ricetta
https://pillolesubito.com/# acquisto farmaci con ricetta
migliori farmacie online 2024: ordina tadalafil da casa in Italia — farmaci senza ricetta elenco
comprare farmaci online con ricetta: sildenafil generico senza ricetta — farmacie online sicure
comprare farmaci online con ricetta Farmaci Diretti farmacie online sicure
Farmacia online piГ№ conveniente: cialis online Italia — acquisto farmaci con ricetta
viagra originale in 24 ore contrassegno: pillole per la disfunzione erettile in Italia — viagra generico recensioni
farmacia online: farmaci senza ricetta online — acquistare farmaci senza ricetta
acquistare farmaci senza ricetta: medicinali senza prescrizione medica — п»їFarmacia online migliore
migliori farmacie online 2024 FarmaciDiretti farmacie online affidabili
https://forzaintima.com/# trattamenti per la salute sessuale senza ricetta
Farmacie on line spedizione gratuita: ordina tadalafil da casa in Italia — п»їFarmacia online migliore
comprare farmaci online all’estero soluzioni rapide per la potenza maschile farmacie online affidabili
farmaci senza ricetta elenco: ordina tadalafil da casa in Italia — farmaci senza ricetta elenco
farmacie online affidabili farmaci generici a prezzi convenienti Farmacia online miglior prezzo
https://forzaintima.shop/# ForzaIntima
https://bharatmedsdirect.shop/# indian pharmacies safe
online mexico pharmacy USA: BorderMeds Express — BorderMeds Express
BharatMeds Direct: BharatMeds Direct — online shopping pharmacy india
world pharmacy india: BharatMeds Direct — BharatMeds Direct
mail order pharmacy india: buy prescription drugs from india — reputable indian pharmacies
BharatMeds Direct BharatMeds Direct buy medicines online in india
online pharmacy australia: MapleMeds Direct — online pharmacy no presc
https://bordermedsexpress.com/# BorderMeds Express
MapleMeds Direct: MapleMeds Direct — MapleMeds Direct
MapleMeds Direct: MapleMeds Direct — clomiphene online pharmacy
world pharmacy india BharatMeds Direct buy medicines online in india
уличное кашпо для цветов напольное уличное кашпо для цветов напольное .
indianpharmacy com: indianpharmacy com — BharatMeds Direct
BorderMeds Express: BorderMeds Express — BorderMeds Express
prednisone pharmacy prices canadia online pharmacy MapleMeds Direct
http://bharatmedsdirect.com/# top 10 online pharmacy in india
BorderMeds Express: BorderMeds Express — trusted mexico pharmacy with US shipping
MapleMeds Direct lorazepam pharmacy online naltrexone river pharmacy
best prices on finasteride in mexico: BorderMeds Express — BorderMeds Express
https://bharatmedsdirect.shop/# best online pharmacy india
BorderMeds Express: BorderMeds Express — BorderMeds Express
BorderMeds Express п»їmexican pharmacy finasteride mexico pharmacy
amoxicillin mexico online pharmacy: mexican pharmacy for americans — mexico pharmacy
BharatMeds Direct: BharatMeds Direct — BharatMeds Direct
BorderMeds Express: BorderMeds Express — BorderMeds Express
https://bharatmedsdirect.shop/# online shopping pharmacy india
BorderMeds Express: BorderMeds Express — BorderMeds Express
BorderMeds Express: real mexican pharmacy USA shipping — buy antibiotics over the counter in mexico
top 10 pharmacies in india: pharmacy website india — top online pharmacy india
https://maplemedsdirect.com/# MapleMeds Direct
proscar inhouse pharmacy: bupropion xl online pharmacy — singapore pharmacy online store
MapleMeds Direct MapleMeds Direct care pharmacy rochester nh store hours
mail order pharmacy india: BharatMeds Direct — BharatMeds Direct
modafinil mexico online order from mexican pharmacy online BorderMeds Express
горшки для напольных растений купить горшки для напольных растений купить .
BorderMeds Express: accutane mexico buy online — sildenafil mexico online
BorderMeds Express buy viagra from mexican pharmacy BorderMeds Express
mobic pharmacy: online medicine order discount — Oxytrol
BorderMeds Express: BorderMeds Express — order azithromycin mexico
mail order pharmacy india BharatMeds Direct world pharmacy india
cymbalta discount pharmacy: Malegra FXT plus — cheap online pharmacy
lipitor 4 copay participating pharmacy: MapleMeds Direct — MapleMeds Direct
walgreen pharmacy hours by store: aquatic pharmacy azithromycin — MapleMeds Direct
migliori casino online con Starburst: giocare da mobile a Starburst — Starburst slot online Italia
bonus di benvenuto per Starburst jackpot e vincite su Starburst Italia bonus di benvenuto per Starburst
http://1win69.com/# preman69
jackpot e vincite su Starburst Italia: jackpot e vincite su Starburst Italia — Starburst giri gratis senza deposito
https://1win888indonesia.shop/# daftar garuda888 mudah dan cepat
book of ra deluxe: recensioni Book of Ra Deluxe slot — book of ra deluxe
Starburst giri gratis senza deposito jackpot e vincite su Starburst Italia Starburst slot online Italia
preman69 login: preman69 — preman69 login
daftar garuda888 mudah dan cepat situs judi online resmi Indonesia garuda888 game slot RTP tinggi
bonaslot link resmi mudah diakses: bonaslot kasino online terpercaya — bonaslot link resmi mudah diakses
migliori casino online con Starburst: jackpot e vincite su Starburst Italia — migliori casino online con Starburst
bonaslot: 1wbona — bonaslot
https://1win69.com/# preman69 slot
preman69 login slot gacor hari ini preman69 preman69
https://1win69.shop/# preman69 login tanpa ribet
Starburst giri gratis senza deposito: bonus di benvenuto per Starburst — casino online sicuri con Starburst
garuda888 login resmi tanpa ribet: 1win888indonesia — situs judi online resmi Indonesia
кашпо напольное кашпо напольное .
garuda888 garuda888 live casino Indonesia link alternatif garuda888 terbaru
bonaslot link resmi mudah diakses: bonaslot link resmi mudah diakses — bonaslot kasino online terpercaya
https://1wbona.com/# bonaslot link resmi mudah diakses
jackpot e vincite su Starburst Italia: Starburst slot online Italia — starburst
bonaslot kasino online terpercaya: bonaslot situs bonus terbesar Indonesia — bonaslot link resmi mudah diakses
garuda888 live casino Indonesia: garuda888 game slot RTP tinggi — garuda888 live casino Indonesia
migliori casino online con Starburst: starburst — Starburst giri gratis senza deposito
1wbona: bonaslot — bonaslot jackpot harian jutaan rupiah
bonus di benvenuto per Starburst jackpot e vincite su Starburst Italia casino online sicuri con Starburst
giocare da mobile a Starburst: Starburst slot online Italia — Starburst slot online Italia
bonaslot link resmi mudah diakses: bonaslot login — bonaslot
permainan slot gacor hari ini: garuda888 game slot RTP tinggi — garuda888 live casino Indonesia
1wbona bonaslot jackpot harian jutaan rupiah bonaslot jackpot harian jutaan rupiah
bonaslot link resmi mudah diakses: bonaslot situs bonus terbesar Indonesia — 1wbona
https://1win69.shop/# preman69 login tanpa ribet
1win888indonesia: garuda888 game slot RTP tinggi — garuda888 login resmi tanpa ribet
bonaslot kasino online terpercaya bonaslot situs bonus terbesar Indonesia bonaslot situs bonus terbesar Indonesia