SMS-мониторинг веса трех ульев за 30$ +28



My Logo


Нет, это не коммерческое предложение, такова стоимость комплектующих системы, которую Вы сможете собрать после прочтения статьи.


Немного предыстории:


Некоторое время назад я решил завести пчел, и они таки появились… на целый сезон, но не вышли из зимовки.
И это несмотря на то, что вроде все делал правильно — осенний прикорм, утепление перед холодами.
Улей был классический деревянный системы "Дадан" на 10 рамок из 40-мм доски.
Но в ту зиму из-за температурных "качелей" даже опытные пчеловоды потеряли куда больше, чем обычно.


Так пришла идея системы мониторинга состояния улья.
После публикации нескольких статей на Хабр-е и общения на форуме пчеловодов, решил идти от простого к сложному.
Вес — единственный бесспорный параметр, но как правило, существующие системы мониторят только один "эталонный" улей.
Если с ним что-то идет не так (к примеру вылет роя, болезнь пчел), то показатели становятся неактуальны.


Поэтому решено было следить за изменением веса сразу трех ульев одним микроконтроллером, а прочие "плюшки" добавить после.
В итоге получилась автономная система со временем работы около месяца на одном заряде батареи 18650 и отправкой статистики раз в сутки.
Конструкцию старался максимально упростить, дабы ее можно было повторить даже без схем, по одним фотографиям.


Логика работы следующая: при первом запуске/сбросе запоминаются в EEPROM показания датчиков, установленных под ульи.
Дальше, каждый день, после заката система "просыпается", считывает показания и отправляет СМС с изменением веса за сутки и от момента включения.
Кроме того передается значение напряжения батареи, а при снижении до 3.5В выдается предупреждение о необходимости зарядки, ибо ниже 3.4В модуль связи не включается, да и показания веса уже "уплывают".


"Ты помнишь как все начиналось. Все было впервые и вновь."
How its begin
Да, именно такой набор "железа" был изначально, правда до конечного варианта дожили только тензодатчики и провода, но обо всем по порядку.
На самом деле, бухта кабеля не понадобится, просто она оказалась в ту-же цену, что и 30м наотрез.


Если Ваc не страшит демонтаж 3 smd-светодиодов и пол-сотни точек обычной(выводной) пайки — то в путь!


Итак, нам понадобится следующий набор оборудования/материалов:


  1. Arduino Pro Mini 3V
    Следует обратить внимание на микросхему линейного преобразователя — она должна быть именно на 3.3В — на чипе маркировки KB 33/LB 33/DE A10 — у меня китайцы что-то напутали, и вся партия
    плат в магазине оказалась с 5-вольтовыми регуляторами и кварцами на 16MHz.
  2. USB-Ttl на чипе CH340 — можно даже 5-вольтовый, но тогда во время прошивки микроконтроллера, Arduino нужно будет отключать от GSM-модуля, чтобы не сжечь последний.
    Платы на чипе PL2303 не работают под Windows 10.
  3. Модуль связи GSM Goouu Tech IOT GA-6-B или AI-THINKER A-6 Mini.
    Почему остановился на нем? Neoway M590 — конструктор, требующий отдельных танцев с бубнами, GSM SIM800L — не понравился нестандартный 2.8V уровень логики, требующий согласования даже с трехвольтовой ардуинкой.
    К тому-же, у решения от AiThinker минимальное потребление энергии (при отправке СМС не видел тока выше 100мА).
  4. Антенна GSM GPRS 3DBI (на фото выше — прямоугольная платка с "хвостиком", на 9 часов)
  5. Стартовый пакет оператора, имеющего хорошее покрытие в месте расположения Вашей пасеки.
    Да, пакет надо предварительно активировать в обычном телефоне, ОТКЛЮЧИТЬ ЗАПРОС PIN при входе, и пополнить счет.
    Сейчас есть много вариантов с названиями в стиле "Датчик", "IoT" — у них несколько меньше абонплата.
  6. провод dupont 20см мама-мама — 3 шт. (для подключения Arduino к USB-TTL)
  7. 3шт. HX711 — АЦП для весов
  8. 6 тензодатчиков на вес до 50кг
  9. 15метров 4-жильного телефонного кабеля — для соединения модулей веса с ARDUINO.
  10. Фоторезистор GL5528 (важно именно такой, с темновым сопротивлением 1МОм и световым 10-20кОм) и два обычных резистора на 20к
  11. Кусочек двухстороннего "толстого" скотча 18х18мм — для крепления ардуино к модулю связи.
  12. Держатель батарей 18650 и, собственно, сама батарея ~2600мАч.
  13. Немного воска или парафина(свеча-таблетка аромалампы) — для влагозащиты HX711
  14. Отрезок деревянного бруса 25х50х300мм для основания тензодатчиков.
  15. Дюжина саморезов с прессшайбой 4,2х19 мм для крепления датчиков к основанию.

Батарею можно взять с разборки ноутбуков — в разы дешевле новой, а емкость получится куда больше, чем у китайской UltraFire — у меня получилось 1500 против 450 (это у фаера 6800 ;-)


Кроме этого, потребуются некривые руки, паяльник ЭПСН-25, канифоль и припой ПОС-60.


Soldering iron


Еще 5 лет назад я пользовался советским паяльником с медным жалом (вот не зашли мне паяльные станции — брал на тест-драйв, и заканчивал схему ЭПСН-ом).
Но после выхода его из строя и нескольких китайских чудовищных под(д)елок, последняя имела название Sparta — вещь столь-же суровая, как и название, остановился
на изделии с терморегулятором.


Итак поехали!


GSM A6


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


Arduino Pro Mini 3v


Дальше аналогичную процедуру проводим со светодиодом на плате Arduino (овал слева от квадратного чипа),
Паяем гребенку на четыре контакта (1),
Берем два резистора на 20k, скручиваем выводы с одной стороны, паяем скрутку в отверстие контакта A5, оставшиеся выводы в RAW и GND ардуинки (2),
Фоторезистору укорачиваем ноги до 10мм и паяем его к выводам GND и D2 платы (3).


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


Паяем питание: плюс с конденсатора модуля связи (4) на контакт RAW arduino.
Дело в том, что сам модуль связи требует для своего питания 3.4-4.2В, а его контакт PWR заведен на понижающий преобразователь step-down, поэтому для работы от li-ion напряжение надо подавать минуя эту часть цепи.


В ардуино-же, напротив мы заводим питание через линейный преобразователь — при малых токах потребления, падение напряжения drop-out составляет 0.1В.
Зато подав стабилизированное напряжение на модули HX711, мы избавляемся от необходимости их доработки под меньший вольтаж (и заодно от повышения шумов в результате данной операции).


Дальше паяем перемычки (5) между контактами PWR-A1, URX-D4 и UTX-D5, "землю" GND-G (6) ну и наконец питание от держателя батарей 18650 (7), подключаем антенну (8).
Теперь берем USB-TTL преобразователь и соединяем проводами Dupont с ARDUINO (гребенка 1) контакты RXD-TXD и TXD-RXD, GND-GND:


Первая версия


На фото выше — еще первая версия (из трех) системы, которая использовалась для отладки.


А вот теперь мы на некоторое время отвлечемся от паяльника, и перейдем к программной части.
Буду описывать последовательность действий для Windows:
Во-первых, необходимо скачать и установить/распаковать программу Arduino IDE — текущая версия — 1.8.9, но я пользуюсь 1.6.4


Для простоты распаковываем архив в папку C:\arduino-"номер_Вашей_версии", внутри у нас будут папки /dist, drivers, examples, hardware, java, lib, libraries, reference, tools, а также исполняемый файл arduino (помимо прочих).


Теперь нам потребуется библиотека для работы с АЦП HX711 — зеленая кнопка "clone or download" — download ZIP.
Содержимое (папка HX711-master) ложится в каталог C:\arduino-"номер_Вашей_версии"\libraries


Ну и конечно-же драйвер для USB-TTL с того-же github — из распакованного архива просто запускается инсталяха файлом SETUP.


Ок, запускаем и настраиваем программу C:\arduino-"номер_Вашей_версии"\arduino


Интерфейс программы


Заходим в пункт "Инструменты"-выбираем плату "Arduino Pro or Pro Mini", процессор Atmega 328 3.3V 8 MHz, порт — номер кроме системного COM1 (он появляется после установки драйвера CH340 при подключенном USB-TTL адаптере)


Ок, копируем нижеследующий скетч (программу), и вставляем ее в окно Arduino IDE


char phone_no[]="+123456789012"; // Your phone number that receive SMS with counry code 
#include <avr/sleep.h>  // ARDUINO sleep mode library
#include <SoftwareSerial.h> // Sofrware serial library
#include "HX711.h" // HX711 lib. https://github.com/bogde/HX711
#include <EEPROM.h> // EEPROM lib.
HX711 scale0(10, 14);
HX711 scale1(11, 14);
HX711 scale2(12, 14);
#define SENSORCNT 3
HX711 *scale[SENSORCNT];

SoftwareSerial mySerial(5, 4); // Set I/O-port TXD, RXD of GSM-shield  
byte pin2sleep=15; //  Set powerON/OFF pin

float delta00; // delta weight from start
float delta10;
float delta20;
float delta01; // delta weight from yesterday
float delta11;
float delta21;

float raw00; //raw data from sensors on first start
float raw10;
float raw20;
float raw01; //raw data from sensors on yesterday
float raw11;
float raw21;
float raw02; //actual raw data from sensors
float raw12;
float raw22;

word calibrate0=20880; //calibration factor for each sensor
word calibrate1=20880;
word calibrate2=20880;

word daynum=0; //numbers of day after start

int notsunset=0;

boolean setZero=false;

float readVcc() { // Read battery voltage function
  long result1000;
  float rvcc;  
  result1000 = analogRead(A5);
  rvcc=result1000;
  rvcc=6.6*rvcc/1023;
  return rvcc;
}

void setup() { // Setup part run once, at start

  pinMode(13, OUTPUT);  // Led pin init
  pinMode(2, INPUT_PULLUP); // Set pullup voltage
  Serial.begin(9600);
  mySerial.begin(115200); // Open Software Serial port to work with GSM-shield
  pinMode(pin2sleep, OUTPUT);// Itit ON/OFF pin for GSM
  digitalWrite(pin2sleep, LOW); // Turn ON modem
  delay(16000); // Wait for its boot 

scale[0] = &scale0; //init scale
scale[1] = &scale1;
scale[2] = &scale2;

scale0.set_scale();
scale1.set_scale();
scale2.set_scale();

delay(200);

setZero=digitalRead(2);

if (EEPROM.read(500)==EEPROM.read(501) || setZero) // first boot/reset with hiding photoresistor
//if (setZero)
{
raw00=scale0.get_units(16); //read data from scales
raw10=scale1.get_units(16);
raw20=scale2.get_units(16);
EEPROM.put(500, raw00); //write data to eeprom
EEPROM.put(504, raw10);
EEPROM.put(508, raw20);
for (int i = 0; i <= 24; i++) { //blinking LED13 on reset/first boot
    digitalWrite(13, HIGH);
    delay(500);
    digitalWrite(13, LOW);
    delay(500);
  }
}
else {
EEPROM.get(500, raw00); // read data from eeprom after battery change
EEPROM.get(504, raw10);
EEPROM.get(508, raw20);
digitalWrite(13, HIGH); // turn on LED 13 on 12sec. 
    delay(12000);
digitalWrite(13, LOW);
}

delay(200); // Test SMS at initial boot

//
  mySerial.println("AT+CMGF=1");    //  Send SMS part
  delay(2000);
  mySerial.print("AT+CMGS=\"");
  mySerial.print(phone_no); 
  mySerial.write(0x22);
  mySerial.write(0x0D);  // hex equivalent of Carraige return    
  mySerial.write(0x0A);  // hex equivalent of newline
  delay(2000);
  mySerial.println("INITIAL BOOT OK");
  mySerial.print("V Bat= ");
  mySerial.println(readVcc());
 if (readVcc()<3.5) {mySerial.print("!!! CHARGE BATTERY !!!");}
  delay(500);
  mySerial.println (char(26));//the ASCII code of the ctrl+z is 26
  delay(3000);

//  

raw02=raw00;
raw12=raw10;
raw22=raw20;

//scale0.power_down(); //power down all scales 
//scale1.power_down();
//scale2.power_down();

}

void loop() {

  attachInterrupt(0, NULL , RISING); // Interrupt on high lewel
  set_sleep_mode(SLEEP_MODE_PWR_DOWN); //Set ARDUINO sleep mode
  digitalWrite(pin2sleep, HIGH); // Turn OFF GSM-shield
  delay(2200);
  digitalWrite(pin2sleep, LOW); // Turn OFF GSM-shield
  delay(2200);
  digitalWrite(pin2sleep, HIGH);
  digitalWrite(13, LOW);
  scale0.power_down(); //power down all scales 
  scale1.power_down();
  scale2.power_down();
  delay(90000);
  sleep_mode(); // Go to sleep
  detachInterrupt(digitalPinToInterrupt(0)); // turn off external interrupt

  notsunset=0;
 for (int i=0; i <= 250; i++){
      if ( !digitalRead(2) ){ notsunset++; } //is a really sunset now? you shure?
      delay(360);
   }
  if ( notsunset==0 )
  { 
  digitalWrite(13, HIGH);
  digitalWrite(pin2sleep, LOW); // Turn-ON GSM-shield
  scale0.power_up(); //power up all scales 
  scale1.power_up();
  scale2.power_up();
  raw01=raw02;
  raw11=raw12;
  raw21=raw22;
  raw02=scale0.get_units(16); //read data from scales
  raw12=scale1.get_units(16);
  raw22=scale2.get_units(16);

  daynum++; 
  delta00=(raw02-raw00)/calibrate0; // calculate weight changes 
  delta01=(raw02-raw01)/calibrate0;
  delta10=(raw12-raw10)/calibrate1;
  delta11=(raw12-raw11)/calibrate1; 
  delta20=(raw22-raw20)/calibrate2;
  delta21=(raw22-raw21)/calibrate2;

  delay(16000);
  mySerial.println("AT+CMGF=1");    //  Send SMS part
  delay(2000);
  mySerial.print("AT+CMGS=\"");
  mySerial.print(phone_no); 
  mySerial.write(0x22);
  mySerial.write(0x0D);  // hex equivalent of Carraige return    
  mySerial.write(0x0A);  // hex equivalent of newline
  delay(2000);
  mySerial.print("Turn ");
  mySerial.println(daynum);
  mySerial.print("Hive1  ");
  mySerial.print(delta01);
  mySerial.print("   ");
  mySerial.println(delta00);
  mySerial.print("Hive2  ");
  mySerial.print(delta11);
  mySerial.print("   ");
  mySerial.println(delta10);
  mySerial.print("Hive3 ");
  mySerial.print(delta21);
  mySerial.print("   ");
  mySerial.println(delta20);

  mySerial.print("V Bat= ");
  mySerial.println(readVcc());
  if (readVcc()<3.5) {mySerial.print("!!! CHARGE BATTERY !!!");}
  delay(500);
  mySerial.println (char(26));//the ASCII code of the ctrl+z is 26
  delay(3000);

  }

}

В первой строке, в кавычках char phone_no[]="+123456789012"; — вместо 123456789012 ставим свой номер телефона с кодом страны, на который будут приходить СМС.


Теперь жмем кнопку проверить (над цифрой один в скриншоте выше) — если внизу (под тройкой на скрине) "Компиляция завершена" — то можем прошивать микроконтроллер.


Так, USB-TTL подключен к ARDUINO и компьютеру, ставим заряженный аккумулятор в держатель (обычно на новой ардуинке начинает моргать светодиод с частотой раз в секунду).


Теперь прошивка — тренируемся нажимать красную(серебристую) кнопку микроконтроллера — это нужно будет сделать строго в определенный момент!!!
Есть? Жмем кнопку "Вгрузить" (над двоечкой на скриншоте), и внимательно смотрим на строку внизу интерфейса (под тройкой скрина).
Как только надпись "компиляция" сменится "загрузкой" — жмем красную кнопку (ресет) — если все ок — на USB-TTL адаптере радостно заморгают огоньки, а внизу интерфейса надпись "Вгрузили"


Теперь пока мы ждем прихода тестовой СМС на телефон, расскажу как работает программа:


Вторая версия отладочного стенда


На фото — вторая версия отладочного стенда.


При первом включении система сверяет байты номер 500 и 501 EEPROM если они равны, значит калибровочные данные не записаны, и алгоритм переходит к разделу настройки.
То-же самое происходит, если при включении фоторезистор затенен (колпачком от авторучки) — активируется режим сброса параметров.


Тензодатчики должны уже быть установлены под ульи, так как мы просто фиксируем начальный уровень нуля и дальше измеряем изменение веса (сейчас просто придут нули, поскольку мы ничего еще не подключали).
На ардуино при этом начнет моргать встроенный светодиод пина 13.
Если сброс не происходит, светодиод загорается на 12 секунд.
После этого отправляется тестовая СМС с сообщением "INITIAL BOOT OK" и напряжением батареи.
Модуль связи выключается, и через 3 минуты плата Ардуино переводит платы АЦП HX711 в режим сна и засыпает сама.
Такая задержка сделана что-бы не ловить наводки от работающего GSM-модуля(после выключения он некоторое время "фонит").


Дальше, у нас работает прерывание по фотодатчику на втором пине (включена подтяжка плюса функцией pullup).
При этом после срабатывания еще 3 минуты проверяется состояние фоторезистора — для исключения повторных/ложных срабатываний.
Что характерно, безо всякой настройки система срабатывает через 10 минут после астрономического заката в пасмурную погоду и через 20 в ясную.
Да, чтобы при каждом включении система не делала сброс, должен быть подключен по крайней мере первый модуль HX711(пины DT-D10, SCK-А0)


Потом снимаются показания тензодатчиков, вычисляется изменение веса с предыдущего срабатывания(первое число в строке после Hive) и от первого включения, проверяется напряжение батареи и эта информация отправляется в виде СМС:


Образец работы системы


Кстати, получили СМС? Поздравляю! Мы на середине пути! Батарею пока можно извлечь из держателя, компьютер нам далее не понадобится.


К слову, центр управления полетами получился настолько компактным, что его можно уместить в майонезную баночку, в моем случае отлично подошла полупрозрачная коробочка размером 30х60х100мм (от визиток).


Да, спящая система потребляет ~2.3мА — на 90% за счет модуля связи — он не выключается полностью, а переходит в режим ожидания.


Не Хьюстон


Приступаем к изготовлению датчиков, для начала коснемся схемы расположения сенсоров:


Расположение сенсоров


Это план улья — вид сверху.


Классически, устанавливаются 4 сенсора по углам (1,2,3,4)


Мы-же мерить будем по-другому. А точнее даже по-третьему. Поскольку по-другому делают ребята из BroodMinder:


BroodMinder


В данной конструкции датчики установлены на позициях 1 и 2, точки 3,4 опираются на брус.
Тогда на сенсоры приходится только половина веса.
Да, такой метод имеет меньшую точность, но все-же трудно представить, чтобы пчелы застроили все рамки "языками" из сот вдоль одной стенки улья.


Так вот, я предлагаю вообще свести датчики в точку 5 — тогда отпадает необходимость в экранировании системы, а при использовании легких ульев и вовсе обходиться одним сенсором.


Варианты датчиков и сенсоров


В общем, было проверено два вида модулей на HX711, два вида датчиков, и два варианта их соединения — с полным мостом Уитстона(2 сенсора) и с половинкой, когда вторая часть дополняется 1к резисторами с допуском 0.1%.
Но последний способ нежелателен и не рекомендован даже производителями сенсоров, поэтому опишу только первый.


Итак, на один улей у нас будет устанавливаться два тензодатчика и один модуль HX711 схема распайки следующая:



От платы АЦП до ардуино идет 5 метров 4-жильного телефонного кабеля — мы-же помним, как пчелы не любят GSM-устройства в улье.


В общем, на датчиках оставляем "хвосты" по 8см, зачищаем витую пару и все распаиваем как на фото выше.


Прежде, чем начать столярную часть, поставьте воск/парафин в подходящей емкости плавиться на водяную баню.


Теперь берем наш брус и делим на три отрезка по 100мм


Дальше размечаем продольный паз шириной 25 мм, глубиной 7-8мм, с помощью ножовки и стамески убираем лишнее — должен выйти п-образный профиль.


Воск разогрелся? — окунаем туда наши платы АЦП — это защитит их от влаги/тумана:


Защита АЦП от влаги


Располагаем это все на деревянном основании(необходимо обработать антисептиком от гниения):


Сборка


Ну и наконец, фиксируем датчики саморезами:


Готовый датчик


Был еще вариант с синей изолентой но из соображений гуманности его не привожу ;-)


Со стороны Ардуино делаем следующее:


Зачищаем наши телефонные кабеля, цветные жилы скручиваем между собой, лудим.


После этого, паяем к контактам платы как на фото:


Финал


Все, теперь для конечной проверки, ставим датчики по секторам круга, сверху — кусок фанеры, обнуляем контроллер (ставим батарею с одетым на фотодиод колпачком от авторучки).


При этом должен заморгать светодиод на ардуинке и придти тестовая СМС.


Дальше снимаем с фотоэлемента колпачек, и идем набирать воду в 1.5 литровую пластиковую бутылку.
Ставим бутылку на фанеру и если уже прошло несколько минут от включения, одеваем колпачек обратно на фоторезистор (имитируя закат).


Через три минуты светодиод на ардуино загорится, и Вам должна придти СМС со значениями веса около 1кг на всех позициях.


Поздравляю! система успешно собрана!


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


Да, в реальных условиях фоторезистор желательно ориентировать вертикально вверх.


Теперь приведу кратенький мануал по пользованию:


  1. Установить тензодатчики под задние стенки ульев (под передние подставить брус/доску толщиной ~30мм)
  2. Затенить фоторезистор и поставить аккумулятор — должен заморгать светодиод и придти тестовая СМС c текстом "INITIAL BOOT OK"
  3. Расположить центральный блок на максимальном удалении от ульев и так, чтобы провода не мешали при работе с пчелами.
    Каждый вечер, после заката будет приходить СМС с изменением веса за сутки и с момента запуска.
    При достижении напряжения батареи значения 3.5В, СМС будет оканчиваться строкой "!!! CHARGE BATTERY !!!"
    Время работы от одной батареи емкостью 2600мАч — около месяца.
    В случае замены батареи, суточные изменения веса ульев не запоминаются.

Что дальше?


  1. Придумать как оформить все это в проект для github
  2. Завести 3 пчелиных семьи в ульях системы Паливоды(или рогатых в народе)
  3. Добавить "плюшек" — измерение влажности, температуры, а главное — анализ жужжания пчел.

Засим пока все, искренне Ваш, электропчеловод Андрей


Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (72):

  1. Anton23
    /#19907012 / +1

    Даешь технологии в ульестроение и пчеловодство!

    Интересно, уже существуют готовые решения для умных ульев?

    • gerasimenkoao
      /#19907114

      Да, есть множество стартапов и любительских разработок, но это либо
      A. Дорого
      B. Сложно
      С. Нельзя показывать людям ;-)
      У некоторых энтузиастов дело так и не доходит до работающих образцов.


      Но самый главный критерий "непаханного поля" — отсутствие китайских клонов подобных систем.


      Еще с одним парадоксом столкнулся в лице BroodMinder — ребята собрали денег на bluetooth-мониториг влажности/температуры, выпустили девайсы, а спустя некоторое время запустили краудфандинг на тот-же продукт.


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

  2. Ksiw
    /#19907284 / +1

    Зачем держать модуль связи постоянно включенным? Вы указываете, 90% энергии сжирает он. Ведь можно запитать его только на время инициализации и отправки смс. И время автономной работы увеличится в Х раз.
    Поясните.
    А, солнечную панельку бы присобачить, целесообразно, полагаю.

    • gerasimenkoao
      /#19907334

      Добрый день!
      Так он и не включен постоянно (ибо в таком режиме потребляет до 50мА)!
      Просто режим power-off, активируемый что AT-командой, что кнопкой выключения (двойное нажатие с интервалом 2-3с), по сути переводит модуль в стендбай-режим — он в сети и может принять входящий звонок.

      Вот в нем как раз и потребляется около двух миллиампер.
      Может конечно SIM800L или NEOWAY и выключаются полностью, но тут(AI-THINKER A-6) так не выходит.

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

      Да, еще конечно можно поставить (полевой)транзистор для отключения GSM-модуля, но где его такой найти с управлением логикой 3.3v и падением напряжения меньше 0.1В

      • Ksiw
        /#19907398 / +1

        Ага. А зачем звонить в улей? В описании указана односторонняя связь раз в сутки, полагаю, лучше включать модуль посредством транзистора тогда, когда надо. Месяц автономной работы это мало для этого устройства. Переубедите, если что то упускаю из виду.
        Второй вопрос по коду. В loop() после выключения тензодатчиков есть задержка в 90сек, зачем она? После чего вызывается функция сна, и как известно, камень может спать максимум 8 секунд, а по коду не видно на какую длительность это происходит. То есть получается, что процессор почти не спит.
        Поясните пожалуйста эти вопросы, и какое именно прерывание выдергивает камень из сна.

        • gerasimenkoao
          /#19907522

          По поводу транзистора — я добавил выше — проблема падения напряжения в открытом состоянии.
          Звонить в улей — да в принципе не надо (хотя я думал добавить принудительную отправку статистики по звонку), просто вот такая особенность этих модулей связи — не выключаются полностью.

          По коду — скажу — процессор чудесно засыпает и просыпается по прерыванию на пине 2

          attachInterrupt(0, NULL, RISING);

          detachInterrupt(digitalPinToInterrupt(0));

          То-есть, в разделе setup включается внутренняя подтяжка напряжения на цифровой пин 2:

          pinMode(2, INPUT_PULLUP);

          Между ним и «землей» — фоторезистор, на закате при уменьшении засветки, логический 0 сменяется логической единицей, что и ловится прерыванием, пробуждая камень.

          Можно сказать, такое ноухау, на самом деле экспериментировал и с фототранзистором, и с обратной реакцией (pulldown) — все не то.
          А дополнительно ставить RTC не хотелось.

          В следующих версиях (с дополнительными параметрами) время будет запрашиваться от самого модуля связи, а при наличии солнечной батарейки ардуино можно вообще не загонять в сон (+3мА)

          А по поводу месяца — на самом деле пасека требует гораздо более частого участия пчеловода, особенно передвижная — одни медоносы отцвели — переезд на другие.
          Я к своим пчелам смотрел раз в неделю.

          • Ksiw
            /#19907552 / +1

            Все понял, неплохо придумано! +

          • nafikovr
            /#19907596

            проблема падения напряжения на открытом транзисторе надумана. при ваших токах ее нет от слова совсем.

      • Ksiw
        /#19907462 / +1

        И зачем 250 раз за итерацию тела программы проверять датчик освещенности?
        Так же, в loop() вы каждый раз "выключаете" gsm модуль с соответствующими задержками, тратя драгоценную энергию и теряя автономное время работы.

        • gerasimenkoao
          /#19907588

          Проверка датчика освещенности 250 раз?
          Вы обращали внимание на уличные автоматические фонари?
          Они перед нормальным включением некоторое время моргают на граничном состоянии засветки фотодатчика.
          Так и у меня, без ряда проверок, нередко смс строчились как из пулемета.
          А почему проверялю так часто? Пускай это будет мой заскок.


          По поводу драгоценного времени работы — положим система спит сутки — 2.3мА24ч=55.2мАч
          Модуль связи не спит 3 минуты (1/20часа), потребляя в среднем 50мА, итого 2.5мА*ч
          То-есть, бодрствуя система "сьедает" 1/20 от суточного потребления.


          Идем дальше, замеренная емкость батареи 2600мАч у меня не получалась выше чем, 2300.
          2300/57.7 = 39 суток.
          Как по мне — нормальный результат для первой итерации системы, если учесть что к примеру GPS-трекеры с батареей 10 000мАч работают до 3 месяцев.

          • Winnie_The_Pooh
            /#19908990 / +1

            Стандартное решение в системах с медленным изменением параметра рядом с границей — введение гистерезиса. Можно аппаратно, в вашем случае — вполне можно программно.

      • Ksiw
        /#19907806 / +1

        По поводу транзистора, хотел бы дообсудить, мосфеты выпускаются самых разных параметров, я совершенно уверен, что эта проблема точно надумана.

        • gerasimenkoao
          /#19907886

          Я-бы с радостью использовал подобное решение, но обычно ttl-mosfet расчитаны на 5В-логику, а уж никак не на 3.3.

          А так, конечно заманчиво было-бы найти транзистор на ток до 200мА с падением напряжения до 0.1В

          • wormball
            /#19908062 / +1

            IRLML2244?

            • gerasimenkoao
              /#19908264

              И ведь похоже на правду!
              Конечно, не в соседнем радиомаге, но таки они доступны!

              • nafikovr
                /#19908332 / +1

                bss215 еще посмотрите. может и в соседнем радиомаге завалялось

          • Winnie_The_Pooh
            /#19909012 / +1

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

          • Alexeyslav
            /#19909462 / +1

            ttl-mosfet тоже хорошо подойдут, они открываются при 1.5-2.5В только сопротивление канала несколько больше будет чем при 5В, но оно там и так достаточно низкое для ваших целей.
            А вообще, КТ816 обычный биполярный тоже удовлетворяет вашим условиям при токе 100-200мА у него падение напряжения внезапно порядка 0.15В. Есть ещё какие-то биполярные транзисторы с низким падением напряжения, причем это технологии ещё 60-70-х годов.

            • nafikovr
              /#19910142 / +1

              Есть ещё какие-то биполярные транзисторы с низким падением напряжения, причем это технологии ещё 60-70-х годов.

              германий?

              • Alexeyslav
                /#19910378

                Нет, что удивительно — кремний. Тот же КТ815/816 у них при малых токах маленькое падение.

              • VT100
                /#19910408

                Инверсный режим (МРБ, вып. 887) — коллектор и эмиттер меняются местами. Падение в ключевом режиме ниже, но и ток управления требуется существенно выше.

                • nafikovr
                  /#19911342

                  в 21 веке, когда есть мосфеты на любой (практически) вкус, мне это кажется каким то извращением

                  • Alexeyslav
                    /#19913020

                    С полевиками тоже не всё так просто, ёмкость затвора порой мешает сильнее чем повышенный ток на управление.
                    Не зря существуют гибридные транзисторы. И арсенид-галлиевые тоже в ходу. А кое-где, так досихпор у ламп нет конкурентов(микроволновка, магнетрон!).
                    Смешно конечно, но не так уж давно хотели делать микропроцессоры на радиолампах… на микронных размерах оказалось что и накал не нужен. И вполне могло бы получиться.

                • Alexeyslav
                  /#19913078

                  Нет, это был специальный транзистор для работы в преобразователях напряжений с питанием от низкого напряжения(аккумулятор например 1.25В 50А*ч). К сожалению уже не помню его маркировки, начинался на 2Txxxx стоял в радиостанции, ламповой, которая могла питаться от АКБ одной ячейки на 1.25В разработки 198х какого-то там года.

      • Alexeyslav
        /#19909400 / +1

        Сейчас такие транзисторы не проблема, управляются они от 1 вольта, сопротивление канала 20мОм и меньше. Справочник только открывай и выбирай что доступней. У этого 0.1В упадёт при 5А.
        Первый попавшийся, не такой идеальный конечно, IRLML6402 — -20 вольт(P-канальный, вам же + шину размыкать?), 60 милиОм. т.е. 60 милливольт при 1А токе.
        Gate Threshold Voltage -0.40...-0.95V — т.е. не больше 1 вольта. При 3.3В он гарантировано будет открыт. Перекрывает ваши потребности с лихвой.
        По цене 20 шт на 1$…
        При желании найти чего получше можно.

        Только один ньюанс, с модулями типа SIM800 была проблема с коммутацией — тока утечки через транзистор хватало чтобы на конденсаторе модуля медленно копилось напряжение и он кратковременно пытался стартовать. Нужно этот ньюанс проверить и при необходимости параллельно модулю включить резистор на десяток килоом, погоду он не сделает а утечку нивелирует.

  3. Gibrrr
    /#19907554 / +2

    Пчелы, вроде как, по-разному реагируют на ЭМИ разных частот, может есть смысл рассмотреть что-то кроме GSM? Либо отдалить GSM-модуль более чем на 5м?

    • gerasimenkoao
      /#19907630

      Часто на пасеках нет ни WIFI, ни тем более другого оборудования связи.


      В предыдущих публикациях я рассматривал возможность использования NRF-24 или вообще RS-485, и возможно к ним еще вернусь (если надо будет мониторить ну совсем много ульев).


      В экспериментах описанная система работала на проводах длинной 10 метров между каждым HX711 и ардуино, больше не проверял, ибо ногодрыг I2C вообще не создавался для длинных линий.

      • Winnie_The_Pooh
        /#19909028 / +1

        Вам логично вынести на большое расстояние модуль с радиопередатчиком. Но тогда придется использовать интерфейс RS232 (он работает с уровнями +-12 вольт, помехозащищен и как раз предназначен для работы с длинными линиями связи).

        • Alexeyslav
          /#19909522 / +1

          RS-485 защищён и для длинных линий. а RS232 никаких особых защит не несёт(разве только величиной напряжения и гистерезиса) и на длинные линии работать не может — из-за ёмкости линии затягиваются фронты и начинаются сбои уже на скоростях выше 20Кбод…
          Можно попробовать передавать данные оптикой — маленьким лазерным модулем и фототранзистором, но нужен помехозащищеный протокол — солнце будет мешать, блики будут давать неожиданные помехи. Но если оформить все в правильные коллиматоры то влияние солнца можно свести к минимуму. туман… только очень плотный туман с видимостью метр-два может доставить проблемы.

          • Winnie_The_Pooh
            /#19909598 / +1

            Зачем тут скорости 20 кбод? :)))
            Экспериментально проверено, что например RS232 работает с кабелем (экранированная витая пара) длиной 30 м со скоростью 9600 годами без сбоев.
            А куда тут больше-то?

            Можно я не буду комментировать остальное про оптику?

            • Alexeyslav
              /#19909676 / +1

              Работать оно может, темболее на скорости 9600 но гарантии стандарт не даёт никакой. Поэтому всё это держится исключительно на авось. Ну работает и ладно. Но закладываться заранее на такие условия не стоит, может выйти облом. У меня-то и 115200 на 10 метров работало на обычном проводе, но это ничего не значит…

              • Winnie_The_Pooh
                /#19910266

                Первая же попавшая ссылка на стандарт тыц говорит, что гарантируется скорость 115200 на дистанции до 15 м. Для обсуждаемого кейса — более чем достаточно.
                Жизненный и профессиональный опыт говорит, что при использовании человеческого кабеля — прекрасно все работает и на существенно больших дистанциях.

      • Alexeyslav
        /#19909564

        У меня есть печальный опыт с длинным проводом, учтите возможность грозы даже поблизости. У меня микросхему разорвало на части(а она была защищена стабилитронами, которые сплавились по всей видимости несколько позже), к которой было подключено 5 метров провода со свободными концами…
        RS485 тут лучше будет, или оптика. Кстати минус для проводов — наводки от GSM могут гулять по этим же проводам и прямо в улей, их надо развязать от схемы по ВЧ бусинками хотябы или нашлёпками как на USB/VGA кабелях.

    • IvanhoeLab
      /#19907660 / +1

      Либо отдалить антенну на 6-метровом кабеле.

      • gerasimenkoao
        /#19907768

        Что кстати, куда более логично, чем увеличение длины 3 кабелей до датчиков.


        Да и закинув антенну на соседнее дерево качество сигнала сильно повысится, что в случае неустойчивого покрытия очень важно!


        Спасибо за идею!

        • Alexeyslav
          /#19909568

          И заодно хороший молниеотвод будет… Охщит…

      • Winnie_The_Pooh
        /#19909058 / +1

        Потери в крысином хвосте будут перекрывать выигрыш от высоты установки антенны.

        • gerasimenkoao
          /#19909358

          Ну не скажите, у меня на даче к примеру, в некоторых местах даже мобильный телефон не ловит сеть.
          Так вот, антенна «волновой канал» 14dbi на 4-метровой мачте вполне решала проблему GPRS, а ныне — CDMA-3G-связи. И крысиные хвосты не были помехой.

          Другое дело, с обычной червертьволновой эффекта может не быть.

          В общем, если взять антенну Харченко, а кабель запаять на плату минуя разъемы, то проблем не будет вообще.

          • Winnie_The_Pooh
            /#19909552

            В вашем случае лучше вынести вверх весь GSM модуль, связав его четырьмя проводами с модулем процессора. Я пробовал использовать витую пару, запараллелив две пары для подачи питания — отлично работает много лет.

            • gerasimenkoao
              /#19909720

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

              • Winnie_The_Pooh
                /#19910294

                Вам потребуется вот такой готовый модуль:
                «RS232 Board, Коммуникационная плата RS232, на базе SP3232, 3-5.5В, ESD защита, аппаратное управление потоком»
                Я покупал его в Чипе и Дипе.

            • nafikovr
              /#19911360

              если выносить модем, есть смысл вообще задуматься о центральном контроллере, собирающем информацию со всех ульев по RS-485. масштабируемость и надежность будут на уровне.

              • gerasimenkoao
                /#19912824

                На самом деле, я рассматривал такой вариант, просто при RS-485 на каждом улье должен быть свой маленький контроллер, у attiny85 слишком мало ног, если добавлять что-то кроме веса, atmega328 на один улей будет обладать большой избыточностью.

                Одним словом, мониторить одной атмегой 3 улья по параметрам вес, температура, влажность, запись звука — самое оно. А потом можно отдаваться в центральный контроллер хоть по проводам, хоть по nrf24

                А так, как пчеловоды меня убедили, что вес — их все, то с него решил и начать.

                • nafikovr
                  /#19912998

                  atmega328 на один улей будет обладать большой избыточностью.

                  во-первых, я так не считаю.
                  во-вторых, можно взять мега88
                  в-третьих, я бы вообще stm32 взял
                  запись звука — самое оно

                  какая к черту избытычность запись звука на атмеге. разве что совершенно непожатый писать, но передавать его будет той еще задачкой.
                  А так, как пчеловоды меня убедили, что вес — их все, то с него решил и начать.
                  вот тут главный момент. который определяет и выбор контроллера и его избытычность. масштабируемость в данном случае будет не только в количестве приборов, но и в количестве их типов. надо новый параметр — вешаем его хоть на новое отдельное устройство меряющее только новый параметр, хоть на новое устройство, меряющее и новый и старый параметр. при этом условием совместимости будет только интерфейс с головным устройством, а за интерфейсом пусть хоть полноценный комп будет стоять.

                  • Alexeyslav
                    /#19913176

                    Меги вполне хватит для частотного анализа звука, там же не нужен анализ с точностью до герца? И звук не меняется мгновенно, достаточно раз в секунду(или вообще раз в 10 секунд?) записать короткий отрывочек, выполнить ДПФ с шагом по 500Гц(или 100Гц?), результат размером в 20(100) чисел отправить на анализ. Делать это в реалтайме нет необходимости.

                    • gerasimenkoao
                      /#19913574

                      Вот как раз и собирался делать преобразование Фурье, до 700Гц.

                      Под ардуинки даже библиотека FFT есть, нужно только немного допилить.

                • Winnie_The_Pooh
                  /#19913920

                  При цене атмеги в 100 р — я бы наплевал на избыточность. Экономить надо свои силы и мозг. Плюс опыт говорит, что задумываешь одно, а потом хочется и вон того и вот этого — а если все впритык, то не добавить. А если ресурсов достаточно — то большинство хотелок несложно реализовать.

                  • Alexeyslav
                    /#19913980

                    Ну как бы… 100рэ тоже деньги. Есть линейка контроллеров мега 48-88-328 пин-в-пин совместимые. Можно варьировать контроллер в зависимости от функционала прошивки на одной и той же плате, экономя средства.

  4. stgunholy
    /#19909196 / +1

    Вот «анализ жужжания» был бы мне кажется самым интересным. У меня ульи в городе, и самое неприятное что происходит это роение, В прошлом году после того как я всё проверил они зароились на 2ой день… что было неожидано. :) Потом показатели влажности тоже интересно… А если вывести все в отдельную коробочку которая на улей прям вешается… вообще супер.

    • gerasimenkoao
      /#19909438

      Так все будет — но не прямо сразу.

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

      • stgunholy
        /#19914364

        Ну я не в мегаполисе пчел конечно держу… Осло. Через дорогу лес и поля. Но всё равно соседи стремаются, когда роиться пчелы начинают :)

  5. VT100
    /#19910592

    В итоге получилась автономная система со временем работы около месяца на одном заряде батареи 18650 ...

    Хотел, по привычке, попенять на линейные стабилизаторы и прочее, но… поскольку необходимо частое участие пчеловода в процессе — значит проходит.

    Конструкцию старался максимально упростить, дабы ее можно было повторить даже без схем, по одним фотографиям.

    Отсутствие схемы — не упрощение, а косяк. И настоящей (пусть и от руки), а не фритцинг.

    К тому-же, у решения от AiThinker минимальное потребление энергии (при отправке СМС не видел тока выше 100мА).

    Каким амперметром проверяли? Скорее — он не успевал отреагировать.

    Фоторезистор GL5528 (важно именно такой

    1. Брать время от GSM, как тут уже упоминали.
    2. Подключить к аналоговому входу, что-бы иметь возможность вместо digitalRead(2) подстроить порог под то, что есть в «магазине за углом».

    Отнесённые на длинных проводах модули HX711:
    1. Нет-ли ошибочных данных (из-за завалов фронтов сигналов и/или просадок питания на модулях)?
    2. Есть-ли защита от возможных перенапряжений (см. Alexeyslav)?

    Андрей Кнышев. Рейтинг удовольствий.
    lib.ru/ANEKDOTY/KNYSHEW/rating200.txt

    151 — умиление трогательной беззащитностью и нежной хрупкостью цветка, божьей твари, девушки, самодельной конструкции;

    • gerasimenkoao
      /#19912900

      Ок, по поводу схемы — учту/нарисую, Fritzing не содержит необходимых компонентов.

      За время трехдневного теста ошибочных данных не обнаружил.

      На самом деле, доработкой можно заниматься бесконечно, к чему и приступлю.

  6. slog2
    /#19910950

    1. Тензодатчики «плывут» под постоянной нагрузкой. Особенно первое время. Измерения будут не точными.
    2. Я, как пчеловод, не вижу особого смысла измерять вес каждого улья. Достаточно одного.

  7. augorelov
    /#19912512

    В таком виде систему предлагать и показывать стыдно кому-либо, если только для своих экспериментов без всеобщего обозрения. Сразу видно подход человека непонимающего ничего в электронике и построения встраиваемых систем. Сразу, что бросается в глаза:
    1. Подключение фоторезистора к цифровому входу (выше это отмечали), в следствие чего бестолковая работа в исходном коде с ним;
    2. Работа с GSM модемом: нет проверки регистрации в сети, нет проверки сим карты, не отключение его для экономии заряда батарее и т.д.;
    3. Длинный провода от измерительного контура;
    4. Конструкция всего этого поделия.

    • gerasimenkoao
      /#19912956

      Конструкция всего этого поделия.

      Могу сказать одно — я художник — так вижу ;-)


      Есть ряд "правильных" систем с RTC и модулем связи прямо на улье — но что-то они не пошли — то-ли пчелам не нравится, то-ли людям, повторяющим конструкцию.


      Работа с GSM модемом: нет проверки регистрации в сети, нет проверки сим карты, не отключение его для экономии заряда батарее и т.д.;

      Это все добавится, отключения нет полного в силу такого функционала модуля связи.
      О бесконечности процесса доводки уже писал.


      А по поводу "стыдно показывать" — знаете, опять таки "правильная" система на нескольких макетных платах и с сотней соединительных проводников выглядит куда удурчающе.

  8. serg_fastunov
    /#19912962 / +1

    Пара вопросов:
    1. Есть практические наблюдения, как пчелы реагируют на 3G модуль, установленный стационарно в непосредственной близости от улья?
    Бытует мнение, что пчелы плохо переносят сотовую связь. Проявляется в явлении, которое называется «слет пчел» (семья просто в полном составе улетает из улья, не путать с роением — когда из улья вылетает часть семьи с новой маткой).

    2. Как быть в условиях отсутствия сотовой связи? Расположение пасек в глухих местах вполне распространенное явление.

  9. gerasimenkoao
    /#19913044

    Наблюдения есть и отчасти о них упоминается в статье


    Потому и решил вынести модуль связи на несколько метров от ульев.


    При отсутствии сотовой связи, как мне кажется любая другая связь тоже вряд-ли будет присутствовать.
    А так, максимальное расстояние до БС в стандарте GSM900 — 35км, при наличии направленной антенны и заземления, вполне на это расстояние можно ориентироваться.


    Кроме того, при полном выключении модуля, без трех минут, 24 часа в сутки ЭМИ пчел беспокоить не будут, да и кстати, при использовании направленной антенны влияние боковых лепестков сильно уменьшается.


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

    • Alexeyslav
      /#19913282

      Направленная антенна не поможет. 35 км это программное ограничение дальности связи связанное с задержкой распространения сигнала и организацией каналов связи в GSM с временым разделением каналов. На расстоянии более 35км уже есть риск выйти на чужой тайм-слот, поэтому оно ограничено. А так, телефон прекрасно видит сеть и на расстоянии в 70км(полагаю, это на старых частотах 800/900Мгц) без направленных антенн, только зарегистрироваться в сети ему не дадут. В реальных условиях расстояние больше ограничено рельефом местности, и направленные антенны никак с этим не помогут. Вот у нас к примеру, до соседнего города 40км по прямой, но на пути есть плавный холмик высотой всего 26 метров, приём даже FM радио с города у нас практически невозможен, нужно поднимать антенну как минимум метров на 20-30…

    • Winnie_The_Pooh
      /#19913948

      учитывайте также, что сотовый терминал излучает по стандарту до 2 вт в условиях плохого приема (т.е. больших потерь в канале до БС). 2 вт на частоте 800-900 МГц — это не только пчелам поплохеет, но и человеку не слишком здорово…

    • serg_fastunov
      /#19913974

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

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

      Можно предусмотреть накопление данных и пакетную передачу по доступному каналу связи. Блютуз в качестве обязательного канала устанавливать (съем данных, настройка). А вот модем мобильной связи делать как подключаемый опцион (есть связь — ставим, нет — значит только блютузом пользуемся).

      Очень интересная идея. И оформить устройство в виде платформы, на которую ставить можно любой улей.

      • Winnie_The_Pooh
        /#19914484 / +1

        Зачем тогда вообще блютузы и пр.? ставим ферроэлектрическую I2C память (FRAM) ценой 65 р — и выдаем ее содержимое наружу при подключении к терминалу :) 8 кбайт хватит на года :)

  10. gerasimenkoao
    /#19914356

    Подолью еще масла в огонь:


    !!! UPD!!!
    Красный или синий?


    Какой провод резать????
    Нет, я не устроился сапером!
    Только что резал провода ардуинки, и вот почему:


    Наверное Вы обратили внимание, что тестовый стенд был собран на другом модуле связи — AiThinker A6.
    Продавцы заявляют их полную совместимость с Goouu Tech IOT GA-6-B, который был использован для финальной сборки.
    И неудивительно, ведь прошивки AiThinker-а льются в ГоооууТех.


    Но не все так просто — у меня прошивальщик в упор не видил последний модуль, управление режимами выключения питания тоже отличалось.
    Кроме того, модули AiThinker A6 не хотели запоминать настройки по команде AT&W/AT&W0, гоутех — запоминал.


    Но это — ладно, вот сейчас будет вообще сказка — AiThinker A6 действительно не засыпал полностью и был в сети, вся система потребляла ~2.5мА "гуляя" этим параметром вверх.
    При этом можно было отзвониться на номер сим-карты модуля.


    Проверяя "финальный" релиз, я обратил внимание, что в режиме сна потребление снизилось до =2.3мА безо всяких выбросов вверх и списал все на особенности прошивки модуля IOT GA-6-B.


    И вот теперь, пытаясь добавить функцию принудительной пробудки по звонку(для внеочередного измерения) я с удивлением обнаружил, что моя GSM-ка выключается, то-есть вообще!!!


    Еее нет в сети! Тогда кто потребляет столько энергии??? Пришлось взяться за кусачки и тестер!


    Для начала — ПАРАДОКС №1 — система стала потреблять всего 1.6мА, но с подключенным и запитанным адаптером CH340, при его отключении, ток потребления поднимался до замеренных ранее 2.3мА!!!


    Как это происходит? непонятно!


    Начал кусать провода — HX711 — потребление не изменилось!, синий (земля GSM-модуля) — минус 1.5мА!!!


    Переключаюсь на режим измерения микроампер — 440 (это на спящей ардуинке, без других потребителей), подключаю CH340, воткнутый в комп — 140микроампер!


    Как обьяснить данное поведение микроконтроллера — непонятно!


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


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


    Вот разве что указанный элемент действительно является транзистором, тогда его можно заменить на более "православный" — с меньшей утечкой!


    А вот каким чудом "накидываются" более 0.3мА — это действительно вопрос!

    • Winnie_The_Pooh
      /#19914404 / +2

      Повышение потребления при отключении CH340 возможно связано с входом, висящим в воздухе. Схемотехника входных каскадов атмеля такова, что нежелательно иметь вход, висящий в воздухе. Объявите его выходом, либо объявите вход с пуллап или пулдаун.
      А непонятный элемент — вероятно LDO на 3.6 вольт
      Входы толерантны к пяти вольтам, но питание модуля — все равно не более 3.6.

      • gerasimenkoao
        /#19914582

        На конденсаторе GSM-модуля я фиксирую напряжение 4.02-4.10 Вольта разными тестерами, это при подключенном на вход платы +5В от USB


        К тому-же, модуль перестает работать или вовсе не включается при снижении напряжения питания до 3.4В


        Так что либо не-LDO, либо на другое напряжение.


        И еще:


        На Синкеровской плате трехногого элемента нет, зато на обоих есть step-down, указанный на фото выше, и оба понижают напряжение до 4.02В

        • Winnie_The_Pooh
          /#19915100

          Да, Вы правы, питается оно от импульсной понижайки 5 -> 4.2 в
          Неопознанный элемент это таки LDO на 3.3 в, вот схема.

          • gerasimenkoao
            /#19915582

            На самом деле, этих китайцев не поймешь — у Вас кстати схема модуля с камерой,
            Я не нашел принципиалки A6 Mini, но у обычной версии LDO нет, впрочем как и визуально его не наблюдаю на плате


            К тому-же, было-бы нелогично ставить конденсатор до линейного регулятора, а на нем таки 4 вольта!
            Ну и как-бы в ардуинках я встречал регуляторы 3.3В с маркировкой KB 33, DE=A10, LB 33 — а тут неведома зверушка то-ли Y655V12, то-ли Y45V12

            • Winnie_The_Pooh
              /#19917614 / +1

              Гаданиями делу не поможешь :))

              Берите тестер, прозванивайте плату, рисуйте принципиальную схему, обсудим :)

    • VT100
      /#19914704

      Вот для этого и нужна принципиальная схема. Включая схемы «покупных изделий».
      Всё вышеизложенное — эмоции, с практической ценностью около нуля.

      P.S. Чудеса, не отражённые в errata (списках обнаруженных ошибок), — исчезающе редки.

  11. Wolf4ara
    /#19914606

    пчелы очень не любят источник ЭМИ, так как сами его создают. с этим проблем не было?

  12. gerasimenkoao
    /#19924192

    Знаете, я не хочу никого топить, но:


    1. Если критику пользователей, имеющих СВОИ публикации на Хабр-е еще можно считать конструктивной, то остальные я воспринимаю, как на 90% "токсичный" контент.


    2. Вот к примеру (не моя)конструкция, которая продается за деньги:

      Висящие тонкие провода тензодатчиков у меня не пошли дальше стенда.
      Ну а GSM-модуль просто на стенке улья — это вообще слезы.


    3. Все не так плохо — благодаря конструктивным предложениям и критике за три дня я сильно скорректировал систему, но это уже совсем другая история (и публикация)



    А первичный вариант — уж пускай останется для истории как есть.