- Nødvendige komponenter:
- E-mail-opsætning i Raspberry Pi til afsendelse af advarsels-mails:
- Kolbeopsætning i Raspberry Pi:
- HTML-kode til webside:
- Smart beholder ved hjælp af Raspberry Pi og vægtsensor
- Forklaring af kredsløb:
- Arbejdsforklaring:
Du har måske hørt om Smart Køleskab, som automatisk kan bestille de madvarer, der er ved at løbe tør for køleskab, så inspirerende, at vi her bygger en Raspberry Pi Smart Container ved hjælp af vejecelle og HX711 vægtsensor. Denne smarte container kan fortælle dig om sin status, som om den er fuld eller tom ved at sende en mail til dit e-mail-id. Vi kan også overvåge beholderens vægt i realtid ved hjælp af webbrowser, og det gør det til et IoT-projekt, hvor du kan overvåge din container fra hvor som helst ved hjælp af internet. Her opdateres vægten af containeren hvert 5. sekund i webbrowseren, denne varighed kan let ændres i HTML-kodefil. Vi har indstillet tærskelvægtsværdien på 300 gram for at sende e-mailen om, at “ Container er fuld ”, denne grænse kan også ændres. Tjek videoen i slutningen af denne vejledning.
Hvis du ikke er fortrolig med vejecelle- og HX711-modulet, skal du kontrollere vores tidligere projekter Raspberry Pi-baseret vægtfølsom automatisk port og Arduino-vægtmåling ved hjælp af vejecelle og HX711-modul.
Nødvendige komponenter:
Her bruger vi Raspberry Pi 3 Raspbian Jessie OS. Alle de grundlæggende hardware- og softwarekrav er tidligere diskuteret, du kan slå det op i Raspberry Pi Introduktion og Raspberry PI LED Blinker for at komme i gang, bortset fra at vi har brug for:
- Raspberry Pi (enhver model skal fungere)
- Vejecelle
- HX711 Vejecelleforstærkermodul
- 16x2 LCD
- Strømkilde eller strømbank
- Tilslutning af ledninger
- Brødbræt
- Møtrikbolte, ramme og bund
Her har vi fastgjort en træbase med vejecellen for stabilitet ved hjælp af møtrikker og bolte, som vist nedenfor. Lær mere om vejecelle og HX711 vægtsensormodul her.
E-mail-opsætning i Raspberry Pi til afsendelse af advarsels-mails:
For at sende mailen fra Raspberry Pi, som indeholder status som Container (fuld eller tom), skal vi installere en software. Her bruger vi ssmtp, som er en nem og god løsning til afsendelse af mail ved hjælp af kommandolinjen eller ved hjælp af Python Script. Vi skal installere to biblioteker til afsendelse af mails ved hjælp af SMTP:
Sudo apt-get install ssmtp sudo apt-get install mailutils
Efter installation af biblioteker skal brugeren åbne ssmtp.conf- filen og redigere denne konfigurationsfil som vist i billedet nedenfor og derefter gemme filen. For at gemme og afslutte filen skal du trykke på 'CTRL + x', derefter 'y' og derefter trykke på 'enter'.
sudo nano /etc/ssmtp/ssmtp.conf
root = YourEmailAddress mailhub = smtp.gmail.com: 587 hostname = raspberrypi AuthUser = YourEmailAddress AuthPass = YourEmailPassword FromLineOverride = YES UseSTARTTLS = YES UseTLS = YES
Vi kan også teste det ved at sende en testmail ved at udstede nedenstående kommando, du får mailen på den nævnte e-mail-adresse, hvis alt fungerer fint:
ekko "Hello saddam" - mail -s "Testing…" [email protected]
Nedenfor er snapshot af Alert Emails, som vi fik under vores test.
Kolbeopsætning i Raspberry Pi:
Her har vi skabt en webserver, der giver en måde at sende Vægt Værdi af containeren fra Raspberry Pi til netværket ved hjælp af Flask i en webbrowser. Flask giver os mulighed for at køre vores python-scripts gennem en webside, og vi kan sende og modtage data fra Raspberry Pi til webbrowser og omvendt. Flask er et mikrorammer til Python. Dette værktøj er Unicode-baseret med indbygget udviklingsserver og debugger, integreret enhedstestesupport, understøttelse af sikre cookies og det er let at bruge, disse ting gør det nyttigt for hobbyisten .
Installer en kolbesupportpakke i Raspberry Pi ved hjælp af den givne kommando:
$ pip installer kolbe
Derefter kan vi bruge kolben ved blot at importere den til vores program, som om vi har importeret følgende pakker med kolbe til dette projekt:
fra kolbeimport Kolbe, render_template, anmodning, jsonify
Du kan lære mere om programmeringen ved hjælp af Flask her, se også vores tidligere projekt, hvor vi har brugt Flask til at sende beskeden fra websiden til Raspberry Pi.
HTML-kode til webside:
Vi har også oprettet en webside ved hjælp af HTML-sprog til visning af vægt og alarmmeddelelse i webbrowseren. Vi har brugt et lille jQuery-script til at indlæse siden (ved at ringe / showvægt) hvert 5. sekund, så vi kan få vægtværdien i realtid. Nedenfor er HTML-koden til websiden inklusive jQuery:
Circuit Digest
Smart beholder ved hjælp af Raspberry Pi og vægtsensor
Beholderens vægt: 302 gram
(Opdatering hvert 5. sekund)Alert!!!
Containeren er fuld
E-mail sendt.
Brugeren skal kopiere og indsætte ovenstående HTML-kode i en eller anden teksteditor (notesblok) og gemme filen med.HTML-udvidelsen (web.html). Sæt derefter denne HTML-fil i mappen / templates med hensyn til din python-scriptplacering. Betyder, at du skal oprette en mappe ved navn skabeloner, hvor du har lagt din Python Code-fil til denne Raspberry Pi Smart-container, og derefter placere web.html-filen i denne skabelonmappe . Dette trin er vigtigt, ellers fungerer vores projekt ikke. Du kan åbne web.html-filen direkte ved at dobbeltklikke på den for at få output af HTML-kode, og du vil se websiden som vist nedenfor. Tjek yderligere hele processen i demonstrationsvideo i slutningen. Når vi er færdige med programmeringen og alt, kan vi bare køre Python-koden i Raspberry Pi og åbne IP_address_of_your_Pi: 5010 i webbrowser (som
Websiden viser også en ALERT-besked, når beholderens vægt overstiger 300 gram som nedenfor:
Du kan kontrollere IP-adressen på din Raspberry Pi ved hjælp af ifconfig- kommandoen:
ifconfig
Forklaring af kredsløb:
Forbindelser til denne IoT Smart Container er nemme og skematisk er angivet nedenfor. 16x2 LCD-ben RS, EN, d4, d5, d6 og d7 er forbundet med GPIO-pin nummer 18, 23, 24, 25, 8 og 7 i henholdsvis Raspberry Pi, og HX711-modulets DT- og SCK-pins er direkte forbundet med Raspberry Pi's GPIO pin 27 og 17. Vejecelleforbindelser med HX711-modulet er allerede forklaret tidligere og vises også i nedenstående kredsløbsdiagram.
Arbejdsforklaring:
Det er let at arbejde med denne Smart Container. I dette projekt har vi brugt Raspberry Pi 3 til at kontrollere hele processen. Vejecelle registrerer beholderens vægt og leverer en elektrisk analog spænding til HX711 belastningsforstærkermodul. HX711 er en 24 bit ADC, som forstærker og konverterer belastningscelleoutputtet til digital form. Derefter tilføres denne forstærkede værdi til Raspberry Pi. Nu beregner Raspberry Pi output fra HX711 og konverterer det til vægtværdien.
Derefter sammenlignes denne vægtværdi med den foruddefinerede tærskelværdi (300 gram) ved hjælp af Raspberry Pi og Python-kode. Hvis vægten af beholderen går ud over 300 gm, sender Raspberry Pi en e-mail om, at "Smart Container Alert…. Container Full". Og hvis vægten forbliver under 300 gm, sender Raspberry Pi e-mail med angivelse af "Smart Container Alert…. Container is Tom".
Vægten kan også overvåges ved hjælp af webbrowser, du skal bare åbne din Raspberry Pi IP-adresse med port 5010 som http://192.168.1.100:5010 (udskift IP-adresse med din adresse). Her har vi brugt Flask til at sende data fra Raspberry Pi til webside over netværket. Denne side opdateres automatisk hvert 5. sekund, og vi får opdaterede data, for dette har vi brugt jQuery som forklaret earliar.
En valgfri 16x2 LCD er også blevet brugt til at vise vægt- og statusmeddelelser.
Komplet Python-kode er angivet nedenfor, hvor vi har skrevet funktioner til kørsel af LCD, til aflæsning af vægtværdi fra vejecelle, til visning af data på websiden osv. Du kan forstå dem let, eller hvis du er nybegynder, så tjek vores tidligere Raspberry Pi Tutorials.