Контрольные весы для пасеки с отправкой данных в SMS
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- следующая ›
- последняя »
- Войдите на сайт для отправки комментариев
Здравствуйте!
Не программист, просто электронщик. Также работаю с веб. На досуге работаю с пчёлами.
Появилась необходимость собрать контрольные весы. С их помощью косвенно определяют состояние дел на пасеке: на весах постоянно стоит контрольный улей, контрольные весы проверяют в одно и то же время каждый день для оценки привеса или убыли, исходя из полученных данных делаются выводы и принимаются решения о проведении тех или иных работ.
Для "пасечника выходного дня" личный ежедневный контроль неприемелем, особенно когда пасека далеко. Потому было принято решение собрать относительно простой электронный вариант дистанционного контроля привеса контрольного улья.
Исходный функционал намечается следующий (может быть дополнен, но для начала - базовый функционал):
1. Питание автономное. Отсюда требования к низкому энергопотреблению, по возможности. В идеале, устройство должно всё время спать, когда не производятся измерения.
2. Цикл работы: выход из спящего режима в 20:00, измерение веса, вычисление привеса (данные сегодня в 20:00 минус данные вчера в 20:00), оценка состояния батареи, активация GSM-модуля, отправка SMS, уход в спящий режим.
3. Экрана и подключения к устройству "в поле" не предусмотрено. Будет возможность только замены элементов питания, не более того. Установка номера, на который будет отправляться SMS с данными - путём отправки на номер телефона симки, установленной в весах, сообщения с паролем/командой. При получении пароля необходимо считать номер, с которого пришло сообщение, и занести его в память для последующей отправки на него данных.
Это - базовая "хотелка". В перспективе, по мере реализации, добавление датчика температуры и давления, съём данных с 5 до 20 часов каждый час с отправкой данных в 20:00 на сервер. Но то позже. Сначала - работоспособность базового варианта.
Из имеющегося в наличии:
1. Китайский клон Uno R3 с CH340 на борту (вроде стандартный кабель микро-юсб, а с драйверами при подключении поприседать пришлось).
2. 4 полумостовых тензодатчика по 50 кг каждый с возможностью перегрузки до 150%.
3. Hx711 для подключения тензодатчиков к Arduino.
4. Модуль часов реального времени DS3231 с автономным питанием для сохранения данных о дате/времени при смене источников питания всего устройства.
Не совсем понятно, как можно "в поле", в случае каких-либо проблем, задать время и дату, если питание отвалится или ещё какой казус произойдёт... Как задать время срабатывания будильника?
5. Самый смешной элемент: GSM-шилд от китайских братьев, на чипе Neoway M590 с даташитом на китайском языке
С ним всё классно, кроме того, что есть на нём 12 ног, которые не подписаны, и как оно будет работать - пока неясно :( Зато достался за $7,80... Разобраться пока не смог :(
Алгоритм работы всей системы представляю себе следующим образом:
Включили питание, система запускается, производится замер сигнала с датчиков веса, который принимается за ноль - происходит автоматическое обнуление веса, затем система уходит в сон (нашёл соответствующую библиотеку, команда, судя по всему - set_sleep_mode (SLEEP_MODE_PWR_DOWN); подробности), затем в заданное время с ноги SQW часов подаётся сигнал на пробуждение системы - соединяем с выводом D2 или D3 Arduino (они отвечают за прерывания INT0/INT1), затем производится считывание усреднённого значения 1000 измерений веса, чтобы уйти от флуктуаций. Затем вычисляется привес путём вычитания вчерашнего значения из сегодняшнего (может принимать отрицательные значения), вычисляется состояние источника питания, и полученные три параметра (вес, привес, батарея) отправляются посредством SMS на заданный номер. В идеале - будить систему входящими SMS/звонком - если сообщение или звонок приходит с заданного номера, то звонок сбрасывать, а в ответ на зквонок/sms отправлять сообщение с текущими значениями веса и привеса, а если получено сообщение с произвольного номера, но с паролем - считать данный номер заданным по умолчанию, с удалением предыдущих номеров (на случай смены номера и т.д.).
По мере хода работ буду тут стараться отписываться. А пока буду рад рекомендациям, ибо опыта в данной области не имею совершенно.
добавление датчика температуры и давления, съём данных с 5 до 20 часов каждый час с отправкой данных в 20:00 на сервер.
модуль SD-карточки для накопления данных за день для отправки в 20:00 ( и на весь период работы пчёлок - полная статистика за лето ),
питание - АКБ от бесперебойника, на месяц хватит, дома второй на зарядке держать
работают ардуина и часы, каждый час ардуина подаёт питание на все датчики, передатчик, SD - потом всё выключает.
спать МК может, но должен переодически просыпаться чтобы посмотреть на часы
Я думаю вы зря отказываетесь от экрана, для сервисного обслуживания вещь не лишняя. По питанию есть смысл предусмотреть подзаряд солнечным модулем.
Это вообще мечта идиота, но... Я решил действовать по принципу "От простого - к сложному" ;) Плюс ещё DHT11 или DHT22 для контроля температуры и влажности ;)
Двух штук 18650 не хватит для начала? Или блока из 6 батареек АА? Хочется дёшево и сердито... Бюджет должен быть разумно минимальным :)
Самое ненасытное - GSM-модуль... Потому и думал его задействовать раз в сутки.
А просыпаться от будильника внешнего модуля часов, не глядя по сторонам - не достаточно будет?
Пугает собственное незнание. В идеале - продумать и прописать меню, через которое можно и время выставить, и номер телефона ввести, ручную калибровку запустить... Был бы опыт - не боялся бы. А так - приходится выискивать чужие куски кода, и их адаптировать под собственные нужды...
С другой стороны, экран - это плюс к бюджету, от чего хотелось бы уйти - доллар крепко подорожал, точнее - крепко обесценилась гривна, в три раза, что на фоне двукратного удорожания всего и вся плюс урезанной зарплаты заставляет очень крепко экономить на комплектующих. Собственно, это одно из объяснений, почему ноунейм GSM-модуль с непредсказуемым финалом, а не более понятный SIM900 за $30. Год назад он стоил бы 240 гривен, что ещё в какие-то ворота попадает, а сегодня он обойдётся уже в 750...
Ещё одна причина: весы будут нужны уже в апреле, а сейчас - середина февраля. Очень хотелось бы постараться запустить проект уже в этом году, пораньше...
Думал об этом. Но, во-первых, выпадает из бюджета, во-вторых - сами весы можно сделать незаметной подставкой, не привлекающей внимания, а к модулю солнечной батареи надо будет охрану нанимать...
А просыпаться от будильника внешнего модуля часов, не глядя по сторонам - не достаточно будет?
просыпаться по будильнику, делать работу, переустанавливать будильник на +1 час ( пока не ночь ) и засыпать ?
тады, да.... я ещё не работал с прерыванием от будильника :(
а дисплейчик I2C можно сделать выносным через разъём и привозить его с собой при посещении пасеки
оптопару на входе - можно будет оценить количество прилётовылетов пчёлков :))))))))
Сейчас на али глянул, lcd1602 без подсветки(она вам и без надобности) 120 российских, меньше 2 американских. По солнечной понял, я думал быстрее на улики позарятся(((.
Насчет того, что часы сумеют разбудить, не уверен. У них обмен по I2C, а она в спящем режиме тоже спит.
Насчет того, что часы сумеют разбудить, не уверен. У них обмен по I2C, а она в спящем режиме тоже спит.
bwn, на моих часиках есть нога SQ - зачем она ?
$1,65 - есть такое... Вариант, в принципе... С I2C тут есть смысл заморачиваться, или лепить напрямую и не думать?
Хм... Получилось, то, что я считал достоинством, оказалось недостатком...
Но вроде ж часы идут независимо? SQW нельзя задействовать, как я выше писал в стартовом сообщении? Информация взята из одной из тем этого форума, обсуждение сводилось к снижению энергопотребления до нуля...
Насчет того, что часы сумеют разбудить, не уверен. У них обмен по I2C, а она в спящем режиме тоже спит.
bwn, на моих часиках есть нога SQ - зачем она ?
C нее тактовые частоты идут, могу соврать (1, 4096 ,8192,32768 Гц)
спасибо :) буду посмотреть....
ардуина может просыпаться по вачдогу и смотреть на часы, график включений и инструкции - в массив
Мне кажется, ардуина не лучший выбор для устройства, которое расчитано на длительную эксплуатацию от автономного источника питания. Возможно имело бы смысл посмотреть на какую-нибудь Discovery на базе STM8L или TI-шный LaunchPad на базе MSP430. Последний интересен еще и тем, что для него существует ардуино-подобная среда разработки и какая-никакая совместимость по коду.
Единственное, что нашел в русских описаниях на 3231, имеет два будильника с возможностью отслеживать их состояние. Как и чем отслеживать ни слова. Кто с языками дружит, хелпайте по оригинальному даташиту.
Мне кажется, ардуина не лучший выбор для устройства, которое расчитано на длительную эксплуатацию от автономного источника питания. Возможно имело бы смысл посмотреть на какую-нибудь Discovery на базе STM8L или TI-шный LaunchPad на базе MSP430. Последний интересен еще и тем, что для него существует ардуино-подобная среда разработки и какая-никакая совместимость по коду.
Ну, Ардуина хотя бы имеет готовые модули и множество стандартных решений, хорошо описанных. Так что у неспециалиста есть хоть какой-то шанс с помощью форумов и помощи коллег что-то наваять, способное в итоге выполнять заданные функции.
Единственное, что нашел в русских описаниях на 3231, имеет два будильника с возможностью отслеживать их состояние. Как и чем отслеживать ни слова. Кто с языками дружит, хелпайте по оригинальному даташиту.
Ага... Будем смотреть, спасибо! :)
На 1307 это было бы проще реализовать?
Если не удастся запустить мой GSM-шилд, есть вариант попробовать подключить старую Нокию :)
Единственное, что нашел в русских описаниях на 3231, имеет два будильника с возможностью отслеживать их состояние. Как и чем отслеживать ни слова. Кто с языками дружит, хелпайте по оригинальному даташиту.
Ага... Будем смотреть, спасибо! :)
На 1307 это было бы проще реализовать?
На 1307 этот вариант точно не катит, а 3231 возможно все таки и позволяют. У них SQ звучит как INT/SQ и похоже этот INT можно запрограммировать. Говорили мне в школе - учи английский(((
Мне кажется, ардуина не лучший выбор для устройства, которое расчитано на длительную эксплуатацию от автономного источника питания. Возможно имело бы смысл посмотреть на какую-нибудь Discovery на базе STM8L или TI-шный LaunchPad на базе MSP430. Последний интересен еще и тем, что для него существует ардуино-подобная среда разработки и какая-никакая совместимость по коду.
Ну, Ардуина хотя бы имеет готовые модули и множество стандартных решений, хорошо описанных. Так что у неспециалиста есть хоть какой-то шанс с помощью форумов и помощи коллег что-то наваять, способное в итоге выполнять заданные функции.
Если честно, то для вашей задачи, проще отладить на дуине, а потом развести платку под процессор с минимальной обвязкой и к ней лепить модули. По энергопотреблению выиграете очень сильно. Все что налеплено на плате для работы фактически не нужно, а питание потребляет. Здесь на форуме пара тем про это было.
Я английским в совершенстве владел два десятилетия назад, но отсутствие практики свело знания к безпроблемному чтению, говорить уже так свободно, как по-русски и по-украински не получится, наверное...
Мне бы времени на прочтение всего этого ;)
Пошёл искать даташит и вникать :)
По поводу макетирования с последуюей перепайкой с нуля - согласен. Но для начала, чтобы минимизировать затраты в том числе времени - выбраны готовые модули и готовая плата :)
Я английским в совершенстве владел два десятилетия назад, но отсутствие практики свело знания к безпроблемному чтению, говорить уже так свободно, как по-русски и по-украински не получится, наверное...
Мне бы времени на прочтение всего этого ;)
Пошёл искать даташит и вникать :)
По поводу макетирования с последуюей перепайкой с нуля - согласен. Но для начала, чтобы минимизировать затраты в том числе времени - выбраны готовые модули и готовая плата :)
Ну тогда для начала, с модулей все индикаторы питания смахнуть. А к готовой дуине для надежности все равно паятся желательно.
Думаю отладить всё на том, что есть, а потом заказать отдельно про мини и пересобрать уже более основательно. Ну, и компактно. Естественно, однозначно пайка, это даже не обсуждается :)
Только что нарыл скетч для установки часов и будильника - мелочь, а приятно :)
Не надо никаких мини, ATMEGA328 + кварц с конденсаторами (вопрос нужны ли) и питание (это лучше на ветках форума по батарейному питанию посмотреть). На потреблении в спящем режиме выиграете в десятки раз.
Думаю отладить всё на том, что есть, а потом заказать отдельно про мини и пересобрать уже более основательно. Ну, и компактно. Естественно, однозначно пайка, это даже не обсуждается :)
Только что нарыл скетч для установки часов и будильника - мелочь, а приятно :)
я тоже рядом ходил, но ни там, ни там нет про будильники полностью :(
http://knodit.blogspot.ru/2014/05/arduino-ds3231-i2c-wire.html
вот здесь нашёл http://knodit.blogspot.ru/2014/05/aduino-rtc-ds3231-sqw.html
всем привет! Кто мне поможет?! мне нужно устройство на тензодатчиках для контроля давления (веса) "онлайн" с отправкой данныйх по блютус на телефон :) Весма компактное и автономное (с аккамуляторной батареей). Есть небольшие средства, которые готов заплатить за составление устройства (компановка, что купить где купить и т.п) . Есть опыт с ардуино и электроникой, но нет времени. почта trylife@bk.ru
вам в ветку - ищу исполнителя :)
Вот я и столкнулся с нехваткой знаний ;)
Пилю помаленьку в свобдное время. Осваиваюсь. Время на DS3231 выставил, библиотеку брал вот тут - готовый скетч из образца позволил выставить время и посмотреть его на мониторе порта :) Для меня - достижение ;)
Есть в библиотеке и объяснение, как выставить будильник на заданное время, чтобы срабатывал каждый день, в любой день недели любого месяца любого года :) Не могу понять, как установить будильник :( Для часов есть установка часов, минут, секунд и т.п. А для будильника вижу только turnOnAlarm и всё :(
Разобрался, как пользоваться аппаратными будильниками. Время срабатывания будильников выставляется через следующие адреса:
Alarm 1 - 0x07,0x08,0x09,0x0A
Alarm 2 - 0x0B,0x0C,0x0D
(см. таблицу 1 на стр.11 даташита)
http://knodit.blogspot.ru/2014/05/aduino-rtc-ds3231-sqw.html
Спасибо, я это видел. К стыду своему, вынужден признать: это для меня пока китайская грамота.
Сейчас курю вот этот мануал: https://github.com/JChristensen/DS3232RTC
Тема притихла хотя актуальна и по пчёлкам и по DS3231+arduino.
Сам тоже электронщик. Ардуинщик начинающий. Разобрался с управлением будильниками в DS3231 с формированием сигнала прерывания на выходе INT (для выведения ардуино из сна по прерыванию). Скеч составной пробный из кусков, но пробовал на PROTEUSE 8.1 всё работает и на выходе INT загорается светодиод(пока). Ардуино плат нет, жду по почте. Скеч с коментариями ниже, если что не так, пишу в первый раз на форуме.
01
#include <DS3231.h>
02
#include <Wire.h>
03
04
DS3231 Clock;
05
bool
Century=
false
;
06
bool
h12;
07
bool
PM;
08
byte
year, month, date, DoW, hour, minute, second;
09
#include <LiquidCrystal.h>
10
/*Выводы дисплея*/
11
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Выводы дисплея под LCD шилд можете прописать свои
12
/*Инициализация*/
13
14
void
setup
() {
15
lcd.begin(16, 2);
//Дисплей 16Х2
16
lcd.setCursor(3, 0);
//Установить 3 символ 0 строки
17
lcd.print(
"ARDUINO-RTC"
);
// выводим надпись завтавки ARDUINO-RTC
18
lcd.setCursor(5, 1);
//Установить 5 символ 1 строки
19
lcd.print(
"DS-3231"
);
// выводим надпись завтавки DS-1307
20
delay(300);
// удерживаем заставку 1 секунд
21
lcd.clear();
// Очищаем дисплей
22
23
// Start the I2C interface
24
Wire.begin();
25
26
Clock.setSecond(50);
//Set the second
27
Clock.setMinute(59);
//Set the minute
28
Clock.setHour(9);
//Set the hour
29
Clock.setDoW(4);
//Set the day of the week
30
Clock.setDate(13);
//Set the date of the month
31
Clock.setMonth(3);
//Set the month of the year
32
Clock.setYear(15);
//Set the year (Last two digits of the year)
33
Clock.setA1Time(5,9,59,54,0,1,0,0);
/* здесь выставляем первый будильник функция выставления первого будильника НИЖЕ
34
35
ФОРМАТ setA1Time(byte A1Day, byte A1Hour, byte A1Minute, byte A1Second, byte AlarmBits, bool A1Dy, bool A1h12, bool A1PM);
36
ФОРМАТ setA1Time(день,час,минута,секунда,AlarmBits из ТАБЛ 2 стр.12 DS3231.pdf(от него зависит с какой периодичностью будет срабатывать
37
будильник(каждый час,каждую минуту,каждую секунду), A1Dy 0-будильник по дате,A1Dy 1-будильник по дню недели(у меня по дню),A1h12-0(24 часа),
38
A1PM соответственно 0
39
СМОТРИ "<a href="https://github.com/simonkuang/DS3231/blob/master/DS3231.hvoid" rel="nofollow">https://github.com/simonkuang/DS3231/blob/master/DS3231.hvoid</a>"
40
РАЗДЕЛ Alarm functions + СМОТРИ таблицу стр.11 и 12 в документе <a href="http://datasheets.maximintegrated.com/en/ds/DS3231.pdf" rel="nofollow">http://datasheets.maximintegrated.com/en/ds/DS3231.pdf</a>"
41
(там же про будильники 12 стр. ALARMS)*/
42
43
Clock.turnOnAlarm(1);
/*насколько понял по срабатыванию 1 будильника выводит сигнал прерывания на выводе INT DS3231*/
44
}
45
46
void
loop
() {
47
int
second,minute,hour,date,month,year,temperature,dow;
48
49
second=Clock.getSecond();
50
minute=Clock.getMinute();
51
hour=Clock.getHour(h12, PM);
52
date=Clock.getDate();
53
month=Clock.getMonth(Century);
54
year=Clock.getYear();
55
temperature=Clock.getTemperature();
56
dow=Clock.getDoW();
57
58
lcd.setCursor(0, 0);
59
lcd.print(hour);
//read the hour and also update all the values by pushing in true
60
lcd.print(
":"
);
61
lcd.print(minute);
//read minutes without update (false)
62
lcd.print(
":"
);
63
lcd.print(second);
//read seconds
64
lcd.print(
" "
);
// some space for a more happy life
65
lcd.print(
"t="
);
66
lcd.print(temperature);
67
lcd.setCursor(0, 1);
68
lcd.print(date);
//read date
69
lcd.print(
"/"
);
70
lcd.print(month);
//read month
71
lcd.print(
"/"
);
72
lcd.print(year);
//read year
73
lcd.print(
" Day-"
);
74
lcd.print(dow);
75
76
}
Время будильника выставил на 4 секунды позже выставления часов (54 и 50 соответственно), чтобы долго не ждать в PROTEUSE(медленно работает).
Когда код вставляете, там есть галочка - свернуть. Покошернее будет.
Доберусь до офиса - гляну :)
Китайцы удивили - прислали схему включения GSM-модуля...
В скече который выложил выше день недели установлен 4, а будильник настроен на 5 (выложил отладочный скеч,чтобы проверить ,что будильник срабатывать не будет). Чтобы будильник сработал приведите всё в соответствие.
Clock.setDoW(5); //Set the day of the week
Случайные ошибки в своих и чужих скечах заставляют поработать мозгами.
Получилось что-нибудь с этим модулем (m590)?
Пока не было времени заняться. Так что пока что приведу только то, что по Neoway M590 прислали китайцы, может кому-то будет полезно:
Весьма важная информация.... Как общаться с модулем.
А контакты есть китайцев? Я бы их сам помучил
Контакт есть :) Но там девочка, которая сама спрашивала у меня, почему такой модуль у их клиента не завёлся, а перегружается каждые 10-15 секунд и не работает с операторами (Голландия, кажись), как не работал и SIM900A. Ответил ей, что ещё не запускал, а проблема, скорее всего, кроется в двухдиапазонности данного модуля, в то время как в Европе используется 4 диапазона. По этой же причине столь популярный Nokia 5110 сегодня практически бесполезен, ибо не работает на современных частотах. Как-то так.
Я написал на их support. Пока тишина
Дык, часовые пояса-то разные, ночь у них сейчас, поди ;)
Мануал от модуля http://wless.ru/files/GSM/Neoway/Neoway_M660_Module_Hardware_User_Guide_V3_4.pdf
Схема подключения модуля
Взаимодействие_с_gsm_gprs_shield_для_работы_с_sms_и_голосовыми_вызовами
http://wiki.amperka.ru/%D0%B1%D0%B5%D1%81%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%BD%D0%B0%D1%8F-%D1%81%D0%B2%D1%8F%D0%B7%D1%8C:gprs-shield
по ссылке примеры кода для ардуинки, по иформации модуль полностью совместим с SIM900 по АТ командам.
Был ли модуль опробован?
Интересует именно стабильность.
В примере sim900A. О стабильности это ничего не скажет.
Кстати support так ничего и не написал. Весьма подозрительная контора...
Доброго дня.
И все-таки. Получилось подключить и "заработать" GSM?
Очень волнующий меня вопрос, самому очень нужно смс отправлять/получать, а это самый дешовый вариант. Вот хотелось бы узнать рабочий ли он.
Жду модуль из алиэкспресса, как только получу, отпишусь.
Думаю проблем не должно быть. На зарубежных форумах мелькало что, всё работает.
Вот ещё один проэкт с использованием этого модуля:
http://m.geektimes.ru/post/243033/
Там М660, а тут М590. Я думаю разница может быть радикальна.
Служба техподдержки, в лице менеджера по продажам Дорис Жу, почему-то также предлагает М660, так и не предоставив информацию по М590.
Есть ощущение, что основные грабли будут со взвешиванием улья.