Мазмуну:

Күчтүү автономдуу үй автоматташтыруу системасы - Pi, Sonoff, ESP8266 жана Node -Red: 9 кадам (сүрөттөр менен)
Күчтүү автономдуу үй автоматташтыруу системасы - Pi, Sonoff, ESP8266 жана Node -Red: 9 кадам (сүрөттөр менен)

Video: Күчтүү автономдуу үй автоматташтыруу системасы - Pi, Sonoff, ESP8266 жана Node -Red: 9 кадам (сүрөттөр менен)

Video: Күчтүү автономдуу үй автоматташтыруу системасы - Pi, Sonoff, ESP8266 жана Node -Red: 9 кадам (сүрөттөр менен)
Video: Жолугушуу №2-24.04.2022 | ETF командасынын мүчөсү жана диалог... 2024, Ноябрь
Anonim
Күчтүү автономдуу үй автоматташтыруу системасы - Pi, Sonoff, ESP8266 жана Node -Red
Күчтүү автономдуу үй автоматташтыруу системасы - Pi, Sonoff, ESP8266 жана Node -Red

Бул колдонмо сизди биринчи тармакка алып барышы керек, анда сиз жарыкты же шайманды жергиликтүү тармагыңызга туташа турган каалаган түзмөк аркылуу күйгүзүп/өчүрө аласыз, жана сонун интерфейс менен. Кеңейтүү/ кошуу мүмкүнчүлүктөрү эбегейсиз, анын ичинде электрондук каттарды, твиттер билдирүүлөрдү жөнөтүү, сенсорлорду окуу (мис. Температура). Сиз эрежелерди оңой орното аласыз, мис. - 23С температурасы 15Стен төмөн болсо, электр жуурканды 30 мүнөткө күйгүзүңүз. Тутум UCPге караганда кыйла ишенимдүү TCP менен MQTT протоколун колдонот - бул таң калыштуу түрдө кээ бир коммерциялык үй автоматташтыруу түзмөктөрү тарабынан колдонулат. Бул жерде сүрөттөлгөн системаны орнотуу боюнча татаал иш бүткөндөн кийин, көңүл ачууну баштаса болот. Node Red интуитивдүү, тез жана оңой орнотулган фантастикалык колдонуучу интерфейсин камсыз кылат жана укмуштуудай мүмкүнчүлүктөрдү камсыз кылат.

Жыйынтык - бул үйдүн автоматташтыруу системасы, ал толугу менен өз көзөмөлүндө жана толугу менен жергиликтүү тармакта. Instructables -те көрсөтүлгөн көптөгөн системалар булутка негизделген серверлер менен иштешет, демек коопсуздук үчүн коркунуч болуп саналат жана жазылууну талап кылышы мүмкүн. Буларды орнотуу оңой, бирок коопсуздук коркунучу жогору жана баасы жогору. Мен сырттан кирүү пайдалуу болсо, үй тармагына/тутумуна коопсуз туташууну камсыз кылуу үчүн Piге VPN (виртуалдык жеке тармак) орнотсо болорун кошумчалашым керек (нускамалар үчүн Google Pi OpenVPN).

Бул система Sonoff түзмөктөрүн Sonoff-Tasmoda деп аталган улуу ачык булак системасы менен кайра программалоону талап кылат. Бул атайын Arduino орнотуусун жана USBди сериялык конвертерге колдонуу менен жасалышы мүмкүн. Sonoff түзмөктөрү ESP8266 Wi-Fi чипин колдонушат, андыктан сиз ESP8266 модулдарын колдонуп өзүңүздүн түзмөктөрүңүздү жасай аласыз же зымсыз байланышты жеткирүү үчүн башка нерселерге шайкеш келтире аласыз.

Эң чоң милдет - бул Raspberry Pi'ди хаб катары түзүү. Бул туташкан түзмөктөр менен байланышты башкарган MQTT брокерин (же серверин) иштетет. Pi ошондой эле Node-Red деп аталган системаны иштетет, ал билдирүүлөрдү, маалыматтарды жана чыгуучу буйруктарды кармайт-мисалы, электр жуурканды качан күйгүзүү керек. Node-Red ошондой эле смартфон/планшет/PC/ноутбук аркылуу кире турган веб-баракчаны тейлөө үчүн интерфейсти камсыз кылат, эмне болуп жатканын көрүп, жарыкты кол менен которууну ж.б.

Бул көрсөтмө менен менин максатым - бул жаңы системанын иштеши үчүн ар бир кадамды майда -чүйдөсүнө чейин берүү.

Кадамдар:

  • Rasbian Stretch менен Pi жүктөңүз
  • Жаңыртуу жана Node-Redге функцияларды кошуу
  • Mosquitto MQTT брокерин орнотуңуз
  • Sonoff-Tasmota программасын жүктөө үчүн Arduino чөйрөсүн орнотуңуз
  • Sonoff которгучун кайра программалоо
  • Node-Red интерфейсин орнотуңуз
  • Тестирлөө баары иштейт.

Сизге керек болгон жабдыктар:

  • Raspberry Pi жана электр менен камсыздоо (жана клавиатура жана монитор алгачкы орнотуу үчүн) (модель B бул жерде колдонулат)
  • Sonoff Switch
  • USB сериялык конвертер
  • Кошумча - NodeMCU сыяктуу ESP өнүктүрүү тактасы.

Менин Raspberry Pi менен болгон тажрыйбам, бир нерсени орнотуу эч нерсе ойлобогондон алда канча ооруну камтыйт окшойт, бирок иштебей калган нерселер же түшүндүрүү жакшы болушу мүмкүн болгон кичинекей кадамга тыгылып калуу. Форумдар дайыма иштей турган кеңештерди ала бербейт! Мен тигил же бул себептер менен иштебеген бир нече маршруттарды таптым. Бул 3 күн! Андан кийин мен баарын аарчып, кайра баштадым (бир) күнгө жетпей бүтүрдүм. Бул бирок улуу Распиан Джесси колдонгон. Ушундан кийин мен учурдагы жана жакында чыгарылган версияны (Stretch) колдонуунун жолун таптым жана баарын кайра кылдым. Бул колдонмо нускамаларды Piге көчүрүү жана чаптоо мүмкүнчүлүгүн берет. Ошентип, бир нече сааттын ичинде жасалышы керек. Кандай болбосун, бул сизге тезирээк үйрөнүүнү тездетет жана ооруну азайтат деп үмүттөнөм. Ишенип койгула, бул акыркы жыйынтык үчүн татыктуу.

1 -кадам: Rasbian Stretch менен Pi жүктөңүз

Бул абдан жөнөкөй болушу керек. 8Gb же 16Gb SD карта менен баштаңыз. Акыркы версиясын бул жерден жүктөп алыңыз:

www.raspberrypi.org/downloads/

Бул жердеги негизги тема толук версия жүктөлгөнүн болжолдойт. Бирок сиз мейкиндикти үнөмдөө үчүн жөнөкөй версиясын колдоно аласыз. Эгерде Raspbian Stretch Lite колдонсоңуз, бул кадамды аткарыңыз жана аягында 9 -кадамга өтүңүз.

Жүктөлүп алынган файлды ачуу.img файлы бар папканы берет. 7Zip Windows (жана Unarchiver Mac) үчүн сунушталат. Сүрөт SD картага жазылышы керек, бирок файл системасы Windows менен шайкеш келбегендиктен, атайын программаны колдонуу керек. Сунушталган программалык камсыздоо Etcher деп аталат жана аны бул жерден көчүрүп алса болот:

etcher.io/

Etcher үчүн көрсөтмөлөр алардын веб -сайтында жана жөнөкөй болушу мүмкүн эмес. Сүрөттү жана дискти тандап, Flashти басыңыз.

Эми биздин жаркыраган SD картабыз менен Pi иштей алат.

Эгерде сиз Pi колдонуп жаткан IP дарегин билсеңиз же роутериңизге кирип аны табууга кубанычта болсоңуз, анда клавиатурага жана мониторго муктаждыктан качып, SSHди дароо колдоно аласыз. Жөн эле SD картага SSH деген бош файлды кошуңуз, кыстарыңыз, Ethernetке туташыңыз жана күйгүзүңүз. Болбосо төмөндөгү көрсөтмөнү аткарыңыз.

Пиди интернетке, экранга, чычканга жана клавиатурага туташтырып, бийликке туташыңыз. Биз жасай турган биринчи нерсе - SSHди иштетүү, ошондуктан биз орнотуунун көпчүлүгүн компьютерден ыңгайлуулуктан жасай алабыз. Бул, албетте, түздөн -түз жасалышы мүмкүн, бирок бул көрсөтмөнү Пи айдап жүргөн бир эле түзмөктө аткарууга жана нускамалардын көбүндө көчүрүү менен чаптоого жардам берет. Ошондой эле менин ишимде менин ПК жумушчу станциясы жакшы жана ыңгайлуу, бирок пи үчүн чоң эмес.

YouTube видеосунда жакшы иштөө үчүн гид бар. Бул мен баштаган. Бул көрсөтмөлөрдү аткаруу менен бирге видеону иштете аласыз. Бирок, мен муну жазып жатканда процессти кайра баштан өткөргөндө, бул жердеги көрсөтмөлөрдү аткаруу оңой болду. Кээ бир олуттуу четтөөлөр бар. Бул жерде кадамдарды тизмектөөнүн ордуна видеону ээрчүүнү сунуштаган кээ бир бөлүмдөр бар. Мен бирок MQTT, Node-Red жана кеңири орнотуу процессин түшүнүү үчүн аны кароону сунуштайт элем. Видеонун узундугу 38 мүнөт, андыктан өзүңүздү ыңгайлуу сезиңиз. Видео Node Red эмне кыла аларын көрсөтүү менен башталат, андан кийин Pi орнотууну жана орнотууну камтыйт, андан кийин Red Node жаңыртылып, акыры Mosquitto орнотулат. Бөлүмгө кайтып баргыңыз келсе, негизги убакыттар:

00:00 Видео менен таанышуу

03:00 Node Red демонстрациясы

14:14 Кызыл панелдин панелиндеги нерселерди импорттоо

21:05 Pi баштапкы орнотуу, анын ичинде SSH

23:35 Node Red колдоо кодун орнотуу

27:00 MQTTге киришүү

29:12 Mosquitto (MQTT) орнотуусу (Эскертүү Raspian Jessie үчүн гана иштейт)

33:00 Node Red мисалдары

Мен буйруктарды калың курсив менен тизмелеп берем ("" дегенди колдонуунун ордуна). Пи -ге көчүрүп, чаптап койгондо бул форматтоо эске алынбайт.

Node Redге киришүү сизге системанын эмне кыла алары жөнүндө түшүнүк берет жана биз кайда барарыбыздын сүрөтүн берет.

YouTube видео бул жерде:

21:05тен 23:35ке чейин орнотуу процедурасын аткарыңыз. Эскертүү демейки логин колдонуучу: pi жана пароль: малина. Кайра иштетүүдөн мурун пи анын IP дарегин табыңыз. Же үстөлдүн үстүнкү тилкесиндеги "өйдө+ылдый жебе" сүрөтчөсүн чыкылдатыңыз же терминалды/терминал терезесине төмөнкү көрсөтмөнү киргизиңиз:

sudo ifconfig дареги

Андан кийин IP дарегин белгилеңиз: inet addr:. Бул 192.168.x.y түрүндө болот

Бул дарекке көңүл буруңуз жана кайра баштаңыз (киргизиңиз: sudo shutdown –r now)

Бул жерде негизги нерсе SSH иштетилген жана компьютерден Piге шилтеме орнотсо болот (Mac жана Linux SSH интерфейстерин камтыйт). Бул үчүн жакшы программа PuTTY деп аталган бекер жүктөө, ал сериялык интерфейс катары да колдонулушу мүмкүн жана Telnetти жасай алат. Putty жеткиликтүү:

www.chiark.greenend.org.uk/~sgtatham/putty…

PuTTY жүктөп алып, орнотуңуз.

Эми, Pi кайра башталганда, PuTTYди баштаңыз жана буга чейин белгиленген IP дарегин киргизиңиз. Төмөндөгү мисалды караңыз:

Эми Ачуу баскычын басыңыз

Киргенден кийин: пи киргизиңиз

Андан кийин сырсөзүңүздү киргизиңиз.

Эми бул жердеги көрсөтмөлөрдү аткарыңыз жана видеону саат 23: 35тен баштап баштаңыз. Көпчүлүк учурда көчүрүп, чаптап койсоңуз болот. Текстти бөлүп көрсөтүп, көчүрүү үчүн ctrl+C басыңыз. Андан кийин чаптоо үчүн PuTTYге оң баскычын басыңыз. Кээде текст дароо пайда болбойт, андыктан бир нече секунд күтө туруңуз. Эгерде сиз эки жолу киргизсеңиз, экинчи жазууну жок кылуу үчүн backspace колдонуңуз. Ар бир көрсөтмөнү аткаруу үчүн enter баскычын басыңыз.

sudo raspi-update

Мен таппаган буйрукту алдым жана муну жана төмөнкү өчүрүү/кайра баштоо көрсөтмөсүн этибарга албадым:

Sudo өчүрүү -r азыр

sudo apt -get -y жаңыртуусу

sudo apt -get -y жогорулатуу

Бул бир аз убакытты алат ….

sudo apt-get autoremove

sudo apt -get -y жаңыртуусу

Sudo өчүрүү -r азыр

Бул жерде бизде Pi операциялык тутуму жүктөлүп, жаңыртылып, кийинки кадамга даяр.

2-кадам: Жаңыртуу жана өзгөчөлүктөрдү Node-Redге кошуу

PuTTY байланышы мурунку кадамдын аягында өчүрүп -күйгүзүү менен жоголот. Ошентип PuTTY жабыңыз жана Pi жүктөлүшүн күткөндөн кийин, мурдагыдай эле кайра кириңиз.

Мен Node-Redди жүктөөнүн жөнөкөй жана ишенимдүү ыкмасына өттүм-https://nodered.org/docs/hardware/raspberrypi дарегине ылайык. Бул сценарийди колдонот жана Node-Redди орнотот же жаңыртат-андыктан ыкма Raspbian Stretchтин толук же жөнөкөй версияларында иштейт. Андыктан киргизиңиз:

bash <(curl -sL

Суралганда Y киргизиңиз (эки жолу). Бул скрипт ошондой эле Node-Red'ди автоматтык түрдө иштетүүнү иштетүү үчүн керектүү файлдарды жүктөйт.

Ошентип, бул жерде биздин пи жүктөлгөн жана жаңыртылган жана Red Node үчүн керектүү жаңыртуулар бар. Кийинки этапка чейин кайра баштоонун зыяны жок.

Sudo өчүрүү -r азыр

3 -кадам: Mosquitto MQTT орнотуу

Эгерде сиз буга чейин андай кыла элек болсоңуз, анда MQTT видеосунун видеосун 27: 00дөн баштап көрүүгө болот.

Бул жерде биз башка жолго түшүшүбүз керек. Видеодо көрсөтүлгөн жол -жобо Raspianдын эски Джесси версиясы үчүн гана иштейт. Чиркей сайтында талкуу жүрүп жатат, бирок эч кандай так жыйынтык көрсөтүлбөйт, демек жөнөкөй жана коопсуз жолду карманат.

Ошентип, PuTTY аркылуу кирип, төмөнкүлөрдү киргизиңиз:

sudo apt-get update

sudo apt-get чиркей чиркей-кардарларын орнотуу

Y

sudo /etc/init.d/mosquitto stop

sudo /etc/init.d/mosquitto баштоо

Акыркы эки инструкция чиркейлерди токтотуп, баштайт жана биздин MQTT брокери иштеп жатканын көрсөтөт.

Тез сыноо үчүн дагы эки PuTTY сессиясын ачып, ар бирине кириңиз.

Сиз азырынча MQTT түзмөктө "темага" жазылуучу маалыматка муктаж экенин билесиз. Брокер кандайдыр бир маалыматты "тема" менен жөнөтөт. Андан кийин маалыматтарды/көрсөтмөлөрдү жөнөтүүнү каалаган түзмөк муну брокерге ошол эле "теманы" колдонуп жарыялайт.

Ошентип, бир PuTTY сеансына киргизиңиз:

mosquitto_sub -d -t салам/дүйнө

Бул темага жазылуу боюнча көрсөтмө: салам/дүйнө.

Башкага киргизиңиз:

mosquitto_pub -d -t салам/дүйнө -m "Терминалдын 2 терезесинен салам!"

Бул билдирүү менен ошол эле темадагы жарыялоо көрсөтмөсү. Текст: "Терминалдын 2 терезесинен салам!" азыр башка терминалда пайда болушу керек.

Ушуга чейин жеткениңиз жакшы. Бизде азыр Pi түйүн-кызыл үчүн жана чиркей MQTT брокери орнотулган жана текшерилген керектүү жаңыртуулар менен жүктөлгөн жана жаңыртылган. Мындан ары жашоо бир аз кызыктуу болуп калат. MQTT тестине колдонулган PuTTY эки сессиясын жабыңыз.

4 -кадам: Node Red Interfaceти орнотуу

Биринчиден, биз Node Redди башташыбыз керек. Нускаманы киргизиңиз:

node-red-pi --max-old-space-size = 256

Анын иштешин күтө туруңуз жана "Башталган агымдар" текстин көрөсүз.

Эми браузерди ачыңыз, мен Chrome'ду колдоном жана pi IP дарегин киргизем, андан кийин: 1880 башкача айтканда 192.168.0.8:1880

Сиз азыр Node Red программалоо баракчасын төмөндөгүдөй көрүшүңүз керек:

Сиз азыр Node Red мисалдарын 33: 00дө баштасаңыз болот же кичине кошумча орнотууга өтөсүз жана MQTT шилтемесин көрсөтүүчү биринчи агымды жүктөй аласыз жана биздин которууну башкарууга даярбыз.

Кошумча орнотуу веб -интерфейсти иштетүүчү панелдин элементтерин кошуу болуп саналат.

Булар видеодо 14:14тө көрсөтүлгөн.

Түйүн-кызыл тактаны жүктөө үчүн нускамаларды аткарыңыз.

Эми биз кичине ойноп, MQTTтин иштешин жана Node-Red тарабынан башкарылгандыгын көрсөтө алабыз. Бул видеодо жок, бирок бул долбоордун ачкычы. Сиз менин көрсөтмөлөрүмдү ээрчип жана/же NRtest1.txt тиркелген файлдан агымдарды импорттой аласыз.

Алгач киргизүү инжектордук түйүнүн жана чыгаруу mqtt түйүнүн кошуп, аларды бири -бирине байланыштырыңыз.

Инъекциялык түйүндү эки жолу чыкылдатыңыз (бул башында убакыт белгиси). Payload бөлүмүндө twiddly колдонуп, сапка өзгөртүп киргизиңиз: Hello from me. Теманы бош калтырыңыз, анткени биз муну MQTT түйүнүнө киргизе алабыз. Дайын дегенди басыңыз

Эми MQTT түйүнүн эки жолу чыкылдатыңыз. Сервер бөлүмүнүн оң жагындагы карандаш сүрөтчөсүн чыкылдатыңыз. Бул жаңы диалогду ачат. Кирүү: Server бөлүмүндө localhost. Кошуу баскычын басыңыз. Эми, кайра mqtt чыгуу түйүнүнөн, темабызды Тема бөлүмүнө киргизиңиз: салам/дүйнө. QoSту 1ге коюңуз. Дайын дегенди басыңыз. Эми чыкылдатыңыз Колдонуу. Сиз mqtt түйүнүнөн төмөндө жашыл блонду жана "туташкан" көрүшүңүз керек.

Эми дагы эки түйүндү кошуңуз - mqtt киргизүү жана мүчүлүштүктөрдү оңдоо жана аларды бири -бирине туташтырыңыз. Эми mqtt кирүү түйүнүн эки жолу чыкылдатып, тема бөлүмүнө салам/дүйнөнү киргизиңиз. Сервер буга чейин localhost көрсөтүшү керек: 1883. QoSту 1ге коюңуз. Дайын дегенди басыңыз. Андан кийин "Колдонуу" баскычын чыкылдатыңыз жана оң жактагы панелдеги мүчүлүштүктөрдү оңдоо өтмөгүн чыкылдатыңыз. Эми "Менден салам" сайма түйүнүнүн сол жагындагы боз чарчы жерди басыңыз. Бул текст жүктөмүн MQTT брокерине салам/дүйнө темасы менен жөнөтөт. Брокер mqtt киргизүү түйүнү ошол эле темага жазылганын билет жана ошону менен жүктү жөнөтөт. Mqtt киргизүү түйүнү андан кийин мүчүлүштүктөрдү оңдоонун өтмөгүнө (RHS) жөнөтөт жана "Менден салам" деген текст пайда болушу керек.

Бул башка кутучаны белгилейт, анткени бизде Node Red биздин MQTT брокери менен сүйлөшүп жатат. Node Red брокердин жөн гана кардары экенин эске алыңыз - биз Sonoff түзмөктөрү сыяктуу кийинчерээк туташтырабыз. Бул татаал автоматташтырууну иштетет жана мыкты колдонуучу интерфейсин камсыз кылат.

Эми биз бир нече кичинекей өзгөртүүлөрдү киргизип, Sonoff которгучубуз үчүн агымдарды орното алабыз.

Ошентип, киргизүү сайма түйүнүн жок кылыңыз (баса белгилөө үчүн чыкылдатыңыз жана жок кылуу баскычын басыңыз). Эми панель бөлүмүнөн которгучту кошуп, аны mqtt өндүрүшүнө туташтырыңыз. Кош чыкылдатуу которгуч. Топтун оң жагындагы карандашты чыкылдатыңыз. Атын киргизиңиз: Жарык. Андан кийин, Табдын оң жагындагы карандашты чыкылдатып, Аты бөлүмүнө кир: Lounge. Кошуу/Жаңыртуу жана Кошуу/Жаңыртууну кайра басыңыз. Эми, кайра которуу түйүнүндө, кайра жүктөөлөрдү күйгүзүү жана өчүрүү. Жипти тандоо үчүн twidlys колдонуңуз жана ON жүктөөдө ON жана OFF жүктөмүндө OFF деп жазыңыз. Дайын дегенди басыңыз

Эми mqtt түйүндөрүнүн ар бирине барып, Теманы cmnd/sonoff/POWER деп өзгөртүңүз. Эгерде көчүрүү жана чаптоо, аягында боштук жоктугун текшериңиз. Бул башка тема жана Sonoff менен иштебейт. Адашкан жерди табуу бир саатка созулушу мүмкүн - мага ишениңиз! Мен ошондой эле панелге> Темага кирип, тандадым: Караңгы. Орнотууну чыкылдатып, мүчүлүштүктөрдү оңдоо өтмөгүн тандаңыз.

Эми жаңы серепчиде жаңы браузердин сеансын ачыңыз жана аны Node Red сеансынан чөнтөк телефонго окшотуп өлчөмдөңүз. Даректи киргизиңиз: сиздин Pi IP дарегиңиз: 1880/ui/#/0 б.а. 192.168.0.8:1880/ui/#/0 сыяктуу бир нерсе. Сиз Lounge жана Light менен экранды көрүп, которуштурушуңуз керек. Которууну басып, анан өчүрүңүз. Мүчүлүштүктөрдү оңдоо терезеси ON жана OFF жүктөрүн көрсөтүшү керек. Эми сиз кааласаңыз, ошондой эле мобилдик аркылуу кириңиз. Көңүл буруңуз, которгучтун орду синхрондоштурулган. Биздин Сонофф азырынча туташпаганы маанилүү эмес. Качан, Темага жазылуу менен, ал билдирүүнү/пайдалуу жүктү алып, ошого жараша иш кылат.

Акыркы кичинекей кадам - Pi түйүнү жүктөлгөндөн кийин Red Node автоматтык түрдө баштоо.

Node Redдин жетеги бар:

Бирок керектүү файлдар мурунтан эле жүктөлгөн, андыктан орнотуунун кереги жок.

Андан кийин Node-RED'ти ар бир жүктөөдө автоматтык түрдө иштетүүнү иштетүү үчүн жана каталар келгенде киргизиңиз (PuTTY сессиясын ачыңыз):

sudo systemctl nodered.service иштетүү

Эгер сиз муну өчүрүүңүз керек болсо, төмөнкүлөрдү киргизиңиз:

sudo systemctl nodered.service өчүрүү

Эми пидону sudo өчүрүү менен өчүрүп, кубатты өчүрүңүз.

Бул жерде азыр биздин Pi кулпуланып, иштөөгө даяр. Бизде Node Redге туташкан биздин компьютерибиз/уюлдук телефонубуз бар жана бул биздин MQTT серверибиз менен сүйлөшөт. Бул узак жолду басып өттү жана арт жагынан чоң чапканга арзыйт. Мыкты жасалды. Мен кийинки, Arduino битти таптым, бул жакшы нерсе!

5 -кадам: Sonoff түзмөктөрүн кайра программалоо үчүн Arduino системасын орнотуу

Бул үчүн бардык маалымат Sonoff-Tasmota GitHubда. Мен кыйналган бир гана нерсе Теманын тексти болчу - бирок мен сизди буга чейин эле киргизүүгө мажбур кылдым!

Https://github.com/arendst/Sonoff-Tasmota дарегине өтүңүз

Орнотуу көрсөтмөлөрүн Wiki өтмөгүнөн Жүктөө куралдары бөлүмүнөн таба аласыз:

Ар бир кадамды басып өтүүнүн ордуна, мен маанилүү деп эсептеген же жабышкан негизги аспектилерди белгилеп кетем.

Көрсөтмөлөр жакшы, бирок деталдарга кылдат көңүл буруу керек. Мени ESP8266 деп аталган башка папкада турган ESP8266 папкасына муктаждык пайда болду, ошондуктан эки деңгээлди өткөрүп жибердим.

Мен таптакыр өзүнчө Arduino орнотуусу боюнча сунушту аткардым. Мен бар болгон Arduino папкасынан бөлөк "ArduinoSonoff" деп аталган жаңы папка түздүм. Орнотуу абдан өнүккөн, ошондуктан аны бөлөк кармоо абдан жакшы идея. Эгерде бул сиздин биринчи Arduino орнотууңуз болсо, аны экинчи жолу Arduino жумушуна, анын ичинде ESP8266s боюнча "Arduino" же башка папкага орнотуп алыңыз.

Акыркы Arduino IDEди https://www.arduino.cc/en/Main/Software сайтынан жүктөп алыңыз. Файлды жаңы папкаңыздан чыгарыңыз.

Көрсөтмөлөргө Sonoff-Tasmoda системасын https://github.com/arendst/Sonoff-Tasmota башкы барагынан жүктөө кирет: Clone же Download> ZIP жүктөө. Файлды жаңы папкаңыздан чыгарыңыз.

Көрсөтмөлөрдү кылдат аткарыңыз. Мен Кошумча кылган жокмун: OTA жүктөө бөлүмүнө даярдануу. Биз муну башка күнгө калтырабыз.

Эми Arduino IDEди баштаңыз (arduino.exeге эки жолу чыкылдатыңыз). Sonoff-Tasmota эскизин File> Sketchbook> sonoff аркылуу жүктөңүз. Эч кандай түзөтүүлөрдү киргизүүнүн кажети жок. Бардык орнотуулар камтылган программа жүктөлгөндөн кийин сериялык туташуу аркылуу жасалат. Булар EEPROMда сакталат. Ошентип, камтылган программаны жаңыртып, бардык орнотууларды сактап калууга болот. Бул абдан акылдуу нерселер. Бирок, колдонуучу-config.h файлына кирип, Wi-Fi SSID менен сырсөзүңүздү жана MQTT_HOST ("domus1"-экинчи шилтемени Pi IP дарегиңиз менен алмаштыруу) аркылуу бул жерде бир нече кадамдын кереги жок болот. Кийинчерээк сиз MQTT колдонуучусун жана сырсөзүн да киргизгиңиз келиши мүмкүн. Жүктөөдөн мурун, Куралдар астындагы такта орнотууларын текшериңиз. Булар Викиге коюлган талаптарга жооп берүү үчүн бир нече өзгөртүүлөрдү талап кылат. Эми компиляцияны чыкылдатыңыз (сөлөкөтүн белгилеңиз). Бул OK түзүшү керек. Эгерде андай болбосо же керектүү такталар жок болсо, артка кайтып, орнотуунун ар бир кадамын текшериңиз.

6 -кадам: Sonoff которуштургучун кайра программалоо

Биз азыр жүктөп алууга даярбыз. Бул этапта түз эле алдыга жылып, Sonoff которуштургучун жаркырата аласыз же биринчиден ESP8266 модулун жаркырата аласыз. Мен экинчисин жасадым, жарым -жартылай менин өчүргүчтөрүм келе элек болчу (мен муну терип жатканда эле келдим!), Бирок Sonoff которгучунун жаркылдашы катары бир чара катары баштапкы камтылган программа коомчулукка жеткиликтүү эмес. Мен билем. Менде NodeMCU такталары бар. Буларды кошуу оңой, борттогу USB сериялык конвертерге ээ. Бирок nodemcu баштапкы абалга келтирүү ыкмасы бул система менен иштебейт. Ошентип, Tools> Reset Methodту "ck" деп калтырыңыз. Жарык баскычын (GPIO 0 жерге) басып, Reset (Жерге кайтаруу) басуу менен бошотуу менен кадимки кол жаркылдатууну жасаңыз. Менде күтүү убактысы барбы же жокпу, так билбейм, балким мен GPIO 0ду көпкө кармап турбадым, бирок мага бир нече аракет керек болчу, анын ичинде Arduino IDE түзүлүп жатканда да!

Эгерде сиз жоопторду текшергиңиз келсе - реле чыгышы N6, NodeMCU такталарында. On ESP12 анын GPIO 12. LED чыгаруу D7 (NodeMCU) же GPIO 13 (ESP12 анын) болуп саналат.

Sonoff которгуч.

ЭСКЕРТҮҮ: "Корпус ачык турган шартта электр тармагына туташпаңыз" деп айтышым керек. ПХБнын (жок эле дегенде, Sonoff Basicте (саптык которгучта)) төмөнкү чыңалуу бөлүмү менен магистралдын ортосундагы "жалгыз изоляция" аралыктары бар экенин эске алыңыз. Андыктан Сонофф схемасынын каалаган бөлүгүн электр чыңалуусу катары караш керек. Tasmota GitHub температура жана нымдуулук сенсорунун Sonoff S20 менен туташуусун көрсөтөт. Мен изоляция көйгөйлөрүнөн улам муну кылбайт элем. же жерге туташтырылган электр энергиясы.

Sonoff S20 плагинин которуштуруу жакшы башталыш болуп саналат, анткени ал эч кандай электр зымына муктаж эмес. Муну бир бураманы (коопсуздук мөөрүнүн астында) чечип, корпусту ачуу менен ачса болот. Төмөндөгү сүрөт тегдердин кайда экенин көрсөтөт. Бул учурларда ишти кысуу жардам берет.

USB сериялык конвертер

Менин жакшы көргөн конвертерим - FTDI версиясы. Бирок бул Sonoff 3.3v муктаждыктарын канааттандыруу үчүн шайкештикке ээ эмес. FTDI спецификациясы максималдуу 50ма дейт. Кийинки эң жакшы альтернатива - бул CP2102 чипин колдонуу. Бул 100ма чеги бар, ал дагы эле жетишсиз. Ооба, көптөр бул алмаштыргычты түз колдонуп жатышат, бирок жүктөө болбой калгандыгы тууралуу да маалыматтар бар. Мен жүктөлгөндө жылынып калат деп туташкан убакытты чектемекмин. Муну өз тобокелчилигиңиз менен аткарыңыз. Идеалдуу чечим 3.3v жөндөгүчкө ээ болуу, мис. AMS1117 3.3. Мен муну иштетүү үчүн кичинекей ПХБ түздүм. Sonoff түзмөктөрү үчүн Программистти караңыз.

Менин программалоо ырааттуулугум төмөнкүчө:

Arduino IDE ачыңыз.

Куралдар астындагы орнотуулардын Викидегидей экенин текшериңиз.

User_config.h үчүн зарыл болгон бардык түзөтүүлөрдү киргизиңиз. Мен Wifi SSID жана сырсөздү жана MQTT брокеринин дарегин жана убакыт алкагын/күндүзгү үнөмдөө маалыматын койдум.

OK экендигин текшерүү үчүн "текшерүү" дегенди басыңыз.

USB сериялык конвертерин (өз алдынча) компьютерге сайыңыз. Порт номерине көңүл буруңуз.

Эми USB сериялык коргошун компьютерден ажыратып, Sonoff которгучуна туташтырыңыз. Жерди текшериңиз жана 3v3 туташуулары туура жолдо (жер Sonoff ПХБдагы жер учагына туташкан).

Программистти кармап туруңуз, ошондо кнопканы басуу менен байланыштар коопсуз болот.

Эми USB туташуусун компьютерге туташтырыңыз, порт номеринин туура экенин текшериңиз (Куралдарда), анан жүктөө дегенди басыңыз.

Мен программалоо учурунда баскычты кармап турууну улантам, анткени мен байланыштарды бузгум келбейт.

Бүткөндөн кийин төмөнкүдөй экранды көрүшүңүз керек:

Сүрөт
Сүрөт

Sonoff биздин системага туташуу үчүн бир нече маалыматка муктаж: SSID жана сырсөздүн жергиликтүү тармагы жана Pi IP дареги. Муну жасоонун бир нече жолу бар, алардын бири config.ino файлын мурда белгиленгендей өзгөртүү. Эгерде сизде смартфонуңуз болсо, анда (которгучту кайра чогулткандан кийин) Sonoff баскычын 4 жолу тез басып, веб-сервер режимине коюңуз. LED жаркырайт. Муну ишке ашыруу үчүн бир нече жолу аракет кылышым керек болчу. Андан кийин, смартфонуңуздан жаңы Sonoff тармагын издеп, туташыңыз. Керектүү маалыматтарды орното турган веб -баракча пайда болот. Pi IP дареги хосттун атына кирет. Мен дагы экинчи SSID менен сырсөздү узак жана негизинен жараксыз нерсеге алмаштырдым.

Же болбосо, жүктөлгөндөн кийин эле сериялык туташуу аркылуу орнотсо болот. Arduino сериялык мониторун ачыңыз (Куралдар астында).

Кирүү үчүн буйруктар:

Wi -FiSSID'иңизди SSId

Wi -Fi сырсөзүңүзгө сырсөз

MqttHost 192.168.x.y (PI IP дареги)

Сиз муну эффективдүү өчүрүү үчүн SSId1 жана Password1 киргизип, андан кийин узак жана жараксыз нерсени киргизе аласыз.

Эми сиз Sonoff которгучун кутучага аласыз, Node-Red жана Node-red панелин ачып, которуу баскычын чыкылдатып, Sonoffтун жоопторун камтышы керек болгон мүчүлүштүктөрдү оңдоо табулатурасын карасаңыз болот. Ошентип, биз дагы бир чоң кадамга жетиштик - биздин биринчи которуштуруубуз компьютерден/смартфондон башкарылат.

Азырынча биз коопсуздук жөнүндө айткан жокпуз. Шифрленген байланышты колдонуу мүмкүнчүлүгү бар. Бул орнотуу үчүн өтө татаал жана булутка негизделген брокер колдонулган жерде көбүрөөк ылайыктуу. Бардык туташкан түзмөктөр үчүн колдонуучу аттарын жана сырсөздөрдү кошуу жана анонимдүү колдонуучуларга тыюу салуу мүмкүнчүлүгү да бар. Бул орнотуу үчүн абдан жөнөкөй. Эми коопсуздук үчүн.

7 -кадам: Коопсуздук

MQTT ар бир кардар үчүн колдонуучу аттарын жана сырсөздөрдү берет. Бул жөндөө оңой. Балким, адегенде ар бир түзмөктүн атын өзгөртүү, андан кийин алардын колдонуучу аттарын жана сырсөздөрүн коюу оңой. Бул MQTT буйруктары аркылуу жасалышы мүмкүн жана Node-Red, балким, буларды жөнөтүүнүн эң оңой жолу. Адегенде ат коюу конвенциясы жөнүндө чечим кабыл алыңыз. Бир вариант - аттарды жайгашкан жерине жана функциясына негиздөө. Андан кийин, аталышты (Тема) колдонуучунун атын жана сырсөздү жазуу темасы менен бирге жазгыңыз келет. Эске алыңыз, Sonoff орнотууларын баштапкы жүктөөгө кайтаруу үчүн "баштапкы абалга келтирүү" дагы бар (караңыз: Wiki Пайдалануусу> Баскычтын Функционалдуулугу).

Пиди кубаттаңыз жана бир нече секунддан кийин Node-Red браузерин ачыңыз (IP дареги: 1880).

Node-Redде инжектордук түйүндү орнотуңуз жана муну mqtt өндүрүшүнө байланыштырыңыз жана mqtt серверин localhostко коюңуз. Теманы, колдонуучуну жана сырсөздү бош калтырыңыз, анткени биз аларды инъекция түйүнүндө орнотобуз. Ошондой эле mqtt киргизүү түйүнүн орнотуңуз жана муну мүчүлүштүктөрдү оңдоо түйүнүнө туташтырыңыз, ошондо биз жоопторду көрө алабыз. Mqtt киргизүү жазуусун localhostко коюңуз (мурунтан эле коюлушу керек) жана темага+/+/+киргизиңиз, андыктан ал бардык трафикти кармайт.

Инъекциялык түйүнгө орнотуулардын төмөнкү ырааттуулугун киргизиңиз.

Алгач туташууну текшериңиз

Тема: cmnd/sonoff/Status

Билдирүү: 6

"Баштоодо бир жолу сайууну" чыкылдатыңыз. Колдонуу. Биз мүчүлүштүктөрдү көрүшүбүз керек, анын ичинде stat/sonoff/STATUS6 маалыматынын 7 сабы

Теманы киргизиңиз: cmnd/sonoff/Topic andMessage: loungelight. Колдонуу. Бул которгучтун атын sonoffтан loungelightке өзгөртөт

Мүчүлүштүктөрдү оңдоо өтмөгү жаңы аталышы/темасы менен түзмөктүн кайра башталышын көрсөтүшү керек

Тема: cmnd/loungelight/MqttUser

Билдирүү: жарык берүүчү жай

Жайылтууну басыңыз. Мүчүлүштүктөрдү стат/loungelight/RESULT ичинен {"MtqqUser": "loungelight"} менен көрүү керек

Тема: cmnd/loungelight/MqttPassword

Билдирүү: loungelightPW (эскертүү мындан да элестүү болсун!)

Мүчүлүштүктөрдү оңдоо өтмөгүн тазалап, Колдонуу.

Жоопту stat/loungelight/RESULT тартып {"MqttPassword" менен көрүш керек: "loungelightPW"}

Эми NodeRed жана NodeRedPWди mqtt чыгуу түйүнүнө колдонуучу аты жана сырсөз катары киргизиңиз. Бул ачылган терезеде Server карандашынын сөлөкөтү жана коопсуздук өтмөгү аркылуу болот. Бул автоматтык түрдө башка MQTT түйүндөрүнө көчүрүлөт.

Менен кайра текшерүү

Тема: cmnd/loungelight/Статус жана билдирүү: 6. Колдонуу.

Жана жооп жөнөтүлөт.

Ошентип, биз Sonof түзмөгүбүздүн атын өзгөрттүк, ал cmnd/loungelight/…… темаларын угат жана колдонуучу аты loungelight жана loungelightPW сырсөзү менен MQTT тутумуна кирет. Биз ошондой эле Node-Red үчүн колдонуучу атын жана сырсөздү койдук.

Андан кийин биз MQTT чиркейинин серверине кардарларды колдонуучу аттары менен гана кабыл алышыбыз керектигин жана колдонуучулардын аттары менен сырсөздөрүн кабыл алышыбыз керек.

Жол -жобосу:

  • Чиркейди токтот
  • Өз конфигурация файлын түзүү
  • Конфигурация файлын түзөтүү
  • Сырсөз файлын түзүү
  • Колдонуучуларды/сырсөздөрдү кошуу.

Ошентип, жаңы PuTTY сессиясы менен кирип, төмөнкү буйруктарды аткарыңыз:

sudo /etc/init.d/mosquitto stop

cd /etc/mosquitto/conf.d/

sudo nano mosquitto.conf Бул редакторду баштайт.

Саптарды кошуу:

allow_anonymous жалган

password_file /etc/mosquitto/conf.d/passwd

талап_ тастыктамасы жалган

Сактоо жана чыгуу (Ctrl+X), Y, киргизиңиз.

sudo touch passwd Бул сырсөз файлын түзөт жана төмөнкү көрсөтмөлөр аттарды жана сырсөздөрдү кошот.

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd loungelight loungelightPW

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd NodeRed NodeRedPW

sudo /etc/init.d/mosquitto өчүрүп күйгүзүү

Эскертүү, жаңы түзмөктү кошкондо, сиз сериялык порт аркылуу колдонуучуну жана сырсөздү киргизишиңиз керек жана аларды сырсөз файлына кошушуңуз керек же убактылуу чиркей конфигурация файлын өзгөртүп, комментарий жазыңыз (саптын башында # кошуңуз) "allow_anonymous false" "жана" password_file /etc/mosquitto/conf.d/passwd "жана деталдар түзмөккө жөнөтүлгөндө жана жогоруда айтылгандай сырсөз файлына кошулганда, аларды баштапкы абалга келтирүү.

Биз sonoff атын loungelight деп өзгөрттүк, ошондуктан cmnd/loungelight/POWER темасын колдонуу үчүн mqtt чыгаруу түйүнүн жаңырттык (которуштурууга туташкан).

Орнотууну чыкылдатыңыз жана mqtt түйүндөрүнүн "туташкан" көрсөтүүсүн текшериңиз.

Кийинки которуштуруу баскычын аракет кылып, Sonoff которгучтун жооп берип жатканын көрсөткөн мүчүлүштүктөрдү издеңиз. Сиз түзмөк өзгөрүүнү тема менен көрсөткөнүн байкайсыз: stat/loungelight/POWER. Эми cmnd/sonoff/POWER деп орнотулган киргизүү түйүнүн stat/loungelight/POWERге өзгөртүңүз. Биз бул жабууну функционалдык мүмкүнчүлүгүбүздөгү боштукту колдоно алабыз. Башында орнотулган система бардык кирген колдонуучулар менен синхрондоштурулат, бирок Sonoff которгучундагы баскычты басуу менен жасалган алмаштыргычтар менен шайкештештирилбейт. Ошентип, азыр stat/loungelight/POWER mqtt киргизүү түйүнүнүн чыгымын коммутаторго (LHS) туташтырыңыз. Эми которгучту эки жолу чыкылдатыңыз жана "эгер мсг кирүүгө келсе, чыгууга өтүңүз" деген белгини алып салыңыз. Бул кээ бир жаңы варианттарды алып келет - "которуу сөлөкөтү киргизүү абалын көрсөтөт" дегенди тандаңыз. Колдонуу. Ошентип, азыр бизде жакшы кайтарым байланыш бар. Башкаруу тактасынын которгучунун позициясы, өзгөрүү кайда башталганына карабастан, Sonoff которгуч өзгөргөндө дайыма өзгөрүп турат.

Ошентип, бизде коопсуз, өз алдынча үй автоматташтыруу системасы иштеп жатат жана сиз каалагандай кеңейтүүгө даяр. Кийинки бөлүмдө мен буга чейин жүргүзгөн эксперименттеримдин айрымдарын жана мен чечүүнү пландап жаткан кыйынчылыктар жөнүндө айтып берем.

8 -кадам: кеңейтүү үчүн алгачкы кадамдар

Менде башка инструктивдүү үй автоматташтыруу Sonoff-Tasmota сенсорлорунун өнүгүү тактасы бар, ал Sonoff-Tasmota программасынын дагы бир нече мүмкүнчүлүктөрүн көрсөтөт:

Температураны жана нымдуулукту өлчөө

Кирүүчүлөрдү аныктоо (которууну киргизүү)

IR пульту (сыналгылар үчүн ж.

LED саптары - RGB жана NeoPixel экөө тең (жеке даректүү)

I2C сенсорлору

Жогоруда айтылгандар үчүн мен ESP12F жана ыңгайлаштырылган PCB колдонуп жатам. NodeMCU жана нан тактасы бирдей колдонулушу мүмкүн. Бул Sonoff түзмөгүнө зым салбастан, бул кошумча функцияларды иштетет, демек, бир кыйла коопсуз ыкма. Температураны киргизүү менен мен электрдик жуурканды автоматташтырууга жетиштим.

Музыка жана Интернет Радиону оңой эле кошсо болот. Бул белгилүү бир станцияларды же альбомдорду белгиленген убакта же мүмкүн болгон конок (телефон) табылганга жооп берүү мүмкүнчүлүктөрүн ачат. Бул байланышкан көрсөтмө Smartphone Control менен жогорку сапаттагы Музыка ойноткучта жана Интернет Радиодо. Бул дагы Node-RED тарабынан башкарылгандыктан, бирден ашык үн тутумуна ээ болуу жана аларды айдоо үчүн MQTT байланышын колдонуу мүмкүн болушу керек.

Мен ошондой эле Node-Redди изилдеп жатам, анын ичинде электрондук каттарды жөнөтүү жана үн эскертүүлөрүн жасоо. Системанын уюлдук телефонуңуздун IP дарегин пингге салуу менен сиз киргениңизди/чыкканыңызды аныктоо мүмкүнчүлүгү бар. Node -Red аба -ырайына жана жаңылыктарга да кире алат - андыктан маалыматты кошуп, автоматташтырууга болот.

Үйрөнүү керек болгон бир нече амалдар бар, бирок алар экинчи жолу оңой эле өлүп калышат.

Дагы бир проспекти панелди көрсөтүү үчүн пи үчүн дисплей кошуп жатат. Бул 'аткарылып жаткан иш' - же башкача айтканда мен өтө бактылуу эмесмин. Мен алган дисплейди портрет режимине которуу кыйын жана Chromium браузери абдан жай. Альтернатива - ebayден эски планшетти алып, аны колдонуу. Мен Pi 2 менен аракет кылып, бул жетишерлик жакшыртууну камсыздай алабы же жокпу, көрө алам (бул өнүгүү үчүн колдонулган модель В).

Бул сиздин баштооңузду жана фантазияңызды бузат деп үмүттөнөм. Потенциалдын көлөмү чоң. Керек болсо Sonoff кодун башка сенсорлор үчүн да өзгөртсө болот.

Жалпысынан алганда, мен бул системанын эмне кыла алаарына таң калдым. Менин баштапкы максатым - смартфондон которууну өз алдынча система аркылуу ишенимдүү түрдө кууп чыгуу. Менде серверлерди жана кардарларды башкаруу жана колдонуучу интерфейси үчүн html жазуу керек деген көрүнүштөр болгон. Мунун аяктаган жери алда канча алдыда, көбүрөөк коопсуздук, мыкты ишенимдүүлүк, фантастикалык колдонуучу интерфейси, сүйрөө жана таштоо программасы жана кеңейтүү үчүн чоң потенциал. Жана мунун баары алда канча аз күч менен.

Майк

9 -кадам: Кошумча - Raspbian Stretch Liteден жүктөө

Бул параметр Raspbian Stretchтин толук версиясы менен келген программалык камсыздоолордон сактайт. Мунун көбү үйдү автоматташтыруу үчүн Pi колдонууда керек болбойт. Бирок Node-Red орнотулушу керек.

1 -кадамдагыдай улантыңыз, бирок Raspbian Stretch эмес, Raspbian Stretch Lite колдонуңуз.

2 -кадамдын ордуна төмөнкүлөрдү кылыңыз:

Sudo apt -y npm орнотуу

npm -v кайтып келиши керек: 1.4.21 же кийинчерээк

sudo npm орнотуу -g n

sudo n 8.9.0

Биз азыр Node-Red орнотуу үчүн түйүн пакет менеджерин колдоно алабыз:

sudo npm node-red --global --unsafe-perm орнотуу

Бул туура эмес даректен улам бир нече ката билдирүүлөрдү берет. Бирок система бул көйгөйдү чечүү үчүн "булак компиляциясын" жасайт. Эгерде сиз жогорудагы көрсөтмөнү кайталасаңыз (зарыл эмес), каталар болбойт.

Бизде азыр Node-Red жана аны колдогон пакеттер орнотулган жана чиркейди жүктөө менен 3-кадамга өтүүгө болот.

Зымсыз конкурс
Зымсыз конкурс
Зымсыз конкурс
Зымсыз конкурс

Зымсыз таймашта экинчи орунду ээледи

Сунушталууда: