Контрольные весы для пасеки с отправкой данных в SMS

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Блин. Ну я же понятно вроде описал - сделайте и посмотрите, как это работает. Пин ардуины должен быть настроен на вход. По вашему описанию - у вас соединено не так.

Цитата:

не совсем понял как тогда подключать сигнальный провод ("второй свободный конец") к контакту GND дисплея?

Ещё раз, последний:

1. От пина ардуины идёт провод. К нему присоединяется резистор одним концом, второй конец резистора - на 5В. В точке соединения резистора и провода идёт ещй одно соединение, назовём это "свободный конец". Вот если этот свободный конец будет просто никуда не подключён - то digitalRead() с пина ардуины вернёт HIGH. Если его подоткнуть на GND - digitalRead вернёт LOW.

2. Этот свободный конец вы подключаете на плату дисплея, наряду с другими контактами. Контакт для этого свободного конца на плате дисплея напрямую идёт на GND, таким образом, если дисплей подключён - на пине ардуины будет LOW, и HIGH в противном случае.

Ну попробуйте уже на макетке собрать простейшую схему, без дисплея - и просто потыкать свободным концом в 5В и GND. Я вам даже код тестового скетча приведу:

#define STATUS_PIN 2 // номер пина, на котором будем читать уровень (по умолчанию - пин номер 2)

byte lastPinState;


void echo(byte state)
{
  if(state)
    Serial.println(F("HIGH"));
  else
    Serial.println(F("LOW"));
}

void setup()
{
  pinMode(STATUS_PIN, INPUT);
  lastPinState = digitalRead(STATUS_PIN);
  Serial.begin(9600);
  
  echo(lastPinState);
}

void loop()
{
  byte curState = digitalRead(STATUS_PIN);
  if(curState != lastPinState)
  {
    lastPinState = curState;
    echo(lastPinState);
    
  }
}

 

garyn1976
Offline
Зарегистрирован: 25.10.2017

DIYMan пишет:

Цитата:

не совсем понял как тогда подключать сигнальный провод ("второй свободный конец") к контакту GND дисплея?

2. Этот свободный конец вы подключаете на плату дисплея, наряду с другими контактами. Контакт для этого свободного конца на плате дисплея напрямую идёт на GND, таким образом, если дисплей подключён - на пине ардуины будет LOW, и HIGH в противном случае.

Ну попробуйте уже на макетке собрать простейшую схему, без дисплея - и просто потыкать свободным концом в 5В и GND. Я вам даже код тестового скетча приведу:

#define STATUS_PIN 2 // номер пина, на котором будем читать уровень (по умолчанию - пин номер 2)

byte lastPinState;


void echo(byte state)
{
  if(state)
    Serial.println(F("HIGH"));
  else
    Serial.println(F("LOW"));
}

void setup()
{
  pinMode(STATUS_PIN, INPUT);
  lastPinState = digitalRead(STATUS_PIN);
  Serial.begin(9600);
  
  echo(lastPinState);
}

void loop()
{
  byte curState = digitalRead(STATUS_PIN);
  if(curState != lastPinState)
  {
    lastPinState = curState;
    echo(lastPinState);
    
  }
}

 

Спасибо. Да, я уже собирал тестовую модель и тыкал - все так и есть - если свободным концом на землю - то ноль, если в воздухе то 5В.

но...

DIYMan пишет:

"Этот свободный конец вы подключаете на плату дисплея, наряду с другими контактами. Контакт для этого свободного конца на плате дисплея напрямую идёт на GND, таким образом, если дисплей подключён - на пине ардуины будет LOW, и HIGH в противном случае."

Если свободный конец провода подключен наряду с другими контактами  - то по сути он подключен и на землю, что вызывает LOW сигнал на индикаторном пине всегда.

Это работает, Если этот свободный конец подсоединить к ноге GND дисплея, Которая отключается вместе с дисплеем - тогда да - на сигнальном пине будет появляться 5В, но дисплей тогда не унести будет - он же будет к сигнальному проводу припаян, а сигнальный провод в итоге к сигнальному пину ардуины.

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

garyn1976 пишет:

 

Если свободный конец провода подключен наряду с другими контактами  - то по сути он подключен и на землю, что вызывает LOW сигнал на индикаторном пине всегда.

Это работает, Если этот свободный конец подсоединить к ноге GND дисплея, Которая отключается вместе с дисплеем - тогда да - на сигнальном пине будет появляться 5В, но дисплей тогда не унести будет - он же будет к сигнальному проводу припаян, а сигнальный провод в итоге к сигнальному пину ардуины.

 

1. Так и задумано, это признак подключения дисплея;

2. ЗАЧЕМ припаивать сигнальный провод к дисплею? Он должен быть выведен на колодку, куда подключается плата, на которой закреплён дисплей.

3. Всё просто, как 3 копейки, вы как-то не догоняете, по-моему.

garyn1976
Offline
Зарегистрирован: 25.10.2017

DIYMan пишет:

2. ЗАЧЕМ припаивать сигнальный провод к дисплею? Он должен быть выведен на колодку, куда подключается плата, на которой закреплён дисплей.

3. Всё просто, как 3 копейки, вы как-то не догоняете, по-моему.


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

Когда нет подключения дисплея, то на сигнальном проводе 5В
Когда дисплей подключен, то и сигнальный провод должен стать подключенным на землю, результат = 0В
Когда дисплей снимается, то сигнальный провод должен получать разрыв в цепи от земли, и на сигнальном пине снова 5В.

Я вот так понял. И так работает. Но не могу сообразить как сигнальный провод сделать отключаемым от общей земли, при съеме дисплея.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Колодка - это разъём, любого нужного вам типа: с одной стороны "мама", с другой - "папа". Мама - на одной плате, папа - на другой. Первая плата - ваш контроллер, вторая - плата с дисплеем. На колодку первой платы выведен сигнальный провод, ответный контакт этой колодки на плате дисплея заведён на GND.

Как объяснить проще такие очевиднейшие вещи - я не знаю. Если и в этот раз не поймёте - я пас.

garyn1976
Offline
Зарегистрирован: 25.10.2017

DIYMan пишет:

Колодка - это разъём, любого нужного вам типа: с одной стороны "мама", с другой - "папа". Мама - на одной плате, папа - на другой. Первая плата - ваш контроллер, вторая - плата с дисплеем. На колодку первой платы выведен сигнальный провод, ответный контакт этой колодки на плате дисплея заведён на GND.

Как объяснить проще такие очевиднейшие вещи - я не знаю. Если и в этот раз не поймёте - я пас.

garyn1976 пишет:

 таком случае находится свободный конец провода - который идет от сигнального пина ардуины? У меня заведен на GND на плате, я уже понял что это высывает ноль на сигнальном пине. Но как же тогда подтыкать обратно дисплей - так чтобы он еще зацеплял сигнальный провод? делать чтото типа 5 ноги на дисплее(параллель GND ноги дисплея) - чтобы она подтыкалась в сигнальный провод?

 

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

Спасибо.

VadimZ
Offline
Зарегистрирован: 08.10.2017

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

garyn1976
Offline
Зарегистрирован: 25.10.2017

Может кно-нибудь подсказать?

Какое разрешается максимальное расстояние между HX711 и тензодатчиками (длина проводов)?

Имеется в виду, что по идее при слишком длинном проводе - должны быть потери в точности показаний? И если такое может быть - то какой примерно может быть длина проводов? (задача удлиннить провода)

BFF
Offline
Зарегистрирован: 25.10.2015

Длина может быть значительной. Работать будет. Но любой всплеск мнтынны вашего мобильного телефона будет на входе АЦП соответстенно весь электромагнитный месор у вас. У меня АЦП на расстоянии 50см от сенсоров. А от АЦП до процессора испробованная дальность 30 метров и работает. Только если на улице, все должно быть покрыто лаком.

kot55
Offline
Зарегистрирован: 14.06.2016

garyn1976 пишет:

Может кно-нибудь подсказать?

Какое разрешается максимальное расстояние между HX711 и тензодатчиками (длина проводов)?

Имеется в виду, что по идее при слишком длинном проводе - должны быть потери в точности показаний? И если такое может быть - то какой примерно может быть длина проводов? (задача удлиннить провода)

BFF пишет:

Длина может быть значительной. Работать будет. Но любой всплеск мнтынны вашего мобильного телефона будет на входе АЦП соответстенно весь электромагнитный месор у вас. У меня АЦП на расстоянии 50см от сенсоров. А от АЦП до процессора испробованная дальность 30 метров и работает. Только если на улице, все должно быть покрыто лаком.

https://www.youtube.com/watch?v=K89tu6zCVz8&t=73s

lvk
Offline
Зарегистрирован: 28.05.2017

Сделал себе весы на тензодатчиках с беспроводным модулем для индикации веса. Логика использования представлялась такой – под ульем располагается весоизмерительный  модуль, который периодически раз в 15 мин включается и отсылает на индикаторный блок измеренный вес по радио (NRF24 модуль). Индикаторный блок также включается раз в 15 мин и принимает данные от весоизмерительного модуля.

Индикаторный блок умеет делать две вещи: 1 - показывать текущий вес улья относительно установленного для него опорного значения веса, и 2 - устанавливать это самое опорное (нулевое) значение.

Индикаторный блок будет лежать в избушке (в которой нет электричества, или к дереву прибью. еще не решил) и постоянно собирает данные с весов под ульем. Нажав на кнопку, можно  увидеть вес улья, измеренный в пределах последних 15 мин.

Питание модуля весов и индикаторного модуля сделал от литий-ионовых батареек с возможностью подзарядки. Ток потребления в покое около 60 мкА.

DoctorRoot
Offline
Зарегистрирован: 07.10.2018

bankir_1986 пишет:

Я правильно понимаю схему подключения тензодатчиков к HX711 или есть особенности?

 

Добрый день, не подскажите как должна выглядеть Ваша схема подключения после исправления ошибок подключения? Эта как я понял не совсем корректная.

lvk
Offline
Зарегистрирован: 28.05.2017

E+ и E- подключаются к диагонально портивоположным датчикам. То же для A+ и A- , т.е. схема подключения крест на крест.

lvk
Offline
Зарегистрирован: 28.05.2017

Есть вопрос по питанию GSM модуля A6.

Сделал плату, на которой размещаются АЦП HX711 для тензодатчиков, модуль NRF24 для связи с другими  весовыми модулями (которые без GSM) и собственно сам GSM модуль A6.

Модуль A6 запитывается от повышателя напряжения на микросхеме MT3608 (схема на рисунке), который разгоняет напряжение от литий-ионного аккумулятора до 5 В. Без модуля A6 (если его физически вынуть из гнезда) в спящем режиме  вся  плата кушает 35 мкА, с модулем все получается хуже - меньше 2.5 мА не получается (модуль выключается командой Serial.println("AT+CPOF");).  Думаю, без схемотехнического решения не обойтись, так чтобы полностью исключалась подача напряжения на модуль A6. 

Кто-нибудь решал эту проблему - так, чтобы при переводе модуля A6 в спящий режим потребление тока снизить изить до хотя бы десятков микроампер?

 

BeeLove
Offline
Зарегистрирован: 17.06.2014

С питанием не подскажу. А вто то, что близкое расположение антенн будет бить по мозгам процессора это гарантированно. 5 Вт GSM мощности должны работать только на выносной антенне.

bwn
Offline
Зарегистрирован: 25.08.2014

MT3608 вход ENABLE, переводит преобразователь в спящий режим с мкАмперным потреблением. Коммутировать можно лапкой процессора. Как поведет себя А6 в этом варианте, не скажу.

lvk
Offline
Зарегистрирован: 28.05.2017

Да, так и делаю, А6 без проблем это переваривает, трудность в том, что не смотря на то, что MT3608 переходит в малопотребляющий режим, VSUP остается нагруженным на модуль  A6 и через него похоже сочится ток покоя. Как бы его перекрыть? Как вараинт, нужен стабилизатор на +5 В с микроамперным  током покоя, расчитанный при этом на ток до 2 А, что-то таких не нашел. 

bwn
Offline
Зарегистрирован: 25.08.2014

На MT3608 есть SEPIC вариант (добавляется еще одна индуктивность и разделительный конденсатор), там просочиться ничего не может. На такие большие токи не делал, надо экспериментировать.

lvk
Offline
Зарегистрирован: 28.05.2017

BeeLove, а вы реально сталкивались с влиянием радио такой мощности на процессор? Мне не прихододилось обнаруживать до сих пор такого влияния. 

Из общих соображений: частота 900 Мгц, длина волны ~33 см, размер модуля около 3 см, т.е. он в 10 раз меньше, чем длина волны. Вроде  как антенна он просто никакой, т.е. он не должен быть подвержен влиянию такого излучения.  

lvk
Offline
Зарегистрирован: 28.05.2017

Я так понимаю это то, что нужно?

bwn
Offline
Зарегистрирован: 25.08.2014

Да, за С9 не могу сказать на такой нагрузке, не взлетит ли? Смакетировать, и подержать на максимуме. Станет ясно, одного достаточно или надо паралллелить.

lvk
Offline
Зарегистрирован: 28.05.2017

Для С9 чем выше емкость, тем больший ток он способен пропускать без эксцессов?

bwn
Offline
Зарегистрирован: 25.08.2014

Не так, чем больше площадь контактов и пластин. Электролиты стремно, лучше керамику и смотреть нагрев.

lvk
Offline
Зарегистрирован: 28.05.2017

Понятно, спасибо!

garyn1976
Offline
Зарегистрирован: 25.10.2017

lvk пишет:

Есть вопрос по питанию GSM модуля A6.

 

Кто-нибудь решал эту проблему - так, чтобы при переводе модуля A6 в спящий режим потребление тока снизить изить до хотя бы десятков микроампер?

 

 

 

 

сам такое еще не делал, но как идею может быть получится реализовать?

на питание gsm поставить релюху обыкновенную - управляемую с ардуины - по расписанию или по звонку/смс

 

Меня больше интересует как сделать веб сервер - который бы принимал значения от весов. html, яваскрыпты, и т.п. не знаю - и вот пока не могу понять где начать копать или посмотреть пример реализации подобного

lvk
Offline
Зарегистрирован: 28.05.2017

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

По поводу веб сервера попробуйте вот отсюда начать http://2150692.ru/faq/62-gprs-svyaz-cherez-sim800l-i-arduino

bwn
Offline
Зарегистрирован: 25.08.2014

lvk пишет:

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

Кстати, менее затратное решении, модуль ведь жрет по максимуму только в момент передачи (предполагаю), значит коммутировать можем в моменты низкого потребления, а там все проще, думаю одного полевика в sot-23 хватит. Вместо ENABLE коммутируем питание модуля и стабилизатора.

pashking77
Offline
Зарегистрирован: 31.07.2019

Вот, человек сделал:

 

http://beefree.xyz/?p=81