Чтобы считать напряжение и преобразовать его к осязаемому цифровому значению используется аналого-цифровой преобразователь (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] .
купить цветочный горшок кашпо купить цветочный горшок кашпо .
atractive http://1win40005.ru
интересные цветочные горшки интересные цветочные горшки .
креативные горшки для цветов купить креативные горшки для цветов купить .
стильные цветочные горшки стильные цветочные горшки .
кашпо из ротанга с автополивом кашпо из ротанга с автополивом .
интересные горшки для цветов интересные горшки для цветов .
горшок с автополивом горшок с автополивом .
горшки с автополивом для комнатных растений горшки с автополивом для комнатных растений .
уличное кашпо для цветов напольное уличное кашпо для цветов напольное .
горшки для напольных растений купить горшки для напольных растений купить .
кашпо напольное кашпо напольное .
напольные кашпо для цветов купить напольные кашпо для цветов купить .
напольный горшок для цветов высокий напольный горшок для цветов высокий .
стильные горшки для комнатных цветов http://dizaynerskie-kashpo-nsk.ru .
умный горшок для растений [url=https://www.kashpo-s-avtopolivom-kazan.ru]умный горшок для растений[/url] .
india pharmacy: Indian pharmacy international shipping — Indian pharmacy to USA
https://bajamedsdirect.shop/# Mexican pharmacy ship to USA
Canadian pharmacy prices canadian pharmacy canadian pharmacy
Indian pharmacy international shipping: Indian pharmacy online — india pharmacy
online pharmacies in mexico: Best Mexican pharmacy online — Mexican pharmacy ship to USA
BajaMedsDirect: Mexican pharmacy price list — Online Mexican pharmacy
Online Mexican pharmacy Best Mexican pharmacy online mexico pharmacy
Canadian pharmacy prices: canadian pharmacy — Canadian pharmacy prices
Best Indian pharmacy CuraMedsIndia Best online Indian pharmacy
best online canadian pharmacy: canada cloud pharmacy — canadian pharmacy
mexico pharmacy: Mexican pharmacy ship to USA — mexico pharmacy
https://bajamedsdirect.com/# Mexican pharmacy ship to USA
https://curamedsindia.com/# Indian pharmacy international shipping
Indian pharmacy online Indian pharmacy to USA indian pharmacy
PharmaRapide: solution sante en ligne securisee — Pharmacie sans ordonnance
internet apotheke: kamagra — medikamente rezeptfrei
billiga lakemedel pa natet: apotek utan receptkrav — eu apotheke ohne rezept
gГјnstigste online apotheke Diskrete Lieferung Medikamente online apotheke deutschland
gГјnstigste online apotheke: kamagra kaufen — internet apotheke
gГјnstigste online apotheke Generika online bestellen apotheke online
online apotheke: Online Apotheke Deutschland seriös — internet apotheke
online apotheke: Kamagra Deutschland Apotheke — online apotheke rezept
https://pharmarapide.com/# acheter medicaments en ligne pas cher
https://pharmarapide.com/# PharmaRapide
onlineapotek Sverige: Nordic Apotek — medikament ohne rezept notfall
gГјnstigste online apotheke: Medikamente ohne Rezept bestellen — internet apotheke
pharmacie en ligne france fiable Achat mГ©dicament en ligne fiable pharmacie en ligne france fiable
ohne rezept apotheke Kamagra online bestellen online apotheke deutschland
beste online-apotheke ohne rezept: Kamagra online bestellen — medikament ohne rezept notfall
Pharmacie en ligne livraison Europe: acheter médicaments en ligne pas cher — pharmacies en ligne certifiées
PharmaRapide: medicaments sans ordonnance livraison rapide — pharmacie en ligne france livraison internationale
Nordic Apotek: onlineapotek Sverige — online apotheke rezept
commande discrete medicaments France: commande discrete medicaments France — pharmacie en ligne livraison europe
pharmacie en ligne france livraison belgique PharmaRapide acheter medicaments en ligne pas cher
online apotheke rezept: Erfahrungen mit Online Apotheken — online apotheke deutschland
NordicApotek: apotek utan receptkrav — apotheke online
beställa medicin utan recept: generiska läkemedel online — internet apotheke
online apotheke rezept: Erfahrungen mit Online Apotheken — п»їshop apotheke gutschein
http://nordapotekno.com/# apotek pa nett
apotek på nett: nettapotek Norge trygt og pålitelig — reseptfrie medisiner på nett
apotek pa nett med gode priser NordApotek kundevurderinger av nettapotek
billige generiske legemidler Norge reseptfrie medisiner pa nett kundevurderinger av nettapotek
SaludExpress: farmacia con envío rápido y seguro — comprar medicinas online sin receta médica
goedkope medicijnen online: discrete levering van medicijnen — online apotheek
nettapotek Norge trygt og pålitelig: billige generiske legemidler Norge — nettapotek Norge trygt og pålitelig
pedir farmacos por Internet farmacia online Espana fiable farmacia espanola en linea economica
pedir fármacos por Internet: comprar medicinas online sin receta médica — farmacia online España fiable
apotek uten resept med levering hjem: reseptfrie medisiner på nett — apotek på nett
http://nordapotekno.com/# apotek pa nett med gode priser
apotek på nett: apotek på nett — apotek på nett med gode priser
apotheek zonder receptplicht: veilig online apotheek NL — HollandApotheek
geneesmiddelen zonder recept bestellen: HollandApotheek — discrete levering van medicijnen
spedizione rapida farmaci Italia: ordinare farmaci senza ricetta — FarmaciaFacile
generieke geneesmiddelen Nederland online apotheek geneesmiddelen zonder recept bestellen
http://saludexpresses.com/# п»їfarmacia online espaГ±a
farmacia española en línea económica: farmacia con envío rápido y seguro — farmacia española en línea económica
FarmaciaFacile farmaci senza prescrizione disponibili online FarmaciaFacile
discrete levering van medicijnen online apotheek nederland Holland Apotheek
кашпо для улицы пластик https://ulichnye-kashpo-kazan.ru/ .
nettapotek Norge trygt og pålitelig: billige generiske legemidler Norge — kundevurderinger av nettapotek
bestille medisiner online diskret: bestille medisiner online diskret — bestille medisiner online diskret
farmacias online seguras medicamentos sin receta a domicilio farmacia con envio rapido y seguro
apotek på nett: apotek på nett — kundevurderinger av nettapotek
https://saludexpresses.com/# pedir farmacos por Internet
HollandApotheek apotheek zonder receptplicht apotheek zonder receptplicht
goedkope medicijnen online: Holland Apotheek — online apotheek Nederland betrouwbaar
https://farmaciafacileit.com/# opinioni su farmacia online italiana
farmacia con envio rapido y seguro farmacia online espaГ±a envГo internacional farmacia con envio rapido y seguro
reseptfrie medisiner på nett: apotek på nett billigst — kundevurderinger av nettapotek
veilig online apotheek NL: online apotheek Nederland betrouwbaar — online apotheek Nederland betrouwbaar
farmacia con envio rapido y seguro medicamentos sin receta a domicilio SaludExpress
http://hollandapotheeknl.com/# online apotheek nederland
discrete levering van medicijnen: online apotheek — online apotheek
farmacia española en línea económica: pedir fármacos por Internet — farmacias online seguras en espaГ±a
generieke geneesmiddelen Nederland veilig online apotheek NL online apotheek Nederland betrouwbaar
online apotheek: online apotheek Nederland betrouwbaar — online apotheek
play Chicken Road casino online: best Indian casinos with Chicken Road — best Indian casinos with Chicken Road
best Indian casinos with Chicken Road: secure online gambling India — bonus spins Chicken Road casino India
Plinko casinò online Italia scommesse Plinko online Plinko casinò online Italia
scommesse Plinko online: Plinko casino online Italia — Plinko RTP e strategie
real money slot Chicken Road UK: Chicken Road — play Chicken Road casino online UK
giocare Plinko con soldi veri: Plinko casinò online Italia — Plinko casinò online Italia
slot a tema fattoria Italia slot a tema fattoria Italia vincite e bonus gioco Chicken Road
giri gratis Chicken Road casino Italia: vincite e bonus gioco Chicken Road — recensione Chicken Road slot
casino online italiani con Chicken Road: slot a tema fattoria Italia — slot a tema fattoria Italia
https://chickenroadslotindia.com/# secure online gambling India
http://chickenroadslotuk.com/# licensed UK casino sites Chicken Road
play Chicken Road casino online: how to win Chicken Road slot game — best Indian casinos with Chicken Road
mobile Chicken Road slot app: bonus spins Chicken Road casino India — mobile Chicken Road slot app
play Chicken Road casino online UK: real money slot Chicken Road UK — play Chicken Road casino online UK
casino promotions Chicken Road game play Chicken Road casino online UK Chicken Road
mobile Chicken Road slot app: best Indian casinos with Chicken Road — best Indian casinos with Chicken Road
https://chickenroadslotitalia.com/# recensione Chicken Road slot
vincite e bonus gioco Chicken Road: giocare Chicken Road gratis o con soldi veri — giocare Chicken Road gratis o con soldi veri
https://chickenroadslotuk.com/# British online casinos with Chicken Road
Generic Cialis without a doctor prescription: Generic Cialis without a doctor prescription — generic tadalafil without prescription
sildenafil Sildenafil 100mg sildenafil citrate tablets 100mg
Buy sildenafil: Sildenafil 100mg — buy sildenafil 100mg uk
Sildenafil 100mg price: Buy sildenafil — Buy sildenafil online usa
http://medicexpressmx.com/# order from mexican pharmacy online
true vital meds Sildenafil 100mg Buy sildenafil online usa
Buy sildenafil: generic sildenafil — Sildenafil 100mg price
MedicExpress MX: MedicExpress MX — rybelsus from mexican pharmacy
Generic tadalafil 20mg price Buy Tadalafil online tadalafil generic us
Buy sildenafil: Buy sildenafil — price of sildenafil
https://medicexpressmx.shop/# Online Mexican pharmacy
https://truevitalmeds.shop/# true vital meds
Online Mexican pharmacy Best online Mexican pharmacy Online Mexican pharmacy
https://medicexpressmx.com/# Legit online Mexican pharmacy
true vital meds: Buy sildenafil — Buy sildenafil
Buy Tadalafil 20mg: Generic Cialis without a doctor prescription — buy tadalafil india
sildenafil 20 mg brand name Buy sildenafil Sildenafil 100mg
http://truevitalmeds.com/# Buy sildenafil
sildenafil canada cost: Buy sildenafil — sildenafil
MedicExpress MX: Mexican pharmacy price list — MedicExpress MX
Buy sildenafil: sildenafil — Sildenafil 100mg price
https://truevitalmeds.com/# Buy sildenafil
Buy sildenafil: Buy sildenafil online usa — true vital meds
http://truevitalmeds.com/# Sildenafil 100mg
tadalafil tadalafil Buy Tadalafil online
Sildenafil 100mg: sildenafil — cost of generic sildenafil
https://truevitalmeds.com/# Sildenafil 100mg price
Sildenafil 100mg price: Buy sildenafil online usa — Sildenafil 100mg
tadalafil: tadalafil from india — Buy Tadalafil online
https://tadalmedspharmacy.shop/# Generic tadalafil 20mg price
mexican pharmacy: Online Mexican pharmacy — MedicExpress MX
http://medicexpressmx.com/# Legit online Mexican pharmacy
tadalafil tablets price in india Buy Tadalafil online canadian online pharmacy tadalafil
https://tadalmedspharmacy.shop/# tadalafil
Generic tadalafil 20mg price: Generic Cialis without a doctor prescription — Buy Tadalafil online
http://tadalmedspharmacy.com/# Generic tadalafil 20mg price
Mexican pharmacy price list: MedicExpress MX — Online Mexican pharmacy
Buy Tadalafil 20mg: tadalafil mexico — tadalafil brand name in india
https://tadalmedspharmacy.com/# Generic Cialis without a doctor prescription
tadalafil tadalafil Buy Tadalafil online
true vital meds: true vital meds — Sildenafil 100mg
Best online Mexican pharmacy: Legit online Mexican pharmacy — MedicExpress MX
Mexican pharmacy price list amoxicillin mexico online pharmacy Best online Mexican pharmacy
Generic tadalafil 20mg price: Buy Tadalafil online — Buy Tadalafil 20mg
https://tadalmedspharmacy.com/# Generic tadalafil 20mg price
cost of sildenafil 100mg tablets: Sildenafil 100mg price — Buy sildenafil
https://tadalmedspharmacy.com/# Generic Cialis without a doctor prescription
sildenafil coupon 50 mg Sildenafil 100mg true vital meds
Generic Cialis without a doctor prescription Buy Tadalafil 20mg Generic tadalafil 20mg price
Propecia buy online: RegrowRx Online — Propecia 1mg price
https://regrowrxonline.com/# Propecia 1mg price
Propecia prescription: buy finasteride — cheap propecia without a prescription
Clomid price Clomid fertility Generic Clomid
Propecia prescription: Propecia prescription — Propecia prescription
https://zithromedsonline.shop/# cheap zithromax
Generic Clomid: where can i get generic clomid without rx — ClomiCare USA
AmoxDirect USA: Amoxicillin 500mg buy online — buy amoxicillin 500mg capsules uk
https://zithromedsonline.com/# generic zithromax
order propecia pills buy finasteride RegrowRx Online
zithromax z- pak buy online: cheap zithromax — buy generic zithromax no prescription
http://zithromedsonline.com/# buy zithromax online
can i order cheap clomid for sale: Clomid for sale — clomid prices
Propecia buy online: RegrowRx Online — Propecia buy online
https://regrowrxonline.com/# buy finasteride
AmoxDirect USA [url=https://amoxdirectusa.shop/#]Buy Amoxicillin for tooth infection[/url] buy amoxil
https://clomicareusa.com/# Generic Clomid
https://clomicareusa.shop/# Clomid fertility
Amoxicillin 500mg buy online buy amoxicillin amoxicillin 500
https://clomicareusa.com/# Clomid price
buy clomid ClomiCare USA buy clomid
Clomid fertility: Buy Clomid online — Generic Clomid
generic zithromax: zithromax z- pak buy online — buy zithromax
cheap zithromax cheap zithromax zithromax z- pak buy online
Clomid price: buy clomid — Clomid fertility
AmoxDirect USA: AmoxDirect USA — buy amoxil
https://regrowrxonline.com/# Propecia 1mg price
buy zithromax: generic zithromax — generic zithromax
cheap zithromax zithromax z- pak buy online zithromax z- pak buy online
Generic Clomid: Clomid fertility — Clomid for sale