- Požadované komponenty:
- Nastavení e-mailu v Raspberry Pi pro odesílání výstražných e-mailů:
- Nastavení baňky v Raspberry Pi:
- HTML kód pro webovou stránku:
- Smart Container using Raspberry Pi and Weight Sensor
- Vysvětlení obvodu:
- Pracovní vysvětlení:
Možná jste slyšeli o Smart Refrigerator, který dokáže automaticky objednávat potraviny, které v chladničce docházejí, takže nás inspiruje, že zde vytváříme inteligentní kontejner Raspberry Pi pomocí snímače zatížení a snímače hmotnosti HX711. Tento inteligentní kontejner vám může poslat e-mail na vaše ID e-mailu informovat o jeho stavu, například zda je plný nebo prázdný. Můžeme také sledovat váhu kontejneru v reálném čase pomocí webového prohlížeče, a to z něj dělá projekt IoT, kde můžete svůj kontejner sledovat odkudkoli pomocí internetu. Zde bude váha kontejneru aktualizována každých 5 sekund ve webovém prohlížeči, tuto dobu lze snadno změnit v souboru kódu HTML. Nastavili jsme prahovou hodnotu hmotnosti 300 gramů, abychom o tom odeslali e-mail „ Kontejner je plný “, tento limit lze také změnit. Podívejte se na video na konci tohoto tutoriálu.
Pokud nejste obeznámeni s siloměrem a modulem HX711, podívejte se na naše předchozí projekty Raspberry Pi Weight Sensing Automatic Gate a Arduino Weight Measurement using Load Cell and HX711 Module.
Požadované komponenty:
Zde používáme Raspberry Pi 3 Raspbian Jessie OS. Všechny základní hardwarové a softwarové požadavky jsou již dříve diskutovány, můžete si je vyhledat v Raspberry Pi Introduction a Raspberry PI LED Blinking pro začátek, kromě toho, co potřebujeme:
- Raspberry Pi (jakýkoli model by měl fungovat)
- Zátěžová buňka
- Modul zesilovače snímače zatížení HX711
- 16x2 LCD
- Zdroj energie nebo napájecí banka
- Připojovací vodiče
- Nepájivá deska
- Maticové šrouby, rám a základna
Zde jsme pro stabilitu upevnili dřevěnou základnu se siloměrem pomocí matic a šroubů, jak je znázorněno níže. Další informace o siloměru a modulu snímače hmotnosti HX711 se dozvíte zde.
Nastavení e-mailu v Raspberry Pi pro odesílání výstražných e-mailů:
Pro odesílání e-mailů z Raspberry Pi, které obsahují stav kontejneru (plný nebo prázdný), je třeba nainstalovat software. Zde používáme ssmtp, což je snadné a dobré řešení pro odesílání pošty pomocí příkazového řádku nebo pomocí Python Script. Musíme si nainstalovat dvě knihovny pro odesílání e-mailů pomocí SMTP:
Sudo apt-get install ssmtp sudo apt-get install mailutils
Po instalaci knihoven musí uživatel otevřít soubor ssmtp.conf, upravit tento konfigurační soubor, jak je znázorněno na obrázku níže, a poté soubor uložit. Chcete-li soubor uložit a ukončit, stiskněte klávesy „CTRL + x“, poté „y“ a poté stiskněte „enter“.
sudo nano /etc/ssmtp/ssmtp.conf
root = YourEmailAddress mailhub = smtp.gmail.com: 587 hostname = raspberrypi AuthUser = YourEmailAddress AuthPass = YourEmailPassword FromLineOverride = ANO UseSTARTTLS = ANO UseTLS = ANO
Můžeme to také otestovat zasláním testovacího e-mailu vydáním níže uvedeného příkazu, pokud vše funguje, dostanete e-mail na uvedenou e-mailovou adresu:
echo "Hello saddam" - maily "Testování…" [email protected]
Níže je snímek výstražných e-mailů, které jsme dostali během testování.
Nastavení baňky v Raspberry Pi:
Zde jsme vytvořili webový server, který poskytuje způsob, jak odeslat váhovou hodnotu kontejneru z Raspberry Pi do sítě pomocí Flask ve webovém prohlížeči. Flask nám umožňuje spouštět naše pythonovské skripty přes webovou stránku a my můžeme odesílat a přijímat data z Raspberry Pi do webového prohlížeče a naopak. Flask je pro Python mikrorámcem. Tento nástroj je založen na Unicode s vestavěným vývojovým serverem a debuggerem, integrovanou podporou testování jednotek, podporou zabezpečených cookies a jeho snadným používáním, díky těmto věcem je to pro fandy užitečné .
Nainstalujte balíček podpory baňky do Raspberry Pi pomocí daného příkazu:
$ pip nainstalovat baňku
Potom můžeme použít baňku pouhým importem do našeho programu, jako bychom importovali následující balíčky baňky pro tento projekt:
z baňky import baňky, render_template, požadavek, jsonify
Můžete se dozvědět více o programování pomocí Flask zde, podívejte se také na náš předchozí projekt, kde jsme použili Flask k odeslání zprávy z webové stránky na Raspberry Pi.
HTML kód pro webovou stránku:
Také jsme vytvořili webovou stránku používající jazyk HTML pro zobrazení váhy a výstražné zprávy ve webovém prohlížeči. Použili jsme malý skript jQuery k načtení stránky (voláním / show_weight) každých 5 sekund, abychom mohli získat hodnotu hmotnosti v reálném čase. Níže je uveden HTML kód pro webovou stránku včetně jQuery:
obvod Digest
Smart Container using Raspberry Pi and Weight Sensor
Hmotnost kontejneru: 302 gramů
(Aktualizace každých 5 sekund)Výstraha !!!
Kontejner je plný
E-mail odeslán.
Uživatel musí zkopírovat a vložit výše uvedený kód HTML do nějakého textového editoru (poznámkového bloku) a uložit soubor s příponou.HTML (web.html). Poté vložte tento soubor HTML do složky / templates s ohledem na umístění skriptu v pythonu. Znamená to, že musíte vytvořit složku s názvem šablony, kam jste vložili soubor Python Code pro tento kontejner Raspberry Pi Smart a poté do této složky šablon vložte soubor web.html. Tento krok je důležitý, jinak náš projekt nebude fungovat. Soubor web.html můžete otevřít přímo poklepáním, abyste získali výstup kódu HTML, a uvidíte webovou stránku, jak je znázorněno níže. Dále zkontrolujte celý proces v ukázkovém videu na konci. Poté, co jsme dokončili programování a vše ostatní, můžeme spustit pouze kód Pythonu v Raspberry Pi a otevřít IP_address_of_your_Pi: 5010 ve webovém prohlížeči (jako
Pokud váha kontejneru přesáhne 300 gramů, jak je uvedeno níže, webová stránka také zobrazí výstražnou zprávu:
IP adresu vašeho Raspberry Pi můžete zkontrolovat pomocí příkazu ifconfig :
ifconfig
Vysvětlení obvodu:
Připojení pro tento inteligentní kontejner IoT jsou snadné a níže je uvedeno schéma. 16x2 LCD piny RS, EN, d4, d5, d6 a d7 jsou spojeny s GPIO pinem číslo 18, 23, 24, 25, 8 a 7 Raspberry Pi a piny DT a SCK modulu HX711 jsou přímo spojeny s GPIO Raspberry Pi piny 27 a 17. Připojení siloměrů s modulem HX711 jsou již vysvětleny dříve a jsou také zobrazeny v níže uvedeném schématu zapojení.
Pracovní vysvětlení:
Práce s tímto inteligentním kontejnerem je snadná. V tomto projektu jsme k řízení celého procesu použili Raspberry Pi 3. Siloměr snímá váhu obalu a dodává elektrický analogový napěťový HX711 zatížení modulu zesilovače. HX711 je 24bitový ADC, který zesiluje a převádí výstup snímače do digitální podoby. Poté je tato zesílená hodnota přivedena na Raspberry Pi. Raspberry Pi nyní vypočítá výstup HX711 a převede jej na hodnotu hmotnosti.
Pak je tato hodnota hmotnosti porovnána s předdefinovanou prahovou hodnotou (300 gramů) pomocí kódu Raspberry Pi a Python, pokud váha kontejneru překročí 300 gm, Raspberry Pi odešle e-mail s oznámením „Smart Container Alert…. Container Full“. A pokud váha zůstane pod 300 g, Raspberry Pi pošle e-mail s oznámením „Smart Container Alert…. Container is Empty“.
Hmotnost může být také sledována pomocí webového prohlížeče, stačí otevřít IP adresu Raspberry Pi s portem 5010, jako je http://192.168.1.100:5010 (nahradit IP adresu vaší adresou). Zde jsme použili Flask k odeslání dat z Raspberry Pi na webovou stránku přes síť. Tato stránka se automaticky obnovuje každých 5 sekund a my dostáváme aktualizovaná data, k tomu jsme použili jQuery, jak je vysvětleno Earliar.
K zobrazení hmotnosti a stavových zpráv byl také použit volitelný 16x2 LCD.
Níže je uveden kompletní kód Pythonu, kde jsme napsali funkce pro řízení LCD, pro čtení hodnoty hmotnosti z buňky zatížení, pro zobrazení dat na webové stránce atd. Můžete jim snadno porozumět, nebo pokud jste začátečník, podívejte se na naše předchozí výukové programy Raspberry Pi.