7 660 läst ·
54 svar
8k läst
54 svar
Mäta fuktkvot med arduino eller raspberry
RS232 finns inte på arduino direkt*. Det finns en UART (eller fyra, på Mega, eller två på leonardo). Om man väljer att köra TTL direkt över en tvåtrådsförbindelse så kanske det funkar, kanske inte. Ska man köra RS232 måste man i de flesta fall ha en linjedrivare, precis som för RS485. Då kan man också konstatera att enkla drivare för RS485 kommer i DIP-8 medan minsta drivaren för RS232 kommer i DIP16 (om vi pratar grejer som man enkelt kan handlöda och inte ytmonterade) och dessutom kräver lite extra komponenter. Eftersom man måste ha en driver i båda fallen är RS485 bättre och också mer anpassad för busskommunikation med multidrop.L largab skrev:RS232 är väl enklare. Finns direkt i Arduino. Använd 5 el 3 V interface direkt utan att konvertera till +-12V. Låg speed på RS232 så klarar man lätt avstånd som finns i en villa. Använd "Arduino mini pro". h/w TX/RX som "mottagare". Mappa 2 pinnar TX/RX till "sändare" och kör s/w RS232 på dessa. Då kan du sätta upp ett system med seriekopplade mätmoduler till en central logger.
Då finns 4-8 ADC, SPI, I2C, + lite datapinnar tillgängligt för att hänga på sensorer i varje delmodul. Utbyggbart. Bara koppla på en till i änden av kedjan som sammanbinds av en 4-ledare.
Ny teknik i all ära men vill du öppna väggen för att byta batterier? Precis som du säger måste sensorerna ha ström. Då kan data lika gärna gå samma väg. Jag skulle inte bygga in några litiumbatterier i väggarna. Programmeringen är också betydligt enklare på trådat. Det handlar egentligen bara om att skriva ut fuktnivå och sensoradress lagom många gånger per timme på bussen med Serial.write(). Är man fin i kanten implementerar man lite kollisionsdetektion också.
* De allra första varianterna hade RS232 istället för USB som interface. Det är troligen inte frågan om någon av dem.
Kallat vad du vill. Det är rs232 logiskt sätt. Det räcker för mig. Det funkar bra att köra m TTL nivåerna direkt. Dvs koppla ihop pinnarna mellan de olika enheterna direkt. Drivsteget är onödigt då man ändå har kontroll på bägge ändarna.
Nej, det är inte RS232. Det är ett definierat interface med spänningsnivåer +/- 15V och har ett gäng associerade kontrollsignaler. Man kan implementera bl.a. RS232 med en arduino och dess UART (eller med SoftwareSerial) men det är inte det interfacet är. Här är en wikipedialänk till standarden.
Det du tänker på är den väldigt lösa definitionen av "serieport" vilket för de flesta innebär RS232 (även här löst och utan de normala kontrollsignalerna). Det är dock absolut inte samma. USB är också en serieport, liksom alla pinnar på en arduino som kan sända eller ta emot signal.
Ang ditt förslag om att köra TTL över tråd så kanske det fungerar som sagt. Det är inget jag skulle rekommendera för något man bygger in i en vägg eftersom felsökningen blir en mardröm.
Det du tänker på är den väldigt lösa definitionen av "serieport" vilket för de flesta innebär RS232 (även här löst och utan de normala kontrollsignalerna). Det är dock absolut inte samma. USB är också en serieport, liksom alla pinnar på en arduino som kan sända eller ta emot signal.
Ang ditt förslag om att köra TTL över tråd så kanske det fungerar som sagt. Det är inget jag skulle rekommendera för något man bygger in i en vägg eftersom felsökningen blir en mardröm.
Jag sa ju att du får kallat vad du vill. Jag skriver slarvigt RS232 när jag kanske borde skriva "asynkron TTL seriekommunikation".tommib skrev:
Nej, det är inte RS232. Det är ett definierat interface med spänningsnivåer +/- 15V och har ett gäng associerade kontrollsignaler. Man kan implementera bl.a. RS232 med en arduino och dess UART (eller med SoftwareSerial) men det är inte det interfacet är. Här är en wikipedialänk till standarden.
Det du tänker på är den väldigt lösa definitionen av "serieport" vilket för de flesta innebär RS232 (även här löst och utan de normala kontrollsignalerna). Det är dock absolut inte samma. USB är också en serieport, liksom alla pinnar på en arduino som kan sända eller ta emot signal.
Ang ditt förslag om att köra TTL över tråd så kanske det fungerar som sagt. Det är inget jag skulle rekommendera för något man bygger in i en vägg eftersom felsökningen blir en mardröm.
Det enkla är att det funkar att köra med TTL-nivåer mellan 2 arduinos genom att använda den asynkrona logiken, utan annat än 3 ledare mellan dessa.
I2C är ju en annan möjlighet att använda. Mer uppstyrd kommunikation med en master samt flera slavar . Då behövs dock driverkretsar också om man ska kommunicera över längre sträckor.
Bygga in i vägg ? Varför ska man bygga in enheten i väggen ? Det räcker väl att fukt/temp sensor etc sitter i väggen. Det övriga ska naturligtvis sitta någorlunda åtkomligt.
Skulle felsökningen bli en mardröm med TTL-nivåer ? Det fattar jag inte alls.
Har du sett den här?mexitegel skrev:
https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf
Från den här tråden:
https://www.byggahus.se/forum/threads/bygga-fuktmaetare-med-arduino.289436/
Redigerat:
Det är i och för sig en poäng, risken för haveri i elektroniken finns oavsett. Drömmen vore att det går att bygga enheterna tillräckligt små så det går att dölja dem bakom golvlisten på ett eller annat sätt.L largab skrev:
RS-485 känns som en mer robust standard för överföringen i detta fallet. Det brukar ha sina fördelar att följa standarder
Redigerat:
Du vet inte om det är signaleringsproblem eller om du har kodat fel.L largab skrev:Jag sa ju att du får kallat vad du vill. Jag skriver slarvigt RS232 när jag kanske borde skriva "asynkron TTL seriekommunikation".
Det enkla är att det funkar att köra med TTL-nivåer mellan 2 arduinos genom att använda den asynkrona logiken, utan annat än 3 ledare mellan dessa.
I2C är ju en annan möjlighet att använda. Mer uppstyrd kommunikation med en master samt flera slavar . Då behövs dock driverkretsar också om man ska kommunicera över längre sträckor.
Bygga in i vägg ? Varför ska man bygga in enheten i väggen ? Det räcker väl att fukt/temp sensor etc sitter i väggen. Det övriga ska naturligtvis sitta någorlunda åtkomligt.
Skulle felsökningen bli en mardröm med TTL-nivåer ? Det fattar jag inte alls.
Det är lämpligt att i möjligaste mån använda korrekt terminologi. Kalla det för en serieport om du måste men inte RS232, det implicerar en väldigt specifik lösning. Det jag reagerar på är att du använder en väldigt specifik och felaktig term när du skulle kunna använda en mer generell.
Jag skulle inte vilja ha massa sladdar som sticker ut ur väggen och dosor som sitter ovanpå, tillfälligt eller inte.
Arduino mini får man med lätthet plats med innanför golvlist.
Ja det är bättre att använda beprövad buss. Men då måste man ha ett interface mot bussen.
Med asynkron TTL seriekommunikation så behövs inget mera än 4-ledare samt minin med senor (er). Dvs inget nytt kretskort.
Jag kan hålla med om att wi-fi är en attraktiv lösning. Men matningsspänning alt batteri förtar lite av enkelheten om det ska vara fast monterat.
Ja det är bättre att använda beprövad buss. Men då måste man ha ett interface mot bussen.
Med asynkron TTL seriekommunikation så behövs inget mera än 4-ledare samt minin med senor (er). Dvs inget nytt kretskort.
Jag kan hålla med om att wi-fi är en attraktiv lösning. Men matningsspänning alt batteri förtar lite av enkelheten om det ska vara fast monterat.
Hur många ska du ha egentligen? En arduino mini stödjer typ 6 analoga ingångar (ur minnet, kommer inte ihåg exakt antal pinnar ut). Fyra såna på en buss och du har 24 mätpunkter. Det är ju inte antalet mätpunkter utan antalet "koncentratorer" som är intressant. Eller tänkte du ha en arduino per mätpunkt?mexitegel skrev:
Helt riktigt, om jag inte surfade alldeles för snett igår så stödjer uno'n 8 analoga ingångar tex. Så det är väl kanske mest i teorin det begränsartommib skrev:
Hur många ska du ha egentligen? En arduino mini stödjer typ 6 analoga ingångar (ur minnet, kommer inte ihåg exakt antal pinnar ut). Fyra såna på en buss och du har 24 mätpunkter. Det är ju inte antalet mätpunkter utan antalet "koncentratorer" som är intressant. Eller tänkte du ha en arduino per mätpunkt?
Ja, det verkar nano (inte mini...) också göra. De kostar ca 20 kr/st på Ebay. Om du skippar USB och programmerar via adapter istället kommer du med Pro Mini ner till ca 12 kr/st, men får då på de flesta varianterna bara fyra analoga pinnar utdragna.
Edit: Här var iofs en som verkar ha alla åtta pinnarna utdragna. Tiopack för 150 kr, inte direkt dyrt.
Edit: Här var iofs en som verkar ha alla åtta pinnarna utdragna. Tiopack för 150 kr, inte direkt dyrt.
