Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Dla naszego projektu w Przemyśle 4.0 postanowiliśmy zrobić mikser do cukierków. Ideą jest to, że mamy panel użytkownika, wykonany w Node-Red, gdzie klienci mogą zamówić swoje cukierki, a następnie arduino zrealizuje zamówienie i wymiesza cukierki do miski. Następnie mamy bazę danych w SQL, w której przechowujemy statystyki dotyczące najczęściej zamawianych rodzajów cukierków i zamawianych ilości.
Pierwszy projekt zakładał stworzenie miksera na 8 rodzajów cukierków oraz silnika do otwierania i zamykania pojemników na cukierki. Mieliśmy pewne problemy projektowe z pojemnikami, cukierki ciągle się zacinały, więc postanowiliśmy odejść od silników i użyć kilku diod LED, aby wskazać, że silniki działają.
Krok 1: Projekt
Nasz model składa się z 4 pojemników na cukierki, w których przesuwane wieczko służy do otwierania i zamykania cukierków. Pod pojemnikami mamy zsyp do miski. Miska znajduje się wtedy na szczycie ogniwa obciążnikowego.
Projekt w Node-Red jest podzielony na 2 sekcje, Klient i Administracja.
W sekcji klienta mamy 5 przycisków, 4 z nich służy do zamówienia cukierka, a 1 służy do akceptacji zakupu. Za pomocą przycisku zakupu klient może zobaczyć wagę cukierka i oczekiwaną cenę, a po naciśnięciu przycisku zakupu pojawi się waga i cena w zakupionych.
W sekcji Administracja możemy zobaczyć jak zapełnione są nasze pojemniki oraz całkowitą ilość zakupionych cukierków.
W SQL możemy zobaczyć statystyki dotyczące wyboru cukierków oraz całkowitą wagę i dochód z zakupów.
Krok 2: Curcuit Arduino
Na płytce arduino podłączyliśmy 4 przyciski, 4 dwukolorowe diody LED oraz 1 ogniwo obciążnikowe z modułem HX711.
Przyciski służą do naciskania przez operatora cukierków, gdy pojemniki zostały napełnione cukierkami.
Dwukolorowa dioda LED używa koloru czerwonego i zielonego. Kolor czerwony oznacza, że pojemnik jest pusty i należy go napełnić, a kolor zielony oznacza, jaki rodzaj cukierka został wybrany i możemy go otworzyć. Ta część miała być zautomatyzowana, ale z powodu problemów projektowych postanowiliśmy wykonać ją ręcznie.
Krok 3: Lista We/Wy
Z ogniwa obciążnikowego otrzymujemy 4 kable, które łączymy z modułem HX711
Czerwony do E+
Biały do E-
Zielony do A-
Żółty do A+
HX711 jest następnie podłączony do płyty arduino za pomocą
GND do ziemi
ID do pinu 3
SCK do pinu 2
VCC do 5V
Nasze przyciski są podłączone do pinów 44, 46, 48 i 50, zielona dioda LED jest podłączona do pinów 30, 32, 34 i 36, czerwona dioda LED jest podłączona do pinów 31, 33, 35 i 37.
Krok 4: Kodeks
W kodzie arduino zaczynamy od zdefiniowania naszych zmiennych i ustawienia naszych diod LED i przycisków na niektórych pinach.
Ustawiamy również zmienną do odbierania pliku z Node-Red.
Po naciśnięciu naszych przycisków na arduino wysyłamy status 5 do węzła Node-red, wskazując, że pojemniki zostały napełnione i jesteśmy gotowi do rozprowadzenia cukierków z tego pojemnika.
Kiedy naciskamy przycisk po stronie klienta Node-Red, wysyłamy numer 1-4 do arduino. Arduino następnie sprawdza numer i otwiera kontener powiązany z tym numerem. Odbywa się to po włączeniu zielonej diody LED na 5 sekund. Jednocześnie od stanu pojemnika odejmujemy 1, aby wskazać, że wyjęto z niego trochę cukierków.
Gdy stan pojemnika osiągnie 0, zaświeci się czerwona dioda sygnalizująca konieczność ponownego napełnienia pojemnika.
Podczas zakupu numer 5 zostaje wysłany do arduino, a następnie oblicza cenę i wysyła cenę i wagę z powrotem do węzła-red i SQL.
Ostatnia część kodu arduino wysyła status i wagę/cenę z powrotem do notatki-czerwonej.
Krok 5: Węzeł-czerwony
Node Red wykonuje wszystkie połączenia między arduino a bazą danych SQL.
Dane pochodzące z ekranu Customer w Node-red trafiają do arduino, gdzie są przetwarzane. Przetworzone dane wracają następnie do węzła czerwonego i ekranu Administracja.
Jeśli przyjmiemy przycisk 1 jako excampel, mamy go połączony z liniami zarówno do arudino przez com4, jak i do serwera SQL. Kiedy następnie otworzymy przycisk, możemy zobaczyć, że informacje wysyłane do arduino to Payload, a temat jest wysyłany do SQL.
Używamy funkcji w Node-Red do wysyłania informacji z arduino do SQL. W tej funkcji potrzebujemy kodu Java, aby powiedzieć Node-red, co ma zrobić z kodem.
Kod funkcji:
var data = msg.payload.split(", ");var Vægt = data[13];
var Kroner = dane[14];
var out = "AKTUALIZUJ miksowanie SET Vægt= '"+Vægt+"', Kroner = '"+Kroner+"' WHERE id=1";
msg.topic = out;
wiadomość zwrotna;
W kodzie tutaj otrzymujemy ciąg danych z arduino i jest on dzielony znakiem „,” między liczbami.
Dla tej funkcji potrzebujemy liczb z 13 i 14 miejsca i umieszczamy je w zmiennych "Vægt i Kroner". Następnie pobieramy kod, który ma być wykonany w SQL i umieszczamy w zmiennej "out" i wysyłamy go jako temat do SQL.
Krok 6: SQL
W bazie danych SQL przechowujemy statystyki dotyczące liczby zamówień każdego rodzaju cukierków w ciągu dnia oraz wagi i ceny cukierka.
Przycisk statestik pochodzi z licznika podłączonego do każdego przycisku w Node-Red, a waga i cena pochodzą z arduino przez funkcję w Node-Red.
Krok 7: Wideo
Na filmie pokazujemy, że w panelu administracyjnym zapełnia się pojemnik, a następnie zamawia się cukierki, klikając przyciski w panelu klienta. Jednocześnie na panelu klienta wyświetlana jest waga i szacunkowy koszt cukierka.
Gdy klient jest zadowolony ze swojej mieszanki cukierków, naciska przycisk zakupu, a pod przyciskiem wyświetla się rzeczywista waga i koszt. To następnie uzupełnia część klienta, a następnie waga i koszt są przenoszone do panelu administratora i naszej bazy danych w sql.
W bazie danych śledzimy następnie, ile razy zamówiono surowy cukierek, ile ważyło cukierka i ile go kosztowało.
Krok 8: Ocena
To był dobry projekt, w którym musieliśmy pracować z 3 programami i sprawić, by współdziałały ze sobą. Na początku niektóre funkcje były wykonywane w Node-Red, a niektóre w Arduino, ale aby lepiej mieć ogólny przegląd, zdecydowaliśmy się umieścić wszystkie funkcje w arduino, a następnie umieścić Node-Red dla wszystkich elementów wizualnych.
Krok 9: Rozszerz projekt
Naszym pomysłem było otwarcie jednego z pojemników za pomocą silnika, więc następnym krokiem byłoby wykonanie projektu, w którym cukierki nie będą się utknąć.