Помощь · Поиск · Пользователи · Календарь · Магазин для пчеловодов
Перейти к полной версии: Под контролем "GSM" кочевая пасека, омшайник
Объединенный пчеловодческий форум > Всё, что рядом с пчеловодством > Идеи пользователей форума в жизнь > Идеи в разработке
vint-cip
Как и обещал в соседней теме.
контроль с помощью GSM веса,и температуры омшайника, или кочевой пасеки, точка.

собрал по-быстрому на том что было под рукой. занимаюсь с Весами давно только в Личном пользовании. Тензодатчики китайские с Aliexpress перед эксплуатацией надо подготовить установить их на ровную поверхность выставленную по уровню и нагрузить большим весом 70-80 кг и так чтоб они простояли недели три после этого не перестают плыть показания. дальше работают отлично. и в дальнейшем их надо эксплуатировать только на ровной поверхности выставлены по уровню из-за перекоса нагрузка возрастает на Отдельно взятый датчик у неё деформируется металл и он потом неправильно работает Это из личного опыта при больших нагрузках свыше 100 кг.В скетчи был применён небольшой математический расчёт средние показания за 100 взвешиваний. чтобы исключить другие факторы. такие как порывы ветра. и.т.п. GSM модуль самый дешёвый все его хаят со всех сторон. Он простой но он работает отлично. в будущем можно будет поставить какой-нибудь дорогойGSM модуль с модемом. Прилепить его к хостингу и смотреть показания через интернет. этот вариант! Если иметь много тачков. Я так думаю остановлюсь на варианте с флешкой Пусть все показания укладываются на флешку в конце сезона выгрузить в компьютер и загрузить куда-нибудь например в тот же Excel чтобы можно было спроектировать графики привес в ульях, температуру, Ну и дата. на следующий год быть во всеоружии. Быть готовым к взятку.
Прикрепленное изображение: Открыть в новом окне Прикрепленное изображение: Открыть в новом окне Прикрепленное изображение: Открыть в новом окне
vint-cip
https://youtu.be/f7UezmEiRLk

скетч очень простой и очень Понятный

#include <OneWire.h> // Библиотека шины датчиков температуры
#include <DallasTemperature.h> // Библиотека Датчиков
#include <SoftwareSerial.h> //Софт сериал
SoftwareSerial mySerial(9, 8); // Софт сериал RX, TX
#define ONE_WIRE_BUS 11 // Пин подключения датчика DS18B20
#define term_power 12 // Указываем пин подключения питания датчика температуры
OneWire oneWire(ONE_WIRE_BUS); // с шиной данных
DallasTemperature sensors(&oneWire); // Инициализируем датчики
String val = ""; //переменная для чтения смс
#define MASTER "+79876543210" //укажите телефон хозяина
int ch = 0; //хз прост переменная
int t1;
unsigned long time_t;
#include "HX711.h"
HX711 scale(A1, A0);
float calibration_factor = -0.735; // калибровка! у каждых Тенза датчиков свой калибровочный коэффициент
float units; //переменные веса
float ounces; //переменные веса
float ves; //переменные веса
void setup(void){ //Предустановки
pinMode(11, INPUT_PULLUP);
Serial.begin(9600);
analogReference(INTERNAL);
scale.set_scale();
scale.tare(); //Сбрасываем на 0
scale.set_scale(calibration_factor); //Применяем калибровку
sensors.begin(); //Датчики
pinMode(term_power, OUTPUT); // Определяем пин подключения питания датчика температуры
Serial.println("Vint-cip@mail.ru");
mySerial.begin(9600); //подключаем порт модема (при других скоростях не отвечает)
delay(500);
mySerial.println("AT+GMM"); //вывести в терминал иноформацию о модеме
delay(500);
mySerial.println("AT+CSQ"); //вывести в терминал уровень сигнала (если 99, то связи нет)
delay(500);
mySerial.println("AT+CLIP=1"); //включаем АОН
delay(500);
mySerial.println("AT+CMGF=1"); //режим кодировки СМС - обычный (для англ.)
delay(500);
mySerial.println("AT+CSCS=\"GSM\""); //режим кодировки текста
delay(500);
mySerial.println("AT+CNMI=2,2");
delay(500);
}



void loop(void){ //основная программа
for(int i = 0;i < 100; i ++) units =+ scale.get_units(), 100; // усредняем показания считав 10 раз
units / 100; // делим на 10

ounces = units * 0.035274; // переводим унции в граммы
ves = ounces ; // переводим унции в граммы
ves = round(ves)/ 1000; // Запоминаем округленный текущий вес (для сравнения)


float Vbat = (analogRead(A6) * 1.1) / 1024.0;// образцовое напряжение ардуинки
float Vin = Vbat / (11.2 / (110.0 + 11.2)); // R2/(R1+R2)
sensors.requestTemperatures(); //читаем температуру
t1=sensors.getTempCByIndex(0); // это калибровка согласно показаниям датчика в равных условиях
Serial.print(t1); //печать в порт для отладки
Serial.print((char)176); //печать в порт для отладки
Serial.println();//печать в порт для отладки

Serial.print(ves );//печать в порт для отладки
Serial.print(" Kg");//печать в порт для отладки
Serial.println();//печать в порт для отладки
Serial.print(Vin );//печать в порт для отладки
Serial.print(" Volt");//печать в порт для отладки

Serial.println();
if (mySerial.available()) { //есть данные от GSM модуля
delay(200); //выждем, чтобы строка успела попасть в порт целиком раньше чем будет считана
while (mySerial.available()) { //сохраняем входную строку в переменную val
ch = mySerial.read();
val += char(ch);
delay(10);
}
Serial.println(val); // дублируем сообщение в терминал
//----------------------- определение факта приема СМС и сравнение номера(ов) с заданным(и)
if (val.indexOf("+CMT") > -1) { //если обнаружен СМС (для определения звонка вместо "+CMT" вписать "RING", трубку он не берет, но реагировать на факт звонка можно)
if (val.indexOf("79876543210") > -1) { //если номер sms наш. Укажите свой номер без "+"
Serial.println("--- SMS DETECTED ---"); //Просто подтверждаем
if (val.indexOf("Inform") > -1) { // если обнаружено кодовое слово Info

Serial.println("send you ok"); // сообщаем об этом в терминал (если нужно)
digitalWrite(term_power, HIGH); // Включаем питание датчика температуры
if (millis() - time_t > 5000) {
time_t = millis();
}

delay(200);
//собираем SMS
String smska = "Temperature:";
smska += " "; // Пробел для более удобной читаемости
smska += t1; // переменная температуры 1
smska += " C."; // Пробел для более удобной читаемости
smska += " "; // Пробел для более удобной читаемости
smska += " Ves Ulika "; // Пробел для более удобной читаемости
// smska += " "; // Пробел для более удобной читаемости
smska += ves; // переменная "Вес"
smska += " "; // Пробел для более удобной читаемости
smska += "Kg. "; // Пробел для более удобной читаемости
smska += " "; // Пробел для более удобной читаемости
smska += "battery ";
smska += Vin; // переменная "вольт"
//smska += " "; // Пробел для более удобной читаемости
smska += " Volt."; // Пробел для более удобной читаемости
smska += " "; // Пробел для более удобной читаемости


delay(200);
// digitalWrite(term_power, LOW); // Отключаем питание датчика температуры

Serial.println(smska);
sms(smska, String(MASTER)); //отправляем СМС на номер +7xxxxxxxxxx // отвечаем смской
} else { // если другое слово или вообще пустое сообщение
Serial.println("no send you"); //неверная команда
sms (String("No comand"), String(MASTER)); //запускаем процесс отправки смс с отчетом о неверной температуре
}
} else {
Serial.println("NO MASTER SMS"); //Если нет посылаем нафиг
sms (String("Warning!!! Hacking attempt"), String(MASTER));// Отсылаем уведомление хозяину о попытке взлома
}


val = "";
}
}
}

void sms(String text, String phone) //процедура отправки СМС
{
Serial.println("SMS send started");
mySerial.println("AT+CMGS=\"" + phone + "\"");
delay(500);
mySerial.print(text);
delay(500);
mySerial.print((char)26);
delay(500);
Serial.println("SMS send complete");
delay(2000);
delay(5000);

mySerial.println("AT+CMGD=4"); //стираем память смс
delay(100);
digitalWrite(term_power, LOW); // Отключаем питание датчика температуры
delay(900);

}
Pablik
Если питаетесь от аккумулятора, то можно сэкономить и использовать для стабилизации 7805 (до 1А держит). А так, здорово, спасибо, что поделились. hi.gif
А Neoway M590 лучше чем sim800l? Я в свое время брал последний и под него много библиотек и он чуть-чуть дешевле smile.gif
И еще вопрос - в чем рисовали принципиальную?
vint-cip
sim800l гораздо лучше чем 590 . А 7805 . так называемый стабилизатор, в простонародье кренка держит 1 ампер. а GSM модулm в пике при передаче доходит до 2 ампер. 7805 можно было бы использовать для питания Arduino. но на Arduino есть свой встроенный на платье 7805. GSM модуль нужно питание поменьше 3,7 вольта они были разработаны для сотовых телефонов и при 5в работают с глюками Это из личного опыта. поэтому я и рекомендовал поставить два китайских DC стабилизатора. они всё-таки понадежнее 7805

Цитата(Pablik @ Пятница, 02 Февраля 2018, 22:01)
в чем рисовали принципиальную?
*


https://easyeda.com бесплатная платформа очень давно пользуюсь
Pablik
Цитата(vint-cip @ Пятница, 02 Февраля 2018, 22:58)
в пике при передаче доходит до 2 ампер
*
Действительно. Нашел хорошую статью по модулю.
Цитата(vint-cip @ Пятница, 02 Февраля 2018, 22:58)
GSM модуль нужно питание поменьше 3,7 вольта они были разработаны для сотовых телефонов и при 5в работают с глюками
*
Ну да, там логические уровни другие. Вроде через буфер можно (например SN74HC244N). Но в статье выше вариант мне нравится больше, он экономичней smile.gif
Цитата(vint-cip @ Пятница, 02 Февраля 2018, 22:58)
поэтому я и рекомендовал поставить два китайских DC стабилизатора. они всё-таки понадежнее 7805
*
Для тока? hmm.gif Я вас понял, спасибо. hi.gif
Цитата(vint-cip @ Пятница, 02 Февраля 2018, 22:58)
https://easyeda.com бесплатная платформа очень давно пользуюсь
*
спасибо большое. Искал подобное, на альтернативу hi.gif
Bee174
Я тут накидал схемку с DC-DC, на верно нужно убрать конденсатор (обвёл кружком) подскажите пожалуста
Цитата
https://easyeda.com бесплатная платформа очень давно пользуюсь

Прикрепленное изображение: Открыть в новом окне
profinrus
не надо убирать,а вместо 100 поставить как минимум 1000 мкф,в параллель ещё не плохо 0.1 мкф поставить.
Bee174
Цитата(profinrus @ Суббота, 05 Января 2019, 14:48)
не надо убирать,а вместо 100 поставить как минимум 1000 мкф,в параллель ещё не плохо 0.1 мкф поставить.
*

0.1 мкф что рядом с ним?
Bee174
Так?




Я бы еще так сделал питание, потому что мне кажется не будет хватать питание Ардуинке
Прикрепленное изображение: Открыть в новом окне
profinrus
Похоже нужен ещё источник 5в,датчик температуры работает точно от 5в
Bee174
Если как на фото подключить, я думаю что дополнительного источника не нужно будет
vint-cip
Да Вы всё правильно нарисовали вариант такой тоже можно. Как я уже говорил на канале ютуб надо два dc-dc преобразователя один 3.7 вольта другой на 5 Вольт. на Arduino стоит свой преобразователь на 7805 в SMD корпусе все прекрасно знают что китайские LМ 2596 dc-dc преобразователи являются импульсными. а 7805 это так называемый умный делитель резистор во-первых он будет на самой ардуинo нагреваться из-за того что очень большое падение напряжения с 12-13 вольт на 5 Вольт во-вторых то потребление Arduino вырастет в разы.

dc-dc преобразователь надежно чем lm7805. проверено опытным путем. С dc-dc преобразоватем особо не заморачиваюсь могу даже заряжать аккумулятор при включенных весах
Bee174
Как я понимаю лучше тогда поставить два dc-dc и не заморачиваться
vint-cip
Да! я тоже пришёл к такому мнению после того как помучился немножко
Bee174
Так будет правильно? Я в схемах плохо разбираюсь, подскажите пожалуйста
Прикрепленное изображение: Открыть в новом окне
vint-cip
не 9 вольт а 5 вольт сделай. и подключи ко всем ножкам VCC потому что там сами датчики весов питаются 5 вольтами плюс датчик температуры питается 5 вольтами если ты всё это загрузишь на ардуинку то ничего хорошего не будет
Bee174
Так? и мне посоветовали поставить конденсаторы, правильно я их разместил ( обвёл кружком)
Прикрепленное изображение: Открыть в новом окне
profinrus
красотища! smile.gif
vint-cip
конечно правильно.! я не устанавливал конденсатор так как в dc-dc преобразователе свои стоят фильтрующие конденсаторы. но так как dc-dc преобразователь с импульсной стабилизацией напряжения и у них повышенная пульсация поэтому конденсаторы лишними не будут.
Bee174
На второй dc-dc наветно ноже нужно поставить хотя бы один конденсатор на 1000 мкф

Так.
Прикрепленное изображение: Открыть в новом окне
profinrus
там можно только 0.1мкф обойтись,потребление мизер smile.gif
Bee174
Спасибо за помощь bye.gif
vint-cip
цифровой техники по цепи питания ставят как 0, 1 микрофарад от высокочастотных пульсаций. так и электролиты большой ёмкостью от низкочастотный пульсации. ещё пульсации есть СВЧ там либо дросселя ставят либо ферритовые кольца. Так что поставь 0 ,1 микрофарад, и 1000 мкФ. если они есть? поставь и по 5 вольтам и по 3,7В

контроллер Arduino уже прошивку залил?
Bee174
Прошивку еще не заливал. Так нормально будет
Прикрепленное изображение: Открыть в новом окне
vint-cip
отлично ! печатную плату разводил ? или монтажом Планируешь?
profinrus
vint-cip
не пытался усыплять мегу?
питать интереснее от одного элемента 3.7в
Bee174
Цитата(vint-cip @ Воскресенье, 06 Января 2019, 13:10)
отлично ! печатную плату разводил ? или монтажом Планируешь?
*


Как раз развожу, с монтажом не хочется связыватся

Цитата(profinrus @ Воскресенье, 06 Января 2019, 13:16)
не пытался усыплять мегу?
питать интереснее от одного элемента 3.7в
*


Я не пытался

Плату разведу, фотки выложу на обозрение оцените как получилось. Да я еще добавил выход I2C на всякий случай вдруг экран захочется вывести.

А может кто нибудь помочь в скетче прописать возможность подключения дисплея 1602 по I2C шине, а то для меня это тёмный лес? Заранее благодарю всех за помощь.
Bee174
Вот что получилось.
Прикрепленное изображение: Открыть в новом окне
Прикрепленное изображение: Открыть в новом окне
petrycho
Цитата(Bee174 @ Воскресенье, 06 Января 2019, 14:05)
Вот что получилось.
*


Я не спец по GSM ... Но при такой разводке могут быть непредсказуемые глюки.
Резисторы применить лучше SMD (Корпусные тоже можно) и поставить их не с боку платы, а на пути сигналов.
Например R3 поставить возле DS1820. R1 поставить возле U1...
Сх простая её надо попытаться развести в одном слое (Можно оставить пару перемычек), а верх залить общим...
+ Надо более оптимально расположить все элементы...
Bee174
Цитата(petrycho @ Воскресенье, 06 Января 2019, 19:10)
Я не спец по GSM ... Но при такой разводке могут быть непредсказуемые глюки.
Резисторы применить лучше SMD (Корпусные тоже можно) и поставить их не с боку платы, а на пути сигналов.
Например R3 поставить возле DS1820. R1 поставить возле U1...
Сх простая её надо попытаться развести в одном слое (Можно оставить пару перемычек), а верх залить общим...
+ Надо более оптимально расположить все элементы...
*


Вот с SMD. Но разводка по одной стороне очень геморройно, лучше плату заказать у Китайцев.
Прикрепленное изображение: Открыть в новом окне
Прикрепленное изображение: Открыть в новом окне
vint-cip
Цитата(profinrus @ Воскресенье, 06 Января 2019, 11:16)
vint-cip
не пытался усыплять мегу?
питать интереснее от одного элемента 3.7в
*


перевести всё это на 3.7 Вольт надо атмега снять с платформы Arduino. не знаю? хотел сделать. чтобы был народным вариант. С платформы снять ни каждый захочет заморачиваться. усыплять можно! прошивку надо тогда дорабатывать все показатели скидывать в энергонезависимую память. меня так устраивает. я сделал то по-быстрому, И теперь у меня работает, и у двоих друзей. : dry.gif beer:

Цитата(Bee174 @ Воскресенье, 06 Января 2019, 17:39)
Вот с SMD. Но разводка по одной стороне очень геморройно, лучше плату заказать у Китайцев.
*


Я думаю плата даже очень неплохо! я сделал на монтажных платах. на тот момент у китайцев было от 10 штук. и доставка была великовато. А по поводу SMD можешь не заморачиваться работает и на обычных сопротивлениях там сопротивления почти все стоят на датчики. Arduino сперва собирает данные потом формируют и SMS потом только включает передатчик даже если наводки будут. но! на тот момент ни один датчика прошиваться не будет

Если уж ты так серьезно подошел к этому делу может и файлы со схемами и герберами выложил всё-таки это большая работа многие с удовольствием бы наверное всё это повторили. если это некоммерческий проект? ohyeah.gif ohyeah.gif
Bee174
Да прошивку нужно доработать, добавить сон чтобы сократить энергопотребление. Если Каму надо сброшу GERBER для заказа плат в Китае для самостоятельной сборки. Для себя я другую схему накидал с расширенным функционалом.
Прикрепленное изображение: Открыть в новом окне
vint-cip
Цитата(Bee174 @ Воскресенье, 06 Января 2019, 14:05)
Вот что получилось.

Эскизы прикрепленных изображений

*


ширину дорожек надо бы сделать пошире

в Layout при заказах можно увеличить особенно цепи питания GSM модули
Bee174
Цитата(vint-cip @ Воскресенье, 06 Января 2019, 21:59)
ширину дорожек надо бы сделать пошире

в Layout при заказах можно увеличить особенно цепи питания GSM модули
*


https://easyeda.com/dbulavin47/6420
Если кому нужно сами отредактируете дорожки и что захотите изменить.
Bee174
Это мой вариант весов с расширенным функционалом!
Прикрепленное изображение: Открыть в новом окне
profinrus
А где сам функционал в скетче?
Bee174
Цитата(profinrus @ Вторник, 08 Января 2019, 10:46)
А где сам функционал в скетче?
*


Скетч пока в процессе доработки знакомый помог написать. А так функции: прием звонков и смс, отчёт раз в сутки, режим резкого изменения веса....

Скетч я выкладывать не буду.
profinrus
Цитата(Bee174 @ Вторник, 08 Января 2019, 9:00)
Скетч я выкладывать не буду.
*



Это правильно.
Всё расскажу,похвалюсь,пусть завидуют biggrin.gif

Цитата(Bee174 @ Воскресенье, 06 Января 2019, 11:42)
А может кто нибудь помочь в скетче прописать возможность подключения дисплея 1602 по I2C шине, а то для меня это тёмный лес?
*



как быстро меняется человек,то помощи просит,то хренушки всем crazy.gif biggrin.gif acute.gif
Bee174
Цитата(profinrus @ Вторник, 08 Января 2019, 11:21)
как быстро меняется человек,то помощи просит,то хренушки всем    
*


Я просил дописать в существующем скетче, а не создать новый, это разные вещи. И плату развел для этого для тех кто захочет себе собрать, чтобы люди не ломали голову и не тратили время на это. Этот проект не мой же для которого это все делалась.
А эта плата лично для меня и мои потребностей. Так что извините если чем-то кого-то обидел.
profinrus
Цитата(Bee174 @ Вторник, 08 Января 2019, 9:31)
Так что извините если чем-то кого-то обидел.
*



да всё нормально,обращайтесь ещё biggrin.gif bye.gif
Bee174
Цитата(profinrus @ Вторник, 08 Января 2019, 11:33)
да всё нормально,обращайтесь ещё  
*


biggrin.gif Я правда в скетчах ноль. А знакомого давно просил написать для меня но как всегда некогда бывает людям, дал мне то что накидал дальше сам говорит разберайся.
vint-cip
Цитата(Bee174 @ Вторник, 08 Января 2019, 7:51)
Это мой вариант весов с расширенным функционалом!

*


Кто в качестве GSM ??
Bee174
Цитата(vint-cip @ Вторник, 08 Января 2019, 22:49)
Кто в качестве GSM ??
*


SIM900

А то лежит без дела уже два года, хоть в дело пущу
vint-cip
Цитата(Bee174 @ Вторник, 08 Января 2019, 20:55)
SIM900

А то лежит без дела уже два года, хоть в дело пущу
*


Вещь.!! у него хорошие возможности. и каналы аудио есть давно хотел с ним поработать но дорогая штука где-то наверное в районе косаря стоимость? да ?
Bee174
Цитата(vint-cip @ Вторник, 08 Января 2019, 23:03)
Вещь.!! у него хорошие возможности. и каналы аудио есть давно хотел с ним поработать но дорогая штука где-то наверное в районе косаря стоимость? да ?
*


Да вещь хорошая. Но цена конечно кусается очень сильно. Вот ссылка https://ru.aliexpress.com/item/SIM900-MINI-....3a9933edHxDq1q. Именно SIM900 без буквы А. С буквой А в наших сетях не работают. Я купил с А и мучился не работает в нашей сети, пытался перепрошить и ни чего не получилось. Теперь валяется без дела.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы пожалуйста нажмите сюда.
Пчеловодство © 2001-2019 Пчеловод.ИНФО