- Необходими компоненти:
- Настройка на имейл в Raspberry Pi за изпращане на предупредителни писма:
- Настройка на колбата в Raspberry Pi:
- HTML код за уеб страница:
- Интелигентен контейнер, използващ Raspberry Pi и сензор за тегло
- Обяснение на веригата:
- Работно обяснение:
Може би сте чували за интелигентен хладилник, който може автоматично да поръчва хранителните продукти, които са в хладилник, така че вдъхновяващо е, че тук изграждаме интелигентен контейнер Raspberry Pi, използващ товарната клетка и сензора за тегло HX711. Този интелигентен контейнер може да ви разкаже за състоянието му, като например дали е пълен или празен, като изпрати имейл до вашия имейл ID. Също така можем да наблюдаваме теглото на контейнера в реално време с помощта на уеб браузър и това го прави проект на IoT, където можете да наблюдавате контейнера си от всяко място, използвайки интернет. Тук теглото на контейнера ще се актуализира на всеки 5 секунди в уеб браузъра, като тази продължителност може лесно да се промени в HTML кодов файл. Задали сме праговата стойност на теглото от 300 грама, за да изпратим имейла за това „ Контейнерът е пълен ”, това ограничение също може да бъде променено. Проверете видеото в края на този урок.
Ако не сте запознати с товарната клетка и модула HX711, проверете предишните ни проекти Автоматично измерване на теглото на базата на Raspberry Pi и измерване на теглото на Arduino с помощта на товарната клетка и модула HX711.
Необходими компоненти:
Тук използваме Raspberry Pi 3 Raspbian Jessie OS. Всички основни хардуерни и софтуерни изисквания са обсъдени по-рано, можете да ги потърсите във въведението на Raspberry Pi и мигащият индикатор Raspberry PI за начало, освен това, от което се нуждаем:
- Raspberry Pi (всеки модел трябва да работи)
- Товарна клетка
- HX711 Модул за усилвател на товарната клетка
- 16x2 LCD
- Източник на енергия или банка за захранване
- Свързващи проводници
- Макет
- Гайки болтове, рамка и основа
Тук сме прикрепили дървена основа с товарната клетка за стабилност с помощта на гайки и болтове, както е показано по-долу. Научете повече за товарната клетка и модула на сензора за тегло HX711 тук.
Настройка на имейл в Raspberry Pi за изпращане на предупредителни писма:
За изпращане на пощата от Raspberry Pi, която съдържа състоянието на контейнер (пълен или празен), трябва да инсталираме софтуер. Тук използваме ssmtp, което е лесно и добро решение за изпращане на поща чрез команден ред или използване на Python Script. Трябва да инсталираме две библиотеки за изпращане на имейли чрез SMTP:
Sudo apt-get install ssmtp sudo apt-get install mailutils
След като инсталира библиотеки, потребителят трябва да отвори файла ssmtp.conf и да редактира този конфигурационен файл, както е показано на снимката по-долу, и след това да запази файла. За да запазите и излезете от файла, натиснете „CTRL + x“, след това „y“ и след това натиснете „enter“.
sudo nano /etc/ssmtp/ssmtp.conf
root = YourEmailAddress mailhub = smtp.gmail.com: 587 име на хост = raspberrypi AuthUser = YourEmailAddress AuthPass = YourEmailPassword FromLineOverride = ДА UseSTARTTLS = ДА UseTLS = ДА
Също така можем да го тестваме, като изпратим тестова поща, като издадем команда по-долу, ще получите пощата на посочения имейл адрес, ако всичко работи нормално:
echo "Hello saddam" - mail -s "Testing…" [email protected]
По-долу е моментната снимка на имейл съобщения, която получихме по време на нашето тестване.
Настройка на колбата в Raspberry Pi:
Тук създадохме уеб сървър, който предоставя начин за изпращане на тегловата стойност на контейнера от Raspberry Pi към мрежата, използвайки Flask в уеб браузър. Flask ни позволява да стартираме нашите python скриптове през уеб страница и можем да изпращаме и получаваме данни от Raspberry Pi до уеб браузър и обратно. Flask е микрорамка за Python. Този инструмент е базиран на Unicode с вграден сървър за разработка и отстраняване на грешки, интегрирана поддръжка на модулно тестване, поддръжка на сигурни бисквитки и лесен за използване, тези неща го правят полезен за любителя .
Инсталирайте пакет за поддръжка на колба в Raspberry Pi, като използвате дадена команда:
$ pip инсталирайте Flask
След това можем да използваме колбата, като просто я импортираме в нашата програма, както сме импортирали следните пакети колби за този проект:
от колба импортиране Колба, render_template, заявка, jsonify
Можете да научите повече за програмирането с помощта на Flask тук, също така проверете нашия предишен проект, където използвахме Flask, за да изпратим съобщението от уеб страницата на Raspberry Pi.
HTML код за уеб страница:
Също така създадохме уеб страница, използваща HTML език за показване на теглото и предупредителното съобщение в уеб браузъра. Използвахме малък jQuery скрипт за зареждане на страницата (чрез извикване / show_weight) на всеки 5 секунди, за да можем да получим стойността на теглото в реално време. По-долу е HTML кодът за уеб страница, включително jQuery:
Circuit Digest
Интелигентен контейнер, използващ Raspberry Pi и сензор за тегло
Тегло на контейнера: 302 грама
(Актуализиране на всеки 5 секунди)Тревога!!!
Контейнерът е пълен
Изпратено имейл.
Потребителят трябва да копира и постави дадения по-горе HTML код в някакъв текстов редактор (бележник) и да запише файла с разширение.HTML (web.html). След това поставете този HTML файл в папката / templates по отношение на местоположението на вашия python скрипт. Означава, че трябва да създадете папка с име шаблони, където сте поставили вашия файл на Python Code за този контейнер на Raspberry Pi Smart, след което поставете файла web.html в тази папка за шаблони . Тази стъпка е важна, в противен случай нашият проект няма да работи. Можете директно да отворите файла web.html, като щракнете двукратно върху него, за да получите изхода на HTML код и ще видите уеб страницата, както е показано по-долу. Допълнително проверете целия процес в демонстрационно видео накрая. След като приключим с програмирането и всичко останало, можем просто да стартираме кода на Python в Raspberry Pi и да отворим IP_address_of_your_Pi: 5010 в уеб браузъра (като
Уеб страницата също ще показва съобщение ALERT, когато теглото на контейнера надхвърли 300 грама, както е показано по-долу:
Можете да проверите IP адреса на вашия Raspberry Pi, като използвате командата ifconfig :
ifconfig
Обяснение на веригата:
Връзките за този IoT Smart Container са лесни и схематично са дадени по-долу. 16x2 LCD щифтове RS, EN, d4, d5, d6 и d7 са свързани с GPIO пин с номера 18, 23, 24, 25, 8 и 7 на Raspberry Pi, съответно DT и SCK щифтовете на модула HX711 са директно свързани с GPIO на Raspberry Pi щифтове 27 и 17. Връзките на товарните клетки с модул HX711 вече са обяснени по-рано и също са показани в схемата по-долу.
Работно обяснение:
Работата с този интелигентен контейнер е лесна. В този проект използвахме Raspberry Pi 3, за да контролираме целия процес. Товарната клетка усеща теглото на контейнера и подава електрическо аналогово напрежение към усилвателния модул HX711. HX711 е 24-битов ADC, който усилва и преобразува изхода на товарната клетка в цифрова форма. След това тази усилена стойност се подава към Raspberry Pi. Сега Raspberry Pi изчислява изхода на HX711 и го преобразува в стойността на теглото.
След това тази стойност на теглото се сравнява с предварително дефинираната прагова стойност (300 грама), като се използва Raspberry Pi и Python код, ако теглото на контейнера надхвърли 300 gm, Raspberry Pi изпраща имейл, в който се казва, че "Smart Container Alert…. Container Full". И ако теглото остане под 300gm, Raspberry Pi изпраща имейл, в който се посочва „Smart Container Alert…. Container is Empty“.
Теглото може да се следи и с помощта на уеб браузър, просто трябва да отворите вашия IP адрес на Raspberry Pi с порт 5010 като http://192.168.1.100:5010 (заменете IP адреса с вашия адрес). Тук използвахме Flask за изпращане на данните от Raspberry Pi до уеб страница по мрежата. Тази страница ще се опреснява автоматично на всеки 5 секунди и получаваме актуализирани данни, за това използвахме jQuery, както беше обяснено по-рано.
За показване на съобщенията за тегло и състояние също е използван незадължителен LCD дисплей 16x2.
Пълният код на Python е даден по-долу, където имаме написани функции за управление на LCD, за отчитане на стойността на теглото от товарната клетка, за показване на данни на уеб страница и др. Можете да ги разберете лесно или ако сте начинаещи, тогава проверете нашите предишни уроци за Raspberry Pi.