PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   DIY i Tinkering (https://forum.pcekspert.com/forumdisplay.php?f=74)
-   -   Izrada SMS vage (https://forum.pcekspert.com/showthread.php?t=240218)

branuschi 11.11.2012. 11:37

Izrada SMS vage
 
Poštovanje evo upušatam se u jedan projekt (ako s bude imalo dovoljno sredstva) pa ako ima tko sličnog iskusta i znanja o dotičnim stavirma svaka sugstija je dobrodošla ,neime trebao bih izradit jednu SMS vagu koja bi recimo dva puta dnevno vršila mjerenje imeni slala podatke u obliku tekst poruke na moj mobitel!

Sad imam neku viziju kako bi to trebalo izgledatiti ali kako to sve pospjiti i uštimati da radi napravio bih konstrukciju između koje bih postavio mjernu ćeliju (http://hr.mt.com/hr/hr/home/products..._aluminum.html ) i to bi sve trablo onda spoajit s nečim ovakvim ( http://www.ebay.com/itm/GSM-SMS-TC35...item3f193b1cd5 ) što bi podatke prikupljalo u određanom trenutku i slalo ih meni !?

nadam se da sam bio dovoljno jasan ako je netko nešto slično radio i ima prjedloge bio bih jako zahvalan da me malo bolje uputi!

Hvala!

Swarm dude 11.11.2012. 11:55

Trebaš akvizicijsku karticu, ili sam napraviti A/D pretvornik (pod pretpostavkom da mjerna ćelija daje na izlazu analogan signal, recimo napona od 0 do 5 V ili struju od 4 do 20 mA ovisno o masi tereta, dakle neki industrijski standard).
Za totalnu DIY alternativu, postoji shema i source za LPT A/D pretvornik u knjizi Parallel Port Complete. Doduše, to je staro rješenje i s malom rezolucijom, ali čini se jednostavno, jeftino i pouzdano ako si voljan primiti se lemilice.
Što se tiče gotovih rješenja, imaš recimo National Instruments uređaje.
A i Velleman ima svoje rješenje, koje je jeftinije od NI, ali je polu-DIY. Kako se Vellemanov kit programira imaš ovdje.

branuschi 11.11.2012. 12:12

Neznam još kakve podatke daje mjerna ćelija poslao sam upit proizvođaču pa ćemo vidit kad mi odgovore, znači u biti A/D pretvornik mi je posredink između mjerne ćelije i GSM modula?

Swarm dude 11.11.2012. 12:20

Da, tj. on je posrednik u lancu mjerna ćelija i PC da budemo skroz točni. Dakle: mjerna ćelija -> DAC, odnosno DAQ -> PC -> GSM modul

branuschi 11.11.2012. 12:26

Kakav bi PC preporučio nešto tipa Raspberrypi (http://www.raspberrypi.org/faqs ) u ovo bi slučaju bar mislim mogao i izbacit GSM modul a salanje podataka izvršavati pomoću nekog USB internet sticka ili sam u krivu?

Swarm dude 11.11.2012. 12:33

Ne Raspberry, trebaš baš PC na kojem možeš vrtiti barem Windowse XP zbog drivera za akvizicijske kartice. Neka Pentium III, pa možda i Pentium II mašina bila bi dovoljna, samo da imaš dovoljno RAM-a (384 MB i više po mogućnosti). Jeftino ju nabaviš i ne troši puno energije. Ubiješ sve što ti ne treba na Windowsima i neka se samo vrti program koji prikuplja podatke s akvizicijske kartice i šalje ih dalje. Obzirom da ne trebaš neke lude frekvencije uzorkovanja, to bi radilo OK. Možda bi se National Instrumentsovi driveri pobunili da se radi o sporom USB-u, ali lako frkneš unutra USB 2.0 PCI karticu recimo.
Da, mogao bi slati podatke preko Interneta, što bi bilo IMHO elegantnije i jednostavnije :)

branuschi 11.11.2012. 13:40

Mislim da si me krivo razumio to bi trebal bit nešto ovako http://www.youtube.com/watch?v=-5zoxrNy6ZQ znaći mora mit mbilo i neovisno o bilo čem osim o GSM signalu i napunjenosti baterije!

SilentException 12.11.2012. 00:52

A do koliko kila bi to trebalo mjeriti i s kakvom tocnoscu?

Dosta mjernih uredaja ima jako mali izlazni signal i mogu se spojiti na Arduino direktno ali je potrebno malo pojacati signal, znaci potreban je manji el. sklop prije spajanja na input. Mozes cak uzeti i obicnu digitalnu kupaonsku vagu i uz malo truda spojit ju na Arduino.

Na Arduino onda ide onaj GSM modul koji si linkao sa eBaya. Ako nisi nikad prije radio sa Arduinom, mozda bi bolji izbor i bio Raspberry Pi (isto ima IO pinove). Uglavnom ceka te dosta zafrkancije sa elektronikom a onda jos nesto posla sa programiranjem svega :)

branuschi 12.11.2012. 09:43

do 250kn i s pogreškom max. do 100g to bi se radilo ubiti o jednoj pčelarskoj vagi nešto što kod na i u svjetu postoji već nekih 5-6 godina ali im cijene nisu baš pristupačne kod nas su ove godine nešto pale i dođu oko 2800kn!
http://www.bienenwaage.de/deutsch/SMSwaage.html ili u njemačkoj dođu preko 1000EUR

Night 12.11.2012. 11:08

Citiraj:

Autor SilentException (Post 2274033)
A do koliko kila bi to trebalo mjeriti i s kakvom tocnoscu?

Dosta mjernih uredaja ima jako mali izlazni signal i mogu se spojiti na Arduino direktno ali je potrebno malo pojacati signal, znaci potreban je manji el. sklop prije spajanja na input. Mozes cak uzeti i obicnu digitalnu kupaonsku vagu i uz malo truda spojit ju na Arduino.

Na Arduino onda ide onaj GSM modul koji si linkao sa eBaya. Ako nisi nikad prije radio sa Arduinom, mozda bi bolji izbor i bio Raspberry Pi (isto ima IO pinove). Uglavnom ceka te dosta zafrkancije sa elektronikom a onda jos nesto posla sa programiranjem svega :)

Ne bi tu trebalo biti puno problema. Koliko vidim taj mjerni senzor ima linearni naponski izlaz ovisan o težini koja ga pritišće. Treba samo sa Arduinom preko ADC pina pokupiti tu vrijednost, ako je premala lako se riješi jednim OP-AMPom od par kuna. Vjerujem da imaju i dobar lib za onaj GSM modul tako da bi se sve svelo na pozivanje timera dvaput dnevno, očitavanje vrijednosti i slanje preko SMSa.

To se rješenje sa Arduinom (ili bilo kojim sličnim mikrokontrolerom) čini dosta kompaktnije, a vjerojatno i jeftinije od verzije sa PCem i ADC karticom. I potrošnja struje je puno manja.

bboris 23.03.2014. 17:03

poštovani forumaši
evo ja se pripremam izraditi sličnu vagu,pošto sam pčelar početnik i nisam baš u mogućnosti izdvojiti 400- 500 eura za istu,malo sam pročačkao po e bay-u i odlučio sljedeće:
ovo http://www.ebay.com/itm/251481884338...84.m1436.l2649
spojiti s ovim
http://www.ebay.com/itm/141150549080...84.m1439.l2649

pa onda to sve spojiti s ovim
http://www.ebay.com/itm/321353564330...84.m1439.l2649

i možda dodati još i ovo dvoje
http://www.ebay.com/itm/380861978154...84.m1439.l2649

http://www.ebay.com/itm/301127099927...84.m1439.l2649

i kada to lipo sklopim ostalo bi još isprogramirati da mi šalje sms nekoliko puta na dan,e sada tu nastaje problem jer sam s programiranjem na vi,istina na internetu postoji već gotov kod za slanje sms ali samo s već pred definiranom porukom, a meni triba da pokupi podatke prvo s senzora težine pa s senzora temperature i to sve lipo meni pošalje sms na mobitel.
pa vas molim da ako je netko s programiranjem na vi da pomogne.
unaprijed se zahvaljujem na svakoj pomoći,a i nadam se da sam i ja pomogao nekome idejom ilinkovima s potrebnim komponentama.

e da evo i kopirani kod za slanje sms..

#include
SoftwareSerial SIM900(7, 8);
int x,y;
String textForSMS;

void setup()
{
SIM900.begin(19200);
SIM900power();
delay(20000); // give time to log on to network.
randomSeed(analogRead(0));
}

void SIM900power()
// software equivalent of pressing the GSM shield "power" button
{
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(7000);
}

void sendSMS(String message)
{
SIM900.print("AT+CMGF=1\r"); // AT command to send SMS message
delay(100);
SIM900.println("AT + CMGS = \"+12128675309\""); // recipient's mobile number, in international format
delay(100);
SIM900.println(message); // message to send
delay(100);
SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26
delay(100);
SIM900.println();
delay(5000); // give module time to send SMS
SIM900power(); // turn off module
}

void loop()
{
x = random(0,255);
y = random(0,255);
textForSMS = "Your random numbers are ";
textForSMS.concat(x);
textForSMS = textForSMS + " and ";
textForSMS.concat(y);
textForSMS = textForSMS + ". Enjoy!";
sendSMS(textForSMS);
do {} while (1);
}

dmd-0 23.03.2014. 20:58

koliko sam shvatio, sensor salje analogni linearni signal (napon) kad se postavi teret na njega.
ja bih to napravio ovako
output senzora spojis na analogni pin arduina, konfiguriras taj pin (A0) kao ulazni pinMode(A0, input)..

nakon toga jednostavno iscitavanje ulaza - int vrijednost = analogRead(A0)
sad je u varijabli vrijednost spremljena trenutna vrijednost koju senzor "osjeti" koja je izmedju 0-1023..sad bi trebalo saznati koja vrijednost odgovara kilogramima/gramima ili sto se vec mjeri.. float tezina = vrijednost * max_kilogrami_senzora/1023

ovako bih ja napravio:

Code:

#include
SoftwareSerial SIM900(7, 8);
int x,y;
String textForSMS;
float tezina;

void setup()
{
SIM900.begin(19200);
SIM900power();
delay(20000); // give time to log on to network.
pinMode(A0, input);
}

void SIM900power()
// software equivalent of pressing the GSM shield "power" button
{
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(7000);
}

void sendSMS(String message)
{
SIM900.print("AT+CMGF=1\r"); // AT command to send SMS message
delay(100);
SIM900.println("AT + CMGS = \"+12128675309\""); // recipient's mobile number, in international format
delay(100);
SIM900.println(message); // message to send
delay(100);
SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26
delay(100);
SIM900.println();
delay(5000); // give module time to send SMS
SIM900power(); // turn off module
}


//podesio bih arduinov timer da svakih 5s poziva ovu funkciju
void iscitavanje(){
int vrijednost = analogRead(A0);
tezina = vrijednost * max_kilogrami_senzora/1023;
}

void loop(){
sendSMS(tezina);
//ovako kako je sada slao bi "stalno" sms, treba odrediti koliko cesto treba sms i onda i za njega podesiti timer (ako moze tako sporo brojati)
}

ovo je naravno samo skica po pretpostavkom da senzor daje naponski signal 0-5V, davno sam se igrao s arduinom tako da se ne sjecam svega iz glave, al nadam se da sam barem malo pomogao..

bboris 24.03.2014. 14:16

Citiraj:

Autor dmd-0 (Post 2567759)
koliko sam shvatio, sensor salje analogni linearni signal (napon) kad se postavi teret na njega.
ja bih to napravio ovako
output senzora spojis na analogni pin arduina, konfiguriras taj pin (A0) kao ulazni pinMode(A0, input)..

nakon toga jednostavno iscitavanje ulaza - int vrijednost = analogRead(A0)
sad je u varijabli vrijednost spremljena trenutna vrijednost koju senzor "osjeti" koja je izmedju 0-1023..sad bi trebalo saznati koja vrijednost odgovara kilogramima/gramima ili sto se vec mjeri.. float tezina = vrijednost * max_kilogrami_senzora/1023

ovako bih ja napravio:

Code:

#include
SoftwareSerial SIM900(7, 8);
int x,y;
String textForSMS;
float tezina;

void setup()
{
SIM900.begin(19200);
SIM900power();
delay(20000); // give time to log on to network.
pinMode(A0, input);
}

void SIM900power()
// software equivalent of pressing the GSM shield "power" button
{
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(7000);
}

void sendSMS(String message)
{
SIM900.print("AT+CMGF=1\r"); // AT command to send SMS message
delay(100);
SIM900.println("AT + CMGS = \"+12128675309\""); // recipient's mobile number, in international format
delay(100);
SIM900.println(message); // message to send
delay(100);
SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26
delay(100);
SIM900.println();
delay(5000); // give module time to send SMS
SIM900power(); // turn off module
}


//podesio bih arduinov timer da svakih 5s poziva ovu funkciju
void iscitavanje(){
int vrijednost = analogRead(A0);
tezina = vrijednost * max_kilogrami_senzora/1023;
}

void loop(){
sendSMS(tezina);
//ovako kako je sada slao bi "stalno" sms, treba odrediti koliko cesto treba sms i onda i za njega podesiti timer (ako moze tako sporo brojati)
}

ovo je naravno samo skica po pretpostavkom da senzor daje naponski signal 0-5V, davno sam se igrao s arduinom tako da se ne sjecam svega iz glave, al nadam se da sam barem malo pomogao..

hvala na odgovoru svaka pomoc je dobro dosla:fala:

bboris 25.04.2014. 20:09

evo svi djelovi osim baterije su stigli,pa se počinjem experimentalno igrati,spojio sam uspješno arduino i gsmgprs shield našao i ubacio kod koji sam već postao i to radi tj šalje uredno poruku na moj mobitel ali samo preddefinirani text.e onda sam spojio senzor za temperaturu i vlagu dht11, ako nekoga zanima + pin na 5 v pin na arduinu, - pol na gnd pin na arduinu,out pin na a1 pin na arduinu i onda ubaciti sljedeći kod

const int dht11_pin = A1;

//unsigned long times[100] = {0};

void setup()
{
pinMode(dht11_pin, OUTPUT);
digitalWrite(dht11_pin, HIGH);
Serial.begin(19200);
Serial.println("ready");
}

int init_dht11()
{
pinMode(dht11_pin, OUTPUT);
digitalWrite(dht11_pin, HIGH);
delay(100);
digitalWrite(dht11_pin, LOW);
delay(18);
digitalWrite(dht11_pin, HIGH);
delayMicroseconds(40);
pinMode(dht11_pin, INPUT);
delayMicroseconds(40);
if (digitalRead(dht11_pin) != LOW) {
delay(1000);
return 1;
}
delayMicroseconds(80);
if (digitalRead(dht11_pin) != HIGH) {
Serial.println("condition 2 not met");
delay(1000);
return 2;
}
delayMicroseconds(80);
return 0;
}

byte read_dht11_data()
{
const int timeout = 10000;
unsigned long t;
byte data = 0;
for (int bit = 0; bit < 8; ++bit) {
int count = 0;
while (digitalRead(dht11_pin) == LOW) {
delayMicroseconds(1);
if (++count >= timeout)
return -1;
}
delayMicroseconds(30);
data = (data << 1) | digitalRead(dht11_pin);
count = 0;
while (digitalRead(dht11_pin) == HIGH) {
delayMicroseconds(1);
if (++count >= timeout)
return -1;
}
}
return data;
}

void measure()
{
byte dht11_data[5] = {0};
if (init_dht11()) {
Serial.println("init_dht11 failed");
return;
}

for (int i = 0; i < 5; ++i) {
dht11_data[i] = read_dht11_data();
}

pinMode(dht11_pin, OUTPUT);
digitalWrite(dht11_pin, HIGH);

byte sum = 0;
for (int i = 0; i < 4; ++i) {
sum += dht11_data[i];
}

if (dht11_data[4] != sum) {
Serial.println("bad checksum");
return;
}

Serial.print("Humidity: ");
Serial.print(dht11_data[0]);
Serial.print(".");
Serial.print(dht11_data[1]);
Serial.println("%");

Serial.print("Temperature: ");
Serial.print(dht11_data[2]);
Serial.print(".");
Serial.print(dht11_data[3]);
Serial.println("C");
delay(1000);
}

void loop()
{
int count;
delay(1000);
Serial.println("begin");
measure();
i na serial monitoru će vam očitavati temp i vlažnost.. e pitanje je što još dodati na ovaj kod pa da podaci idu na mobitel putem sms?

za senzore težine sam kupio wivax digitalnu kupaoničku vagu u peveca,izvadio senzore iz nje i ako nekoga zanima crna žica je - pol,bijela je + pol a crvena je output signal,znači da bi bilo potrebno - pol spojiti na gnd pol na arduinu,+ pol na 3 V pin na arduinu,a autput tj crvenu žicu na A2 pin na arduinu.sada bi bilo potribno ubaciti kod sličan ovome koji je postao kolega dmd-o ali ispravljen jer njegov sadrži pogreške pa ako je neko voljan ispraviti pogreške i udjeliti koji savjet bit ću mu izuzetno zahvalan..

branuschi 25.04.2014. 20:31

samo jedno pitanjce hoće li bit možda problema s tim senzorima za težinu jer kod većine tih kućnih vaga najprije je treba pritisnut da se kalibrira na 0 tek onda ide teret na nju ako sam upravu onda to neće funkcionirati pošto će bit opterećena non stop s košnicom?

bboris 26.04.2014. 19:51

Citiraj:

Autor branuschi (Post 2585055)
samo jedno pitanjce hoće li bit možda problema s tim senzorima za težinu jer kod većine tih kućnih vaga najprije je treba pritisnut da se kalibrira na 0 tek onda ide teret na nju ako sam upravu onda to neće funkcionirati pošto će bit opterećena non stop s košnicom?

ne nebi tribalo biti problema jer kalibracija na kućnoj vagi je na nekim rješena programski a na nekima mehaničkim prekidačem,jedino je upitan rok trajanja senzora zbog zamora materijala,ali svakih godinu dana promjeniti senzore i nije neki veliki izdatak...


Sva vremena su GMT +2. Sada je 10:25.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger