Sari la conținut
ELFORUM - Forumul electronistilor

Termometru dual/433Mhz


78ATI

Postări Recomandate

Buna ziua tuturor!Cu ceva vreme in urma am relaizat un termometru digital, care masoara temperatura in 3 puncte (3 medii diferite), folosind senzori DS18B20 si un PIC 16F628. Doresc sa realizez acum acelasi lucru, insa transmisia datelor sa fie facuta fara fir. Ma puteti ajuta cu o schema electronica?Dispun de 3 module TX/433Mhz si de 1 modul RX/433 Mhz. Cum as putea face citirea celor 3 temperaturi, trimitand apoi rezultatul prin radio?In principiu, sunt interesat de asemenea sa trimit de exemplu din acelasi punct mai multe informatii alaturi de respectiva temperatura citita (de exemplu, daca valva1 este oprita sau pornita...etc etc)Va multumesc!

Link spre comentariu
  • Răspunsuri 45
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • 78ATI

    22

  • MatyC

    9

  • costi002

    6

  • Liviu M

    5

Top autori în acest subiect

Nu este obligatoriu sa fie duplex, desi ar fi recomandabil. Chiar si cu varianta asta one-way ar merge, insa trebuie rezolvata problema conflictelor in comunicare. Cu o variabila random se poate rezolva daca se accepta cateva secunde pentru intarziere. Ca idee eu o vad problema rezolvabila acceptand unele compromisuri.

Link spre comentariu

Buna seara!Am aruncat privirea pe internet, si am vazut cateva scheme de automatizari folosind modul TX 433Mhz si RX 433Mhz. Se face o multiplexare pe 4 canale folosind un encoder-decoder HT12E si HT12D.Nu am experienta insa, in locul clasicelor butoane se pot transmite semnale seriale? Mai precis intrebarea este: daca construiesc 4 module fiecare continand 1senzor + 1 PIC + 1 HT12E + TX 433, se pot citii pe rand cu un singur receptor? Conecarea sa fie facuta distinct: modulul 1 sa foloseasca intrarea 1 de la HT modulul2 - intrarea 2...etc.Credeti ca ar fi posibil? Daca nu, ce alta varianta care ar fi?Va multumesc!

Link spre comentariu

Nu este obligatoriu sa fie duplex, desi ar fi recomandabil. Chiar si cu varianta asta one-way ar merge, insa trebuie rezolvata problema conflictelor in comunicare. Cu o variabila random se poate rezolva daca se accepta cateva secunde pentru intarziere. Ca idee eu o vad problema rezolvabila acceptand unele compromisuri.

Doriti va rog sa detaliati ideea? Citirea respectivelor temperaturi nu trebuie sa se faca in timp real. Automatizarea nu este atat de pretentioasa incat nu se poate astepta cateva secunde intre citiri.Sincer, pana acum nu am pus nimic pe tapet, asa ca orice sugestie dezvoltabila imi prinde bine!
Link spre comentariu

Sunt ocupat zilele acestea si nu am timp prea mult pentru detalii. In mare eu nu vad rostul la encoderele HT12. Dar am cateva intrebari pentru ca nu am inteles exact problema. Zici ca ai senzori DS1820 mai multi la numar insa cum sunt distribuiti? Intr-o singura incapere sau pe distante mai mari? Ai adus in discutie si ceva valve inchise/deschise. Cate semnale? Vei folosi o unitate de control si decizie care va fi la receptie RF?Groso modo uite cum vad eu implementarea:1. PIC(12f675) + DS1820 + TX433 + intrari evenimente cu modificare protocolului de mai sus.2. PIC(16F628) + relee de control + RX433.Mai revin cu detalii.

Link spre comentariu

Sunt ocupat zilele acestea si nu am timp prea mult pentru detalii. In mare eu nu vad rostul la encoderele HT12. Dar am cateva intrebari pentru ca nu am inteles exact problema. Zici ca ai senzori DS1820 mai multi la numar insa cum sunt distribuiti? Intr-o singura incapere sau pe distante mai mari? Ai adus in discutie si ceva valve inchise/deschise. Cate semnale? Vei folosi o unitate de control si decizie care va fi la receptie RF?Groso modo uite cum vad eu implementarea:1. PIC(12f675) + DS1820 + TX433 + intrari evenimente cu modificare protocolului de mai sus.2. PIC(16F628) + relee de control + RX433.Mai revin cu detalii.

In acest moment vor fi 3 senzori de temperatura pozitionati in incinte diferite. Acesti senzori trebuie sa trimita informatiile unui receptor care analizeaza si afiseaza termperaturiile receptionate.Nu are importanta tipul controlerelor, varianta propusa de dvs 12F675 si 16F628 este foarte accesibila.In acest moment problema mea este "cum pot citii cele 3 semnale transmise in timpi sa spunem aleatorii pe aceiasi frecventa". De aceea am adus in discutie posibilitatea encoder/decoder. Neavand experienta, nu pot decat sa caut sa invat!Multumesc pentru viitorul suport!
Link spre comentariu

78ATI revino cu cateva detalii. Cate intrari vrei sa monitorizezi ( valve sau orice altceva) si cum vrei sa faci unitatea centrala care va lua deciziile pe baza senzorilor. Eu am la dispozitie doar o pereche de emitator cu receptor si pot testa doar un singur senzor. Probleme cu conflictele in transmisie le testezi tu. Pentru moment nu stiu pe ce drum sa plec deoarece la PIC12F675 vreau sa folosesc oscilatorul cu cuartz ceace inseamna 1 sau 2 porturi folosite. Pana la restul de 6 unul este clar dedicat pentru 1-wire si mai raman 3 porturi. Cum sa implementez identificarea modulului TX? Am vreo 3 idei cum sa fac insa m-ar ajuta sa stiu cu ce ai tu de a face concret la fata locului.

Link spre comentariu

Buna!Am: 3 Module TX 433 1 Modul RX 433 3 DS18B20Ideea principala: Sunt 3 Incaperi ce se doresc monitorizate (camere termostatate). Fiecare din sezor citeste temperatura, si transmite prin TX valoarea citita, iar unitatea centrala interpreteaza datele. De exemplu, un afisa fa afisa cele 3 Temperaturi, iar decizia o pot lua fie sa opresc un robinet, fie sa pornesc un ventilator, etc.Am citit cate ceva despre codarea informatiei....astfel incat sa pot identifica din ce camera sosesc datele. Problema ca eu vreau sa fac traseul datelor sa fie unidirectional: senzori+Tx trimit in disperare la un interval (ex 1minut) iar baza sa intercepteze respectivele date sa decodifice de unde vin si sa afiseze in prima instanta valorile. (restul va fi usor)...Acum ma confrunt cu posibila problema: Trimit 3 semnale pe aceiasi frecventa, cum fac codarea iar apoi citirea? Cred ca iese un amestec de date care nu vad cum le pot interpreta!

Link spre comentariu

Acum ma confrunt cu posibila problema: Trimit 3 semnale pe aceiasi frecventa, cum fac codarea iar apoi citirea? Cred ca iese un amestec de date care nu vad cum le pot interpreta!

La problema asta ma gandesc sa o rezolv cu o variabila random pentru emitator. Este loc de coliziuni intre transmisii dar foarte rare asa ca se accepta. Se evita situatia ca toate sa transmita in celasi timp tot timpul insa nu sunt intervale egale de asta te intrebasem cat de pretentioasa este aplicatia.Pentru identificarea senzorului se poate folosi un dipswitch cu 3 contacte si te poti duce pana la 8 senzori. Daca in loc de cuartz folosesti un oscilator TXCO mai recuperezi un port pentru altceva, ex. alimentarea controlata a emitatorului in cazul alimentari pe baterie.
Link spre comentariu

In aceste moment, nu se pune problema economiei porturilor I/O. Am gasit ceva informatii despre manchester encoding, iar acum as incerca un astfel de tip de codare transmisie.

 

http://www.quicktrip.co.nz/jaqblog/home ... icaxe-uart

http://www.coolcircuit.com/project/rf_remote/

 

In acest moment sunt atat de nehotarat, incat nu am schitat nimic pe calculator, sper ca dupa ce incropesc o schme logica se reusesc sa programez cate ceva.

Link spre comentariu

Buna dimineata!

In acest weekend am incercat tot felul de variante, insa concluzia este ca nu am reusit sa transmit/receptionez nici un caracter via Radio.

Inainte de a merge mai departe:

* Se poate folosii oscilatorul intern din controler?

* Am incercat sa verific parcurgerea fiecarei rutine din program, facand ca dupa o anumita etapa sa se aprinda un led. Surprinzator niciodata nu a trecut de rutina "Machester code receiving"

 

main:  ErrorCount = 0  Delay_10us()  Lcd_Init()                          ' Initialize LCD  Lcd_Cmd(_LCD_CLEAR)                 ' Clear LCD display  Man_Receive_Init()                  ' Initialize Receiver  while TRUE                          ' Endless loop    Lcd_Cmd(_LCD_FIRST_ROW)           ' Move cursor to the 1st row    while TRUE                        ' Wait for the "start" byte      temp = Man_Receive(error_)      ' Attempt byte receive      if (temp = 0x0B) then           ' "Start" byte, see Transmitter example        break                         ' We got the starting sequence      end if      if (error_ <> 0) then           ' Exit so we do not loop forever        break      end if    wend    while (temp <> 0x0E)      temp = Man_Receive(error_)      ' Attempt byte receive      if (error_ <> 0) then           ' If error occured        Lcd_Chr_CP("?")               ' Write question mark on LCD        Inc(ErrorCount)               ' Update error counter        if (ErrorCount > 20) then     ' In case of multiple errors          temp = Man_Synchro()        ' Try to synchronize again          'Man_Receive_Init()         ' Alternative, try to Initialize Receiver again           ErrorCount = 0             ' Reset error counter        end if        else                          ' No error occured          if (temp <> 0x0E) then      ' If "End" byte was received(see Transmitter example)                                      ' do not write anymore received byte on Lcd            Lcd_Chr_CP(temp)          ' else write character on Lcd            Inc(ErrorCount)              ' Counts how many chars have been written on Lcd            if ErrorCount = 25 then      ' If there were more then 25 characters                                      ' synchronization is off              Lcd_Cmd(_LCD_CLEAR)     ' Clear the Lcd of garbled communication              temp = Man_Synchro()    ' Try to synchronize again            end if          else            ErrorCount = 0               ' reset counter          end if            Delay_ms(25)      end if    wend                              ' If "End" byte was received exit do loop  wendend.

Cu alte cuvinte, nu stiu care ar fi motivul: Folosesc la transmitere un 12F675 iar la receptie 16F628A.

Am verificat partea de afisare, pot scrie pe LCD orice, folosind oscilatorul intern al PIC, ca si setari le-am pus pe toate OFF, exceptand Power On.

Ce sa fie?

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări