Hemgjorda sensorer för arduino. Smart hem baserat på Arduino: steg-för-steg monteringsinstruktioner. Vilka lösningar erbjuder Arduino?

God eftermiddag, idag ska jag dela med mig av instruktionerna för att göra en klocka med en rumstermometer ( Gör-det-själv-klocka på arduino). Klockan drivs av en Arduino UNO, och en WG12864B grafisk skärm används för att visa tid och temperatur. Som temperatursensor - ds18b20. Till skillnad från de flesta andra klockor kommer jag inte att använda RTS (Real Time Clock), men kommer att försöka klara mig utan denna extra modul.

Arduino-kretsar kännetecknas av sin enkelhet, och alla kan börja lära sig Arduino. Du kan läsa om hur du ansluter bibliotek och flash arduino i vår artikel.

Låt oss börja.

För att skapa den här klockan behöver vi:

Arduino UNO (eller någon annan Arduino-kompatibel betala)
- Grafisk skärm WG12864B
- Temperaturgivare ds18b20
- Motstånd 4,7 Kom 0,25 W
- Motstånd 100 ohm 0,25 W
- Batterifack för 4 AA-batterier
- Matchande låda
- liten fil
- Nagellack (svart eller kroppsfärg)
- Något tunn plast eller kartong
- Isoleringstejp
- Anslutningsledningar
- Kretskort
- Knappar
- lödkolv
- Löd, kolofonium
- Dubbelsidig tejp

Förbereder den grafiska skärmen.
Med anslutningen av skärmen, vid första anblicken, finns det många problem och svårigheter. Men om du först tar itu med deras typer blir det mycket lättare och tydligare. Det finns många varianter och typer av skärmar på styrenheten ks0107/ks0108. Alla skärmar är vanligtvis indelade i fyra typer:
Alternativ A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Option B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Displays AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864J4, QY-12864F, TM12864J4, QY-12864F, TM12864F
Alternativ C: Shenzhen Jinghua Displays Co Ltd. JM12864
Alternativ D: Wintek- Cascades WD-G1906G, Wintek - GEN/WD-G1906G/KS0108B, Wintek/WD-G1906G/S6B0108A, TECDIS/Y19061/HD61202, Varitronix/MGLS19264/HD6122

Listan är inte komplett, det finns många av dem. Den vanligaste och, enligt min mening, bekväma WG12864B3 V2.0. Skärmen kan anslutas till Arduino via en seriell eller parallell port. När du använder Arduino UNO är det bättre att välja anslutningen efter serieport- då behöver vi bara 3 mikrokontrollerutgångar, istället för minst 13 linjer när de är anslutna via en parallellport. Allt hänger ihop helt enkelt. Det finns ytterligare en nyans, till försäljning kan du hitta två visningsalternativ, med en inbyggd potentiometer (för att justera kontrasten) och utan den. Jag valde, och jag råder dig att göra detsamma, med den inbyggda.


Detta minskar antalet delar och lödtiden. Det är också värt att sätta ett 100 ohm strömbegränsande motstånd för bakgrundsbelysning. Genom att koppla direkt 5 volt finns risk för att bakgrundsbelysningen bränns.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - +5V
4 (RS) - 10
5 (R/W) - 11
6(E)-13
15 (PSB) - GND
19 (BLA) - genom ett motstånd - + 5V
20 (BLK) - GND

Det bekvämaste sättet är att montera allt detta på baksidan av skärmen och ta 5 ledningar från den för att ansluta till Arduino UNO. I slutändan borde det se ut så här:


För den som ändå väljer en parallellkoppling ger jag en anslutningstabell.

Och diagrammet för skärmarna för alternativ B:



Flera sensorer kan anslutas till en kommunikationslinje. En räcker till vår klocka. Vi ansluter ledningen från "DQ"-stiftet på ds18b20 till "stift 5" på Arduino UNO.

Förberedelse av tavlan med knappar.
För att ställa in tid och datum på klockan använder vi tre knappar. För enkelhetens skull löder vi tre knappar på kretskortet och matar ut ledningarna.


Vi ansluter enligt följande: vi ansluter tråden som är gemensam för alla tre knapparna till "GND" Arduino. Den första knappen, den tjänar till att gå in i tidsinställningsläget och byta efter tid och datum, vi ansluter till "Pin 2". Den andra, öka värde-knappen, till "Pin 3", och den tredje, minska värde-knappen, till "Pin 4".

Att sätta ihop allt.
Att undvika kortslutning, ska skärmen vara isolerad. I en cirkel lindar vi med eltejp, och vidare tillbaka fäst på dubbelhäftande tejp, klippt till, en stång av isoleringsmaterial. Tjock kartong eller tunn plast duger. Jag använde plast från en papperstablett. Det visade sig följande:


På framsidan av skärmen, längs kanten, limmar vi dubbelhäftande tejp på en skumbas, gärna svart.


Ansluta skölden till Arduino:


Vi ansluter plus från batterifacket till "VIN" på Arduino, minus till "GND". Placera den på baksidan av Arduino. Före installation i väskan, glöm inte att ansluta temperatursensorn och knappkortet.


Förbereda och fylla i skissen.
Temperatursensorn kräver OneWire-biblioteket.

Skärmutgång görs genom U8glib-biblioteket:

För att redigera och fylla skissen måste du installera dessa två bibliotek. Detta kan göras på två sätt. Packa bara upp dessa arkiv och placera de uppackade filerna i mappen "bibliotek" som finns i mappen med Arduino IDE installerad. Eller det andra alternativet är att installera biblioteken direkt i programmeringsmiljön. Utan att packa upp de nedladdade arkiven, i Arduino IDE, välj menyn Sketch - Include Library. Högst upp i rullgardinsmenyn väljer du Lägg till .Zip-bibliotek. I dialogrutan som visas väljer du det bibliotek du vill lägga till. Öppna menyn Sketch - Include Library igen. Längst ner i rullgardinsmenyn bör du se nytt bibliotek. Nu kan biblioteket användas i program. Glöm inte att starta om Arduino IDE efter allt detta.

Temperatursensorn fungerar enligt One Wire-protokollet och har en unik adress för varje enhet – en 64-bitars kod. Det är inte praktiskt att leta efter den här koden varje gång. Därför måste du först ansluta sensorn till Arduino, fyll den med skissen som finns i menyn Arkiv - Exempel - Dallas Temperatur - OneWireSearch. Kör sedan Tools - Port Monitor. Arduino bör hitta vår sensor, skriva dess adress och aktuella temperaturavläsningar. Vi kopierar eller skriver helt enkelt ner adressen till vår sensor. Öppna skissen Arduino_WG12864B_Term, leta efter raden:

Byte addr=(0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97);//adress till min sensor

Vi skriver adressen till din sensor mellan lockiga hängslen och ersätter adressen till min sensor.

Stock:

//u8g.setPrintPos(44, 64); u8g.print(sek); // Mata ut sekunder för att kontrollera om draget är korrekt

Fungerar för att visa sekunder bredvid inskriptionen "Data". Detta är nödvändigt för att exakt ställa in tidsförloppet.
Om klockan är snabb eller efter bör du ändra värdet på raden:

If (micros() - prevmicros >494000) ( // ändra till något annat för att justera det var 500000

Jag bestämde empiriskt vid vilket nummer klockan är tillräckligt korrekt. Om din klocka är snabb bör du öka denna siffra, om du är efter, minska den. För att avgöra rörelsens noggrannhet behöver du utdata på sekunder. Efter exakt kalibrering av numret kan sekunder kommenteras ut och därmed tas bort från skärmen.

Integrerade ledningssystem för teknisk kommunikation i en bostad, kända som " Smart hus vinner mer och mer popularitet. Det utbredda införandet av dessa system försvåras av snarare hög kostnad för komponenter element och monteringsarbete. Ett Arduino-baserat smart hem är en lösning som är ganska prisvärd för alla som är åtminstone lite insatta i elektronik.

Vad är Arduino

Arduino är varumärket under vilket hårdvara och programvara för självständig konstruktion av automations- och fjärrkontrollsystem.

Faktum är att detta är en modulär konstruktör med ett brett utbud av möjligheter. Arduino hårdvara är ett stort sortiment av tryckta kretskort som är organiserade olika sensorer, ställdon och expansionskort. Kärnan i systemet är kort med programmerbara mikrokontroller olika nivåer svårighetsgrad från Arduino Pro Mini till Arduino Mega. Expansionskort låter dig använda ett stort antal externa enheter.

På en liten tryckt kretskort en mikrokontroller är installerad, några diskreta element, kvarts och olika sorter kontakter, inklusive vertikala stift, med hjälp av vilka hyllstrukturer monteras med tillägg av expansionskort. Atmega-chips används som mikrokontroller. Styrenhetens typ avgör funktionalitet avgifter beroende på antalet in- och utgångar.

Så utbredd modulArduino Unomed mikrokontrollerAtmega328 har följande egenskaper:

  • Digital I/O - 14
  • Av dessa är 6 PWM
  • Analoga ingångar - 6
  • Minne - 32 KB
  • Ström - 7-12 V
  • Pris - 950 rubel

Digitala kontakter kan programmeras för att utföra en specifik funktion. Det kan vara en ingång eller en utgång. Dessa ingångar/utgångar kan fungera med enheter som kräver två nivåer för att fungera. Detta är en logisk etta eller nivå nära matningsspänningen och en logisk låg nivå motsvarande noll. På digitala ingångar två-nivågivare kan anslutas. Dessa inkluderar ett par magnet-reed switchar. Denna sensor reagerar på att dörrar och fönster öppnas. Många inbrotts- och brandlarmssensorer fungerar enligt denna princip.

Digitala utgångar kan styra driften av elektromagnetiska reläer, som i sin tur slår på och av nätverksuttagen som olika hushållsapparater är anslutna till. Smart från Arduino kommer att kosta mycket mindre än en färdig industrisats.

Analoga ingångar via analog-till-digital-omvandlare överför information till styrenheten om status för temperatursensorer, belysning och vissa andra enheter. Genom att jämföra sensorernas avläsningar med de kommandon som är lagrade i minnet kan systemets centralenhet styra enheter där en jämn effektförändring krävs. Sex utgångar anslutna till pulsbreddsmodulatorn tillåter smidig kontroll av lasteffekten. Justera till exempel ljusstyrkan på en lampa, justera temperaturen på en värmare eller kontrollera hastigheten på en elmotor.

mest kraftfull och multifunktionell bräda av denna linje är Arduino Mega. Monterad på PCB kontroller mega 2560 , diskreta element, USB-kontakt för strömförsörjning. Kortet har 54 universella kontakter som kan programmeras för att utföra I/O-funktioner. 14 av dem kan styra analoga enheter med pulsbreddsmodulering. 16 analoga ingångar är utformade för att ansluta alla analoga enheter.

styrkort Arduino Mega kostar inom 1 500 rubel. Det enklaste sättet att programmera den är med personlig dator via USB-port.

Perifera moduler för Arduino

Styrkortet är kärnan i systemet, men du kan inte ansluta några enheter till det. Utgångarna har en liten belastningskapacitet och en begränsad ström. Att organisera ledningssystemet hushållsprodukter externa strömmoduler, kommunikationsenheter och andra enheter kommer att krävas. Detta är inget problem, eftersom ett stort antal kringutrustningsmoduler har utvecklats för Arduino-kontroller.

Här är bara några av dem:

  • Gasanalysator - MQ-2
  • Ljussensor - 2CH-Light-2
  • Extern temperaturgivare - DS18B20-PL
  • Rumstemperatur och fuktighetsgivare – DHT-11
  • Motordrivrutiner - L298N, L9110
  • Relämoduler - 1ch5V, 4ch5V
  • Modul fjärrkontroll IC2262/2272

Sensorn som upptäcker gasläckage i rummet reagerar på propan och butan, som är komponenter i hushållsgas. Modulen har känslighetsjustering och analoga/digitala utgångar. Ljussensor kan vara en del av automatiserat system ljus kontroll. Den består av två oberoende kanaler med individuellt justerbar känslighet. Utetemperaturgivaren är konstruerad för att fungera vid temperaturer från -55 till +125 grader. Rumstemperatur- och luftfuktighetsgivaren är avsedd för . Temperaturintervall från 0 till +55 0 С och luftfuktighet från 20 till 90%.

Eftersom matningsspänningen för Arduino-modulerna ligger i området från 7 till 12 volt, kan alla standardsensorer som har samma driftsnivåer användas för att organisera ett säkerhets- eller brandlarm.

Motorförare låter dig styra enfas, tvåfas, fyrfas och stegmotorer. Med hjälp av sådana enheter kan du öppna och stänga persienner eller gardiner. Servodrivenheter anslutna till drivenheterna låter dig reglera kylvätskeflödet i värmeradiatorer. Relänycklar är oumbärliga i "Smart Home"-systemet. Drivna av +5 volt logik-ett-potentialen kan reläerna koppla om belastningar i kretsar växelström upp till 10 ampere vid spänningar upp till 250 volt.

Med deras hjälp kan du slå på och stänga av eluttag, elektriska pumpar och andra system.

Fjärrkontrollmodulen består av en fjärrkontroll och en mottagningsenhet. Fjärrkontrollen är utrustad med fyra knappar och ger överföring av kommandon till den mottagande enheten på ett avstånd av upp till 100 meter. Alla kringutrustningsmoduler har samma matningsspänning och är kompatibla med alla Arduino-mikrokontroller.

Organisation av "Smart Home"-systemet

Utan vissa färdigheter, kunskaper kretsscheman och grunderna i elektronik, det är bättre att inte ta på sig "Smart Home"-systemet fullt ut.

Programmering Arduino mikrokontroller utförs i C/C++.

För att komma igång kan du skriva de enklaste programmen som kan slå på och av lysdioden eller styra mikromotorns funktion. Det finns många exempel på sådana program. De använder enkla operatorer av formen: if, while, then och andra. De låter även skolbarn skriva program. När de första programmen är korrekt utförda kan du försöka sätta ihop mer komplexa enheter, där PWM-utgångar kommer att användas för att smidigt styra ljuset.

För att göra ett "smart hem" på Arduino med dina egna händer måste du utarbeta ett tekniskt projekt, som kommer att indikera antalet sensorer och ställdon för varje rum. Du kan börja med ett rum, där några enkla funktioner kommer att implementeras. Vissa av dem kommer att exekveras av signaler från externa sensorer, och några av timersignaler. När en person går upp till jobbet på morgonen kommer Arduino-kontrollen, på signal från timern, att slå på vattenkokaren eller kaffebryggaren. Om det är mörkt ute, vilket upptäcks av utomhussensorn, kommer ljuset i rummet att lysa upp mjukt. Bekväm rumstemperatur kan också ställas in för både att sova och vakna.

För ett litet antal funktioner är Arduino Uno-mikrokontrollern och en uppsättning perifera moduler lämpliga.

För att styra hushållsapparater behöver du relänycklar som slår på och av eluttagen. För att styra ljuset behöver du en rörelsedetektor. Om det smarta systemet är installerat i köket är det nödvändigt att tillhandahålla automatisk inkoppling huvar, en hushållsgasläckagesensor och en vattenläckagesensor. En brandvarnare ska installeras som brandlarmselement i rummet.

Slutsats

Arduino-kontrollern låter dig slutföra ett smart hemprojekt och möta en relativt liten summa. Om vi ​​beräknar alla kostnader för att utrusta en trerumslägenhet, är det osannolikt att beloppet överstiger 30-40 tusen rubel. Om du minskar antalet funktioner blir budgeten ännu mer blygsam.

Jag gick förbi, jag tittar och här skriver de intressanta saker om olika hemgjorda produkter. Jag har också nyligen gjort något, låt mig, jag tror, ​​jag ska skriva, kanske kommer det att vara användbart för någon, ja, eller så blir det bara intressant. Vi pratar om hårdvaran för en budget gör-det-själv-sensor för inbäddning i switch- och uttagspaneler.

Men låt oss gå i ordning.

Jag har varit intresserad av automationssystemet för "Smarta hem" relativt länge. Nu har jag flera olika system ansluten till en. Det finns både industriella och hemgjorda komponenter. Jag vill prata om den sista hemgjorda produkten.

För en tid sedan, på Internet, stötte jag på MySensors hemautomationssystem. Ganska avancerat (och utvecklas ständigt vidare) trådlöst system baserat på Arduino och nRF24L01+. Det handlar dock inte om vem som är intresserad – källan kommer titta.

De främsta fördelarna med systemet för mig var bra mjukvarustöd, dubbelriktad kommunikation, tillgänglighet av komponenter och deras låga kostnad.

Efter att ha spelat tillräckligt på breadboards, bestämde jag mig för att utveckla en enhet som kan integreras på ett adekvat sätt i en heminredning (du kan inte ignorera WAF). Det blev en enhet som tillsammans med andra kan sänkas in i väggen i en vanlig 63 mm låda.

Detta är den första monteringen, jag ska försöka göra nästa mer exakt. Det stora hålet (för ljussensorn) kommer att täckas med en plexiglasstav.

Det ser ut så här i en halvdemonterad form:

Utsikt från andra sidan:

Allt detta består av en (kinesisk) 8MHz / 3.3V Arduino Pro Mini, en nRF24L01 + radiomodul, en HC-SR510 rörelsesensor, en DHT22 sensor (temperatur och luftfuktighet), en BH1750 ljussensor och en standard JUNG-kontakt (du kan antagligen använda andra, som Gira , Berker, etc. Jag bara trög vad som fanns till hands). Den totala kostnaden är cirka $15.

PCB är designad av Eagle. Källor. Beställd från ITEADStudio var den välgjord (förutom siden, inskriptionerna blev så som så).



Kanske är typsnittet för litet och tunt. Såg bra ut på gerberan.



Under monteringsprocessen upptäcktes några mindre olägenheter, något kunde förbättras, men generellt sett är brädan ganska användbar.

Idén till detta projekt kom upp och fascinerade mig under min semester.

Tanken var ungefär så här: "Det skulle vara coolt att ha en robotarm som kunde styras av min egen!". Och efter en tid började jag utveckla och implementera detta projekt. Hoppas du njuter!

Huvudkomponenterna i projektet är handsken och själva robotarmen. Arduino användes som styrenhet. Rörelsen av robotarmen tillhandahålls av servomotorer. Handsken är utrustad med böjningssensorer: variabla motstånd som ändrar deras motstånd mot böjning. De är anslutna till ena sidan av spänningsdelaren och fasta motstånd. Arduino läser av spänningsändringen när sensorerna böjs och skickar signalen till servomotorerna som roterar proportionellt. En video av arbetsprojektet finns nedan.

Armdesignen är hämtad från InMoov-projektet med öppen källkod. På projektsidan kan du ladda ner 3-D-modeller av alla noder och skriva ut dem på en 3-D-skrivare.

Nedan finns alla steg för att implementera din egen handskstyrda robotarm.

Nödvändigt material

För projektet behöver du:

Allt! Du kan starta ditt robotarmprojekt!

Skriver ut en hand

Handen är en del av ett öppen källkodsprojekt som heter InMoov. Det här är en robot som skrivs ut på en 3D-skrivare. Handen är bara en separat enhet av den övergripande designen. Ladda ner från den här sidan och skriv ut följande detaljer:

Auriculaire3.stl

WristsmallV3.stl

För säkerhets skull bifogar jag en klickbar lista med delar, eftersom några av dem har tagits bort från projektsidan.

RobCableFrontV1.stl

RobRingV3.stl (jag var tvungen att göra ytterligare hål i den här delen för att passa mina servon)

RobCableBackV2.stl

RobServoBedV4.stl

(Detta är två "mantlade" delar - de är inte nödvändiga när det gäller strukturell styvhet och dess funktion)


Totalt tog det cirka 13-15 timmar att skriva ut. Beror på utskriftskvalitet. Jag använde MakerBot Replicator 2X. Jag rekommenderar att du skriver ut fingerdetaljer på standard eller hög upplösning för att undvika oönskad friktion i strukturen.


Ansluter böjsensorer till Arduino

För att koppla böjsensorerna till Arduino måste vi inkludera en spänningsdelare i kretsen. Böjsensorer är i huvudsak ett variabelt motstånd. När den används tillsammans med ett fast motstånd kan skillnaden i spänning mellan de två motstånden övervakas. Du kan spåra skillnaden med Arduino analoga stift. Anslutningsschemat visas nedan (röd kontakt är spänning, svart är jord, blå är kontakten för själva signalen, som är ansluten till Arduinos analoga ingång).


Motstånden på bilden har en klassificering på 22 kOhm. Färgerna på ledningarna motsvarar färgerna som visas i kopplingsschemat.

Alla GND-stift från sensorerna är anslutna till en gemensam jord. Marken går till GND-stiftet på Arduino. +5V på Arduino är ansluten till det gemensamma strömstiftet från alla sensorer. Varje blå signalkontakt ansluts till en separat analog ingång på mikrokontrollern.




Jag monterade kretsen på ett litet kretskort. Det är lämpligt att välja skivans dimensioner mindre för att ytterligare fixera den på handsken. Du kan fixa vår monterade krets på handsken med hjälp av en elementär tråd och en nål. Var dessutom inte lat och använd omedelbart eltejp på nakna kontakter.




Installera sensorer på handsken

Vi kan börja installera sensorerna och vårt kretskort på själva handsken. Borra först ett litet hål i plasten på sensorerna. Hål borras på platser där avkänningselementet slutade. VIKTIG! Borra aldrig ett hål i känsligt material. Ta sedan på dig en handske. Gör märken med en penna eller penna på toppen av varje fog. Du kommer att använda dessa platser för att montera sensorerna. Böjningssensorer är fästa med en vanlig gänga. Sy fast sensorerna på handsken. Använd hålet du gjorde i ändarna av sensorn. På ställen där skarvarna är markerade "fångas" sensorerna av en gänga ovanpå. Allt detta visas mer i detalj på bilden nedan. Kretskortet sys fast på handsken på samma sätt som sensorer. Observera att för fingrarnas rörelse är det nödvändigt att lämna en viss marginal på ledarnas längd. Detta måste beaktas när du installerar vårt kretskort och väljer längden på kontakterna från det till sensorerna.






Jag kommer inte att gå in i detalj på detta steg. Det beskrivs i detalj på InMoov-webbplatsen (under "Assembly Sketches" och "Assembly Help"):

När du sätter ihop din hand, se till att noderna är korrekt installerade när det gäller orientering i rymden. Glöm inte att borra hål i robotarmens fingrar för 3 mm fästelement för att minska friktionen mellan lederna. Från utsidan fyllde jag bultarna med lim.


Skynda dig inte att installera fiskelinan. Kontrollera först servomotorernas funktion.

Servomotortest

Vid denna tidpunkt bör servon redan vara installerade på baksidan av din robotarm. För att ansluta servo till Arduino och strömförsörjning använde jag en liten breadboard. Anslut varje positiv servomotorstift (röd) till den ena skenan på brödbrädan och den negativa stiften (svart eller brun) till den andra skenan.

VIKTIG! Glöm inte att ansluta Arduino-stiftet till minusskenan: kom ihåg att alla jordstift måste kopplas ihop. VCC-stiftet kan anslutas till olika nätaggregat, men GND måste vara densamma.

Ladda upp programmet till Arduino (filen med programmet bifogas). Se till att anslutning av sensorer, servomotorer etc. Det var rätt. Ta på dig en handske och sätt på Arduino. Servomotorerna ska rotera beroende på vilket finger du rör. Om servon rör sig så fungerar allt!


Om du är en mer erfaren Arduino-användare och vet hur du kontrollerar de aktuella värdena från böjsensorerna kan du justera intervallet i programmet för att passa dina verkligheter. Jag antar att alla böjsensorer är ungefär likadana, men om så inte är fallet kommer kalibrering av sensorerna definitivt att hjälpa dig.

Om servon inte fungerar korrekt, se till att du kopplar dem korrekt (till exempel när jag arbetade med det här projektet glömde jag att ansluta GND-stiftet på Arduino till GND på strömförsörjningen och alla servon som vanligt I det här fallet kommer ingenting att fungera). Se till att allt löser sig innan du går vidare.

Lägga till en fiskelina

Att lägga till fiskelina är förmodligen den svåraste och mest ansvarsfulla delen av robotarmsprojektet. InMoov-webbplatsen har instruktioner för detta. Konceptet är enkelt, men att implementera det är inte så lätt i praktiken. Observera att denna del av projektet kräver fokus och tålamod. Den enda skillnaden mellan min version och InMoov-designen är användningen av lim. Tack vare detta kan vi få möjlighet till fler svampinställningar vid kalibrering av serv. För att göra detta räcker det att smälta limet och dra åt bultarna vi behöver. Även om designens tillförlitlighet förstås faller. I slutändan, efter den sista justeringen och kalibreringen, kan vi när som helst använda ett annat fixeringsalternativ.

För att kalibrera servon, vrid rotorerna så att robotarmens fingrar är på bordet. Anslut din Arduino och strömförsörjningen. Ställ in drivvipparna på ett sådant sätt att i armens helt "liggande" tillstånd är spänningen maximal.


Att förklara kalibreringsprocessen är ganska svårt. Dessutom passade inte instruktionen med InMoov till exempel mig. Det vill säga när du fäster måste du visa fantasi och anpassa dig till dina verkligheter - såsom: typen av gungstolar, typen av fiskelina eller tråd, design- och monteringsfel, installationsavståndet för servomotorer i förhållande till lederna på robotarm.

Lyckligtvis är detta den sista etappen i projektet!

Efterord


Trots det faktum att det finns mycket mer komplexa och exakta (och dyra också) konstruktioner, är ovanstående projekt mycket intressant och har utmärkt potential för praktisk tillämpning. Sådana mönster bör inte användas i direkt kontakt med en person, på grund av bristen på exakthet i själva konceptet. Men industri, medicin osv. för uppgifter utan ökade krav på noggrannhet i ledrörelser är vår robotarm ganska lämplig. Tja, ur synvinkeln av en ytterligare "uppgradering" av handen - här är fältet i allmänhet oplogat. Börjar från trådlös kontroll, slutar med byte av enheter, dimensioner, utveckling av ytterligare frihetsgrader.

Det är därför jag älskar Arduino: du kan mycket snabbt och för lite pengar bygga en mock-up eller prototyp av en enhet som inte bara är lätt att programmera, utan också kan utföra riktigt intressanta uppgifter.

Lämna dina kommentarer, frågor och dela personlig erfarenhet Nedan. I diskussionen föds ofta nya idéer och projekt!

Jag har länge velat automatisera processen att torka badrummet efter badet. Jag hade många recensioner om ämnet luftfuktighet. Jag bestämde mig för att implementera (så att säga) en av metoderna för att hantera det. Förresten, på vintern torkar vi våra kläder i badrummet. Det räcker med att slå på avgasfläkten. Men att övervaka fläkten är inte alltid praktiskt. Så jag bestämde mig för att sätta automatisering på det här fallet. Den första implementeringsupplevelsen misslyckades. Recensionen var. Men jag gav inte upp...

När jag flyttade in i en ny lägenhet satte jag nästan direkt en fläkt med backventil i huven. En fläkt behövs för att torka badrummet efter badet. En backventil behövs för att förhindra att främmande lukter från grannar kommer in i lägenheten (när fläkten är tyst). Det händer. Alla ventilationskanaler är individuella, men cement sparades tydligen vid läggning. Förmodligen passerar lukten genom springorna.
Fläktar Jag har en mängd olika alternativ. Det finns enkla sådana, det finns med en timer (tidsintervalljustering), som på bilden.


Det är vad jag har använt till denna dag.
I just det här fallet (vem som inte har en fläkt med timer) kan allt göras på mjukvarunivå.
Eftersom jag bor i en lägenhet "myrstack" är det enda stället att torka kläder på balkongen. I badrummet kan det blekna. Torkning kräver antingen låg luftfuktighet eller luftcirkulation. Att uppfylla båda villkoren är det bästa alternativet. Fläkten skulle lösa detta problem. Till en början var det precis vad han gjorde. Det viktigaste är att inte glömma att stänga av den. Medan fläkten är igång är det nödvändigt att öppna fönstret något. Behöver du påminna om skolproblemet med en pool och två rör? För att luften ska gå in i huven är det nödvändigt att den kommer in i lägenheten någonstans ifrån. Vem som har träfönster, inte plast, kommer inte att vara några problem. Tillräckligt med sprickor. Men med plast förvandlas lägenheten till ett terrarium.
Det var då jag började fundera på att automatisera processen. Det var därför jag beställde sensorerna.
Jag har redan delat med mig av den sorgliga upplevelsen av att genomföra min idé. Här är den modulen. Det kan inte fungera i PRINCIP. Men ingenting kommer att finnas kvar. Och han kommer att användas.


(Strömförsörjningsspänning: 5V. Maximal belastning: 10A 250V AC och 10A 30V DC). Jag använder den som relälåda. För en vanlig fläkt räcker detta.
Jag ritade också ett diagram över modulen. Det kommer inte att finnas några anslutningsproblem.


Den röda lysdioden indikerar närvaron av matningsspänning. Grön - reläaktivering. Jag ersatte den värdelösa sensorn (fuktsensor, den finns inte längre) med ett 10kΩ motstånd. Och tillförde också mer motstånd. Det kommer att gå till det "smarta" blocket. Båda markerade i rött. Allt detta bör eliminera eventuella missförstånd. När allt kommer omkring drivs reläenheten med en spänning på 5V, och den "smarta" enheten drivs av 3,3V. Reläblocket styrs av en låg nivå. En hög nivå stänger av reläet (fläkten). Den fasta programvaran tar hänsyn till detta.
Kretsen är baserad på en komparator på LM393. Trimmermotståndet designades ursprungligen för att ställa in tröskeln för fuktighetsomkopplaren. Den kan behöva roteras lite.
Kan användas enkla block relä. De är till salu. Jag kommer att använda det som är kvar efter det senaste misslyckade försöket.
Det är dags att se i vilken form AM2302-sensorerna (DHT22) kom. Jag beställde tre på en gång. Jag tror inte att det är begränsat till badrummet. Det finns många idéer i mitt huvud. Var skulle bara hitta tid och lust för deras genomförande.


Sensorerna förseglades i antistatiska påsar. Allt i sinnet. Lödningen är korrekt. Anspråk för utseende Jag har inte. Även brädan är tvättad.


Så här står det på butikssidan:

AM2302 Humicap digital temperatur- och fuktighetsmodul är en digital utsignal som innehåller en kalibrerad temperatur- och fuktighetssensor. Den använder en dedikerad digital moduler fånga teknologi och temperatur- och fuktighetssensorteknik för att säkerställa att produkter med hög tillförlitlighet och utmärkt långsiktig stabilitet. Sensorn inkluderar ett kapacitivt fuktavkännande element och en högprecisionstemperaturmätningsanordning, och med en högpresterande 8-bitars mikrokontroller ansluten. Därför har produkten utmärkt kvalitet, snabb respons, anti-interferensförmåga, höga kostnader och andra fördelar. Ultraliten storlek, låg strömförbrukning, signalöverföringsavstånd upp till 20 meter. Gör det till det bästa valet för alla typer av applikationer och även de mest krävande applikationerna.
Specifikation:
Mått: 40 x 23 mm
Vikt: 4g
Spänning: 5V
Port: digital tvåvägs enkelbuss
Temperaturområde: -40-80 °C ± 0,5 °C
Luftfuktighet: 20-90%RH±2%RH
Plattform: Arduino, SCM
Förpackningen innehåller:
3 x sensormodul
Åtminstone på delarnas styrelse. Sensorer är ej separerbara, gick inte sönder.
Det är dags att börja jobba. En del av det jag kommer att använda har jag redan visat. Jag behöver också en 5V strömförsörjning. Jag kommer att göra den från en gammal (redan onödig) laddare till telefonen.

Denna laddare har ingen USB-port. Tja, det är väldigt gammalt (jag rekommenderar att du använder nyare, de har 5V-utgång). Därför är utgången 7V. Jag var tvungen att löda MC-stabilisatorn KREN5. Det är inget svårt i detta. Vem är vän med en lödkolv, han vet. Och vem är inte vänner, förgäves läser ämnet.


Var inte för rädd, jag gjorde en provisorisk. Efter att ha felsökt mekanismen kommer allt att se anständigt ut. Jag kanske byter laddare. Allt beror på resultatet som jag kommer i mål med. Jag kommer att installera det lokalt (permanent) efter en "omfattande testning". Du kan behöva använda vinter-/sommarversionen programvara. Luftens temperatur- och luftfuktighetsegenskaper på vintern/sommaren är olika.
Jag behöver också WIFI-modulen från den tidigare recensionen.


Användbar omvandlarkabel (USB Till RS232 TTL UART) för WIFI programmering modul.


Blockschemat för min idé ser enkelt ut.


Men visst finns det nyanser.
Det återstår att göra ett program för att styra fläkten.
Flera villkor:
1. Fläkten startar när luftfuktigheten når mer än 68 %.
2. Arbetstid (timer) 5 minuter.
3. Överföra temperatur- och luftfuktighetsdata via WIFI (för säkerhets skull).
4. Lägesindikering via WIFI.
Om du stannar vid villkor nummer 1 räcker det med den enklaste Arduino. Men jag har bara ett Arduino-kort, och det finns tre WIFI-moduler :)
För mig personligen är det svåraste stället att förbereda programmet, lite (milt uttryckt) är inte mitt ämne. Men livet flödar och bär i sin gång allt fler massor av människor. Jag kommer att förstå de stora vidderna av Arduino med exemplet med en DHT22 fuktighetssensor och en WIFI-modul. Men om jag lyckades, då kan du också.
Först lite information för dummies som mig.
Arduino IDE-programmet saknas i inställningarna för de kort som jag kommer att använda. Till exempel behöver ESP8266 läggas till.

Lägger till komponenter på exemplet med ESP8266.

Först och främst laddade jag ner och installerade Arduino IDE på min dator. Sedan kör jag programmet.
Arkiv→ Inställningar→ Infoga länk i tillägg. länkar → klicka på OK. Länk:



Detta kräver en internetanslutning. Nödvändigtvis!
Sedan går jag till styrelsechefen.
Verktyg→Styrelse:...→Styrelsechef.


Hitta min modul jag väljer senaste versionen. Jag klickar på installera.


Det nedladdade Arduino IDE-programmet saknar också bibliotek för sensorer. Till exempel måste DHT22-biblioteket också läggas till.

Ansluta biblioteket med hjälp av DHT22-sensorn som exempel.

Först laddar jag ner ett arkiv som DHT.zip från Internet. Att hitta är inget problem.
Sen springer jag Arduino program ID.
Skiss→ Inkludera bibliotek→ Lägg till zip-bibliotek.


En flik som denna visas.


Ange lagringsplats...Öppen.
Biblioteket är anslutet.


Det finns lite kvar att göra :)
Kopplingsschemat för fuktgivaren kan variera. Min kom som en modul med tre stift och motstånd redan installerade på kortet.

Och slutligen fylla skissen.

Skissfyllning.

Jag öppnar den färdiga skissen. I mitt fall, "WiFi-DHT22_AleksPoroshin68.ino.


Arduino IDE startar automatiskt.
Sedan ansluter jag programmeraren, går till verktygen och ansluter Com-porten. Den som den är ansluten till är markerad. Jag kommer att aktivera den. Det finns tre av dem på min netbook: dessa är com6, com8 och com10.


Jag lär mig firmware. Du kan ändra åtkomstnamn och lösenord.

Jag klickar på nedladdningsknappen.


Skissen håller på att sammanställas. Tillräckligt länge.


Vid denna tidpunkt måste du trycka på återställning på sammansatt krets modul.

Samtidigt är GPIO 00 på noll.
Här är själva skissen:
#omfatta #omfatta #omfatta #omfatta #inkludera "DHT.h" #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); float dhtTemp = NAN; float dht Fuktighet = NAN; int ledPin = 12; //GPIO 12 /* Ställ in dessa till dina önskade referenser. */ const char *ssid = "AleksPoroshin"; const char *lösenord = "12345678"; ESP8266WebServer server(80); /* Bara ett litet testmeddelande. Gå till http://192.168.4.1 i en webbläsare * ansluten till denna åtkomstpunkt för att se den. */ void handleRoot() ( String s = "\r\n ESP201"; s += " "; s += " "; //s += "Status - Åtgärder - Konfig"; s += "

ESP 201-modul

"; s += " "; if (isnan(dhtTemp)) s += " Temperatur: Läsfel"; annars ( s += " Temperatur: "; s += dhtTemp; s += " C"; ) if ( isnan(dhtHumidity)) s += " Fuktighet: Läsfel"; else ( s += " Fuktighet: "; s += dhtHumidity; s += " %"; ) if(digitalRead(ledPin) == HÖG) s + = "Avgas: Av"; else s += "Avgas: På"; s += ""; server.send(200, "text/html", s); ) void setup() ( delay(1000); Serial.begin(115200); Serial.println(); Serial.print("Konfigurerar åtkomstpunkt. .."); /* Du kan ta bort lösenordsparametern om du vill att AP ska öppnas. */ WiFi.softAP(ssid, lösenord); IPAddress myIP = WiFi.softAPIP(); Serial.print("AP IP-adress: "); Seriell println(myIP); server.on("/", handleRoot); server.begin(); Serial.println("HTTP-server startade"); dht.begin(); Serial.println("DHT22 init framgång"); pinMode(ledPin, OUTPUT); ) void loop() ( getDHT(); server.handleClient(); ) void getDHT() ( dhtTemp = dht.readTemperature(); dhtHumidity = dht.readHumidity()+5; if (dhtHumidity< 68) { digitalWrite(ledPin, HIGH); Serial.println("ledPin HIGH"); } else { digitalWrite(ledPin, LOW); Serial.println("ledPin LOW"); } }
Skäl inte för hårt. Jag bara lär mig.
Efter att ha laddat upp skissen för att bekräfta programmeringen ansluter jag GPIO:n till +3,3V. Sedan stänger jag av den. Den fasta programvaran är laddad.


Jag gör en layout på en brödtavla. Jag kollar allt. Arbetar. Men allt är inte så bra som det borde vara. I det intervall jag behöver underskattar kinesiska sensorer avläsningarna med 5-6%.


Jag har mer förtroende för den tyska skogsmaskinen. Ja, och priset är flera tiotals gånger högre. Och viktigast av allt, han klarade provet.
Införde en ändring av programmet (tillagda 5 enheter). Jag håller med om att detta är fel. Men i intervallet 40-70% syns det exakt. Det är mer korrekt att ta bort egenskapen och fixa biblioteket. Jag är inte redo för detta :). Resten av sensorerna ljög också. Även om alla visade ungefär likadant.

Så här ser webbsidan ut om den ansluter till min WIFI-modul:


Lösenord och utseende anges i skissen.
Omkoppling sker vid 68 % luftfuktighet. Allt är klart.


Men det finns en varning. Och det går inte att ignorera. Vid gränsen till 68 % luftfuktighet kan fläkten slås på och stängas av. För att lösa detta problem behöver du en timer. Jag har en fläkt med timer. De där. inga problem. Alla som har en vanlig fläkt måste lösa detta problem på mjukvarunivå.
Min ytterligare uppgift är att montera allt detta enligt schemat, men inte längre på en breadboard-modell och testa det i en månad. Alla ändringar kan göras under drift. Vad man ska göra och var man ska infoga, jag skrev allt.
Några ord om installationen av sensorn. Jag rekommenderar inte att placera den i ventilen. Anledningen är enkel. Även i den renaste och mest välskötta lägenheten finns damm, som när fläkten slås på rusar dit (till veterinärkanalen). Men för ett år sedan tog jag ut fläkten och rengjorde den ordentligt.


För att inte byta sensorerna ofta på grund av deras skada rekommenderar jag att du hittar en mer lämplig plats för dem, någonstans i närheten. Dessutom kan du slå in den med en fiberduk eller något liknande för att skydda den från damm. Och du kommer att bli glad.
Jag glömde helt bort att säga att om man själv vill ställa in "koefficienterna" för fuktkontroll så måste man vara åtminstone lite i ämnet. Om du inte har sådana här apparater hemma...


Utan dem kommer det att vara mycket svårt för dig att göra något i detta ämne.
Det är allt.
Hur man korrekt gör sig av med informationen från min recension, bestämmer var och en själv. Om något är oklart, ställ frågor. Hoppas det hjälpte åtminstone någon. Kanske någon vill hjälpa mig. Jag kommer att vara väldigt tacksam.
Lycka till allihopa!
Funktionskontroll:


Fortsättning följer…

Produkten tillhandahålls för att skriva en recension av butiken. Granskningen publiceras i enlighet med paragraf 18 i webbplatsens regler.

Jag planerar att köpa +51 Lägg till i favoriter Gillade recensionen +26 +65