Inhoudsopgave:
- Stap 1: Hoe werkt het?
- Stap 2: Een doos maken
- Stap 3: Arduino toevoegen
- Stap 4: Arduino-code
- Stap 5: Knooppunt-RED
- Stap 6: Database
- Stap 7: Evaluatie
Video: UCL - IIoT - Boerenmarkt - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
De Boerenmarkt portemonnee kan worden gebruikt op beurzen, boerenmarkten of andere bijeenkomsten waar goederen worden verkocht.
De Farmersmarket-portemonnee is een muntentelmachine, gemaakt om snel de totale inhoud van een doos met munten te kunnen zien. De boerenmarktportemonnee zal het totaal ook uploaden naar een server die is geprogrammeerd via Node-red.
Het is gemaakt door drie studenten van University College Lillebælt in Denemarken. Sinds ons vorige project, De muntensorteerder, hebben we veel nieuwe dingen geleerd die we in de build zullen opnemen. We hebben ervoor gekozen om af te zien van het sorteren van de munten en in plaats daarvan de machine ze te laten tellen en ze in een gemeenschappelijke muntautomaat te deponeren.
De portemonnee bestaat uit vijf schuiven of vakjes, één voor elk type munt. Wanneer een munt in de juiste gleuf wordt gestoken, valt deze naar beneden en passeert een reflector, die een HOOG signaal naar de arduino stuurt. We zullen het signaal gebruiken om de muntwaarde toe te voegen aan het getelde totaal, dit op het externe display weer te geven en het nieuwe totaal naar een server te sturen. Zodra de server het totaal heeft ontvangen, wordt een online gevonden gebruikersinterface bijgewerkt met het nieuwe totaal.
BeschrijvingEen doos met vijf muntvakken die leiden naar vijf afzonderlijke, interne schuiven, één voor elk type munt: 1kr, 2kr, 5kr, 10kr, 20kr
Een LCD-scherm dat het totale contante geld op de doos weergeeft.
De bovenkant van de doos is beveiligd met luiken. Als u de bovenkant optilt, wordt de Arduino-behuizing verwijderd, samen met de bovenkant met het LCD-scherm, muntgleuven, reflectoren enz., Waardoor alleen de doos overblijft waarin de munt wordt gestort.
Componenten en materialen - Gereedschap en uitrusting voor het maken van een doos (kan karton of hout zijn)
- Arduino Mega 2560
- 30 jumperdraden
- 5 x LDR "Lichtsensor"
- 5 x 220 ohm weerstanden
- 5 x 10k ohm weerstanden
- 5 x witte LED's
- LCD 16x02-module
- Munten
Coderen in Arduino
Zoals eerder vermeld, komt dit project voort uit een eerder project dat we ongeveer acht maanden geleden hebben gemaakt (https://www.instructables.com/id/Coin-Sorting-Machine/). Hierdoor zijn we in staat om een groot deel van de code in arduino opnieuw te gebruiken, hoewel er enkele kleinere wijzigingen zijn. Zoals je zult zien, is de code vrij eenvoudig, wat iedereen met een beetje ervaring met Arduino zou moeten kunnen begrijpen.
Node-RED Node-RED is de tool die we zullen gebruiken om de gegevens van de arduino en naar uw computer te krijgen, en verder naar het internet, als dat in uw belang is. Een andere belangrijke reden om Node-RED te gebruiken, is de mogelijkheid om gegevens van Arduino te presenteren op een manier die gemakkelijk te begrijpen is, voor mensen die geen programmeer-/codeerervaring hebben met Arduino en Node-RED.
Database Met behulp van Wampserver kunnen we onze waarden van Arduino opslaan in een database. Met Wampserver is het mogelijk om uw eigen database aan te maken en te wisselen zoals u wilt, met behulp van phpMyAdmin om MySQL te beheren. In ons geval hebben we zes waarden die we moeten opslaan (één voor elke soort munt en één voor het resultaat), en daarom hebben we zes kolommen gemaakt waarin elke waarde kan worden opgeslagen.
Stap 1: Hoe werkt het?
In een meer gedetailleerd landhuis zullen we nu uitleggen hoe ons systeem werkt.
Zoals je in het stroomdiagram zult zien, is het eerste dat het proces instelt, wanneer een munt in de juiste gleuf wordt gestoken.
De LDR-lichtsensor zal de verminderde hoeveelheid licht opmerken wanneer de munt de sensor passeert, wat het Arduino-programma zal activeren om de variabele "Antal" (aantal) met één te verhogen, omdat er nu één munt in de machine zit. Tegelijkertijd wordt de waarde van de munt opgeteld bij de variabele "resultaat". "resultaat" wordt weergegeven op het LCD-scherm met zijn nieuwe waarde.
De nieuwe waarden van "Antal" en "result" worden naar Node-RED gestuurd, waarin het dashboard zichzelf zal updaten met deze waarden. Eindelijk stuurt Node-RED de waarden door naar onze database.
En herhaal.
Stap 2: Een doos maken
Deze keer hebben we Illustrator gebruikt om onze doos te ontwerpen. Met een lasersnijder zijn we geweest om deze doos precies te maken, en de functies die nodig zijn voor ons project. Uiteindelijk is het aan jou om te beslissen hoe je de perfecte doos voor jouw project maakt.
Stap 3: Arduino toevoegen
Het is tijd om de Arduino in de doos te implementeren. Dit kan best lastig zijn, omdat de sensor zich onvoorspelbaar kan gedragen. (Nieuw) In deze stap hebben we de sensor die we gebruiken veranderd vanwege de eerder genoemde onbetrouwbaarheid van deze sensoren (tcrt 5000). In plaats daarvan hebben we gekozen voor een eenvoudigere LDR-sensor (lichtafhankelijke weerstand). De output van deze sensor is een analoge waarde, die verandert afhankelijk van de hoeveelheid licht die de sensor zelf bereikt.
Stap 4: Arduino-code
In deze stap leggen we onze focus op de software. De Arduino-code ziet er als volgt uit:
const int sensorPin1 = 3; //TCRT-5000 sensor die is aangesloten op pin nr. 2 int sensorState1 = 0; // Bevat de waarde van de sensor (Hoog/Laag)
int Antal10 = 0; // Variabele die het aantal munten opslaat dat in de machine is gestopt int
Resultaat = 0; // Variabele die de gecombineerde waarde opslaat van alle munten die in de machine zijn gestopt
void setup() { Serial.begin(9600); }
void loop () {int sensorState1 = analogRead (sensorPin1); //Lees de status van de sensor
if (540 < sensorState1 < 620) { // Wanneer de uitgangswaarde van de sensoren tussen 540 en 620 ligt
Antal10 += 10; // - er gaat een munt door de sensor, die wat licht blokkeert
resultaat += 10; // - en de sensor zal een lager lichtniveau lezen}
Serial.print(Resultaat);
Serieel.print(", "); // Scheidt de variabelen met een komma, wat nodig is bij het lezen van de waarden van variabelen in Node-RED
Serieel.println(Antal10); // - en ook nodig wanneer deze waarden in de database moeten worden opgeslagen
vertraging (100); }
Deze code is slechts voor één sensor geschreven, om het lezen gemakkelijker te maken.
Volledige code:
Stap 5: Knooppunt-RED
Wanneer de Arduino-code werkt zoals het hoort, kun je Node-RED programmeren, dat gaat fungeren als de middelste link tussen Arduino en de database en als een visuele weergave van hoe de machine presteert. Het programmeren van Node-RED bestaat uit het gebruiken van nodes met verschillende functies, en het invoeren van de juiste parameters om deze nodes goed te laten werken.
Wanneer onze gegevens in Node-RED aankomen, worden deze naar twee verschillende splitfuncties verzonden. Een van deze functies stuurt de nu gesplitste gegevens door naar de database. De andere stuurt de verschillende gegevenswaarden door naar elk van hun dashboardknooppunten, die nu zichtbaar moeten zijn op het dashboard.
Zoals eerder vermeld hebben we zes waarden die behandeld moeten worden. Met de dashboardmogelijkheden van Node-Red kunnen we deze waarden weergeven, zoals je kunt zien in de afbeelding rechts bovenaan stap 3.
Knooppunt-RED-code:
Stap 6: Database
Nu gaan we een database gebruiken om de waarden op te slaan. Met Wampserver is het mogelijk om phpMyAdmin te gebruiken om MySQL te beheren en uw eigen database te maken, met behulp van een lokale server die aan uw specifieke behoeften voldoet.
Als je een database (farmers_market) helemaal opnieuw maakt, moet je eerst een tabel maken (mont_tabel), waarin je je waarden opslaat. Afhankelijk van hoeveel gegevens je hebt en hoe je deze moet bestellen, kun je zoveel tabellen maken als je nodig hebt. Omdat we zes verschillende waarden moeten opslaan, en daarom hadden we zes kolommen nodig, één voor elke waarde, in onze tabel. In de bovenstaande afbeelding kunt u onze database zien.
Wanneer onze gegevens in Node-RED aankomen, worden ze gesplitst door een split-functie, en de nu-gegevens worden doorgestuurd naar de database.
Stap 7: Evaluatie
Allereerst willen we vermelden dat het maken van de doos van hout in plaats van karton de hele fysieke opstelling veel betrouwbaarder maakt, en we raden daarom aan dit te doen.
Het veranderen van de sensoren van een TCRT-5000 naar een eenvoudige LDR-lichtsensor gaf veel meer stabiliteit, wat betreft het vermogen van de sensoren om snel te lezen wanneer er een munt voorbijgaat. Bij het werken met een TCRT-5000 zijn er veel factoren waarmee rekening moet worden gehouden om de sensor te laten werken zoals u zou willen.
Door het systeem aan een database te koppelen en uw gegevens visueel weer te geven op een manier dat iedereen zonder enige voorkennis van dit project kan begrijpen wat er aan de hand is, lijkt het project meer waarde te geven.
Aanbevolen:
UCL - Embedded - Pick and Place: 4 stappen
UCL - Embedded - Pick and Place: deze instructable gaat over hoe een 2D pick-and-place-eenheid wordt gemaakt en hoe deze te coderen
UCL - Node-red verbinden met een Siemens PLC met KEPserver: 7 stappen
UCL - Node-red verbinden met een Siemens PLC met KEPserver: RequirementsNode-red: https://nodered.org/docs/getting-started/installationKEPserver: https://www.kepware.com/en-us/kepserverex-6 -6-release