78ATI Postat Noiembrie 22, 2011 Partajează Postat Noiembrie 22, 2011 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
MatyC Postat Noiembrie 24, 2011 Partajează Postat Noiembrie 24, 2011 Ma gandesc ca ar fi o posibilitate sa adaptezi ideea de aici: http://coolcircuit.com/project/rf_remote/index.html Eu am pus in practica varianta cu PIC12F675. Ca observatie tine cont ca este pretentios la delay. Pentru mine este un proiect inghetat deoarece am realizat partea de receptie insa emisia a ramas pe breadboard. Ma gandesc ca protocolul folosit poate fi adaptat. Link spre comentariu
ratoiul Postat Noiembrie 24, 2011 Partajează Postat Noiembrie 24, 2011 Salut,Daca utilizeaza ca senzor DS18B20 atunci comunicarea ar fi duplex, in acest caz trebuie utilizatedoua transceivere. Vezi si adresa asta: viewtopic.php?f=205&t=11844 Link spre comentariu
MatyC Postat Noiembrie 24, 2011 Partajează Postat Noiembrie 24, 2011 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
cirip Postat Noiembrie 26, 2011 Partajează Postat Noiembrie 26, 2011 Salut, De chestia asta stii? http://www.ti.com/tool/ez430-rf2500 Eu am folosit-o ca sa transmita date de pe un aeromodel in zbor. Protocolul folosit este SimpliciTI si garanteaza livrarea fara erori a datelor. TI ofera tot protocolul. Este un ZigBee simplificat. Cirip Link spre comentariu
78ATI Postat Noiembrie 29, 2011 Autor Partajează Postat Noiembrie 29, 2011 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
78ATI Postat Noiembrie 29, 2011 Autor Partajează Postat Noiembrie 29, 2011 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
MatyC Postat Noiembrie 30, 2011 Partajează Postat Noiembrie 30, 2011 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
78ATI Postat Noiembrie 30, 2011 Autor Partajează Postat Noiembrie 30, 2011 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
MatyC Postat Decembrie 5, 2011 Partajează Postat Decembrie 5, 2011 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
78ATI Postat Decembrie 5, 2011 Autor Partajează Postat Decembrie 5, 2011 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
MatyC Postat Decembrie 5, 2011 Partajează Postat Decembrie 5, 2011 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
78ATI Postat Decembrie 5, 2011 Autor Partajează Postat Decembrie 5, 2011 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
78ATI Postat Decembrie 12, 2011 Autor Partajează Postat Decembrie 12, 2011 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
costi002 Postat Decembrie 12, 2011 Partajează Postat Decembrie 12, 2011 Salutare la toata lumeaAcuma ma bag si eu, ca deh, e pauza de masa.Ai incercat sa comunici prima oara cu un cablu intre ele? Link spre comentariu
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum