Агуулгын хүснэгт:

Гэрийн туслах Geiger Counter Integration: 8 алхам
Гэрийн туслах Geiger Counter Integration: 8 алхам

Видео: Гэрийн туслах Geiger Counter Integration: 8 алхам

Видео: Гэрийн туслах Geiger Counter Integration: 8 алхам
Видео: Ошибки в сантехнике. Вводной узел в квартиру. 2024, Долдугаар сарын
Anonim
Image
Image
Ажлын зарчим
Ажлын зарчим

Энэхүү гарын авлагад би HASS (гэрийн туслах) дээр тусгайлан geiger тоолуурт хэрхэн тусгай мэдрэгч нэмэх талаар харуулах болно, гэхдээ энэ процесс бусад мэдрэгчтэй ижил төстэй байна.

Бид NodeMCU самбар, arduino дээр суурилсан geiger тоолуур, аль хэдийн суулгасан гэрийн туслахыг ашиглах болно.

Интеграци нь MQTT сервер дээр суурилсан байх болно (нийтийн болон хувийн), би үүнийг алхам алхамаар авч үзэх болно.

Хэрэв та гэрийн туслах гэж юу болохыг мэдэхгүй бол https://www.home-assistant.io/ хуудсанд зочилно уу. Энэ бол маш сайн засварлагддаг, маш их тохируулдаг гэрийн автоматжуулалтын платформ юм.

Та дараахь зүйлийг сурах болно

- Гэрийн туслахын дэвшилтэт тохиргоо

- NodeMCU (хөгжлийн самбар) ба үүнийг Arduino IDE -ээр хэрхэн програмчлах талаар

- NodeMCU самбар дээр Arduino IDE ашиглан OTA (агаарын шинэчлэлтээр)

- цуваа төхөөрөмжийг NodeMCU руу хэрхэн холбох талаар

- Linux дээр MQTT серверийг гараар суулгах (заавал биш)

Үндсэн таамаглал:

- танд гэрийн туслах ажиллуулж байна

- Та электроникийн талаар бага зэрэг мэддэг

- танд Arduino IDE суулгасан байна

Алхам 1: Эд анги, багаж хэрэгсэл

Эд анги:

1. NodeMCU самбар

2. талх

3. эрэгтэй-эрэгтэй, эрэгтэй-эмэгтэй juper утас

3. usb to micro usb кабель

4. цуваа интерфэйстэй arduino geiger тоолуур

("arduino geiger couter" -ийг Ebay -ээс хайх)

5. цацраг идэвхт материал (заавал биш жижиг туршилтын дээж)

Хэрэгсэл:

1. Arduino IDE

2. Home Assistant суулгасан

Алхам 2: Ажлын зарчим

Бидний зорилго бол гейгерийн тоолуурын заалтыг HomeAssistat (HASS) дээр харуулах явдал юм. Нэг талд нь бид HASS сервер ажиллуулж байгаа бөгөөд энэ нь бөөрөлзгөнө pi эсвэл бусад төхөөрөмж байж магадгүй, нөгөө талд нь геигер тоолуур байна.

Гейгер тоолуур нь цуваа порттой бөгөөд нэг шийдэл нь HASS ажиллаж буй RaspberryPi -д шууд цуваа портыг холбох явдал юм.

Энэ нь сайн санаа биш байж болох зарим шалтгаанууд:

- тэнд физик орон зай байхгүй

- Бид цуваа порт дээр өөр төхөөрөмжтэй

- бид геигер тоолуурын оронд гадаа байрлуулах ёстой байгаль орчны мэдрэгчийг хавсаргахыг хүсч байна

За, бид WIFI -ээр дамжуулан холбогдох өөр боломжийг судлах болно.

HASS нь мэдрэгчийн өгөгдлийг уншиж, MQTT серверээр дамжуулан ийм төрлийн серверийг жижиг төхөөрөмжүүдийн хувьд энгийн холболт гэдгийг харуулахыг дэмждэг бөгөөд нэг төхөөрөмж нь "сэдвээр" мессеж нийтэлдэг бол нөгөө нь тухайн сэдвээр мессеж хүлээн авдаг. Тиймээс HASS сонсох болно, бидэнд мессежийг нийтлэх зүйл хэрэгтэй байна.

Манай мэдрэгч зөвхөн цуваа шугамаар ярихыг мэддэг тул бид цуваа шугамыг унших боломжтой бөгөөд WIFI -ээр холбогдож MQTT сервертэй ярилцах боломжтой самбарыг ашиглах болно. Үүнийг хийдэг хямд самбар бол NodeMCU юм.

NodeMCU -ийг Arduino IDE програмчлах боломжтой. Ноорог нь маш энгийн бөгөөд дараахь зүйлийг хийдэг.

- WIFI сүлжээнд холбогддог

- сервертэй MQTT холболт хийж, амжилтгүй болсон эсвэл салгагдсан тохиолдолд холболтыг дахин оролдоно

- ирж буй өгөгдлийг бүхэл тоо болгон сонсдог

- бүхэл тоо ирмэгц үүнийг MQTT -ээр дамжуулан тодорхой сэдэв рүү илгээдэг

Алхам 3: Төхөөрөмжийг угсрах

Төхөөрөмжийг угсрах
Төхөөрөмжийг угсрах

Бид талх, утас ашиглах болно, тиймээс энэ нь маш энгийн бөгөөд бидэнд хэд хэдэн алхам байна:

- NodeMCU -ийг талхны самбар дээр тавь

- гейгер хоолойг гейгер тоолууртай холбоно уу (туйлшралаас болгоомжил)

- VIN нь geiger counter дээр очдог

- GND goiger тоолуур руу явдаг -

- NodeMCU D7 (зүү 13) geiger TX руу явдаг

- NodeMCU D8 (pin 15) нь geiger RX руу явдаг

- NodeMCU -ийг компьютерээс микро USB -ээр тэжээх

Алхам 4: Кодыг байршуулах

Кодыг байршуулах
Кодыг байршуулах
Кодыг байршуулах
Кодыг байршуулах
Кодыг байршуулах
Кодыг байршуулах
Кодыг байршуулах
Кодыг байршуулах

Бид Arduino IDE -ийг ашиглах гэж байгаа бөгөөд NodeMCU самбарыг суулгаж, Adafruit_MQTT номын санг суулгасан эсэхийг шалгах болно.

1. Github репозиторыг хуулбарлах: https://github.com/danionescu0/arduino болон ноорогоо төслүүдээс хуулж аваарай

2. Arduino IDE -ийг нээж NodeMCU -г суулгана уу

- Файл -> Тохиргоо руу очоод нэмэлт самбар менежерийн URL хаягийг https://arduino.esp8266.com/stable/package_esp8266com_index.json дээр нэмж оруулаарай.

-Tools -> Board -> Board Manager -ээс "nodemcu" гэж бичээд ESP8266 Community -ийн esp8266 оруулгыг сонгоод суулгах товчийг дарна уу.

3. Adafruit_MQTT суулгана уу

-Хэрэгслүүд -> Номын санг удирдах -> "Adafruit_MQTT" гэж хайгаад "Arduino MQTT номын сан" -г суулгана уу.

4. Компьютер дээрээ USB кабелийг залгаж, самбарыг тохируулна уу.

-Tools -> Board -> NodeMcu 1.0 -ийг сонгоно уу

-Багаж хэрэгсэл -> Порт -> таны USB порт

- бусад тохиргоог өөрчлөхгүй үлдээх

4. Ноорог хэсэгт өөрийн WIFI -ийн итгэмжлэлийг өөрийнхтэй тохируулан өөрчилнө үү.

#тодорхойлох STASSID "ssid" // Өөрийн WIFI SSID -ээр солино уу

#тодорхойлох STAPSK "нэвтрүүлэх" // WIFI нууц үгээ солино уу

5. Ноорогоо самбартаа байршуулж, байршуулсны дараа товчлуураас самбарыг дахин тохируулна уу

6. Цуваа дэлгэцийг нээнэ үү, хэрэв бүх зүйл сайн болсон бол та дараах гаралтыг харах ёстой.

Ачаалж байна

IP хаяг: 192.168.1.168 OTA идэвхжсэн байна MQTT -д холбогдож байна… MQTT Холбогдсон! {"цацраг туяа": 0.03}..

Алхам 5: HomeAssistant -ийг тохируулна уу

HomeAssistant -ийг тохируулах
HomeAssistant -ийг тохируулах
HomeAssistant -ийг тохируулах
HomeAssistant -ийг тохируулах

Таныг гэрийн туслах ажиллуулж байна гэж бид таамаглах болно. Миний систем дээр RaspberryPi дээр HASSOS 3.12 хувилбар байдаг. Хэрэв таны гэрийн туслах хувилбар хэт хуучин эсвэл маш шинэ бол зарим онцлог шинж чанарууд өөр байж болно. Энэ заавар нь 3.12 хувилбартай ажилладаг.

Хэрэв танд Home Assistant суулгаагүй бол тэдний албан ёсны суулгах гарын авлагыг үзээрэй:

Суулгах ажлыг эхлүүлэхийн өмнө NodeMCU -ийг залгаж, өгөгдөл нийтэлж байгаа эсэхийг шалгаарай.

За, бид тохиргооны хувьд хэд хэдэн алхам хийх болно.

1. Хэрэв танд цэс байхгүй бол "файл засварлагч" -ыг суулгаарай, энд албан ёсны заавар байна:

2. "/config/configuration.yaml" файлыг засварлаж дараах зүйлийг нэмж хадгална уу

- Хэрэв танд одоогоор байхгүй бол mqtt хэсэг

mqtt:

брокер: broker.hivemq.com нээлт: жинхэнэ нээлт_тухайн засвар: га

- мэдрэгчийн хэсэг

мэдрэгч:

- платформ: mqtt нэр: "Цацраг туяа" төлөвийн_сэдэв: "га/цацраг туяа" -ын_хэмжилт: 'uSv' өвөрмөц_ид: "цацрагийн" утга_темплэйт: "{{value_json.radiation}}"

3. Тохиргоо -> Серверийн хяналтаас: "Тохиргоог шалгах" дээр дарж yaml тохиргооны файлыг шалгаж, дараа нь "дахин эхлүүлэх" дээр дараад дахин асаахыг хүлээнэ үү.

4. Тойм -> Баруун дээд буланд байгаа цэс -> UI -ийг тохируулах -> баруун доод буланд байгаа + товчийг дарна уу

5. Жагсаалтаас "мэдрэгч" -ийг сонгоно уу -> "аж ахуйн нэгж" талбарт "sensor.radiation" гэж хайна уу, нэрийн талбарт "Radiation" гэж бичээд ok дарна уу, энэ нь одоо үндсэн хуудсан дээр байх ёстой.

Алхам 6: Өөрийн MQTT серверийг тохируулах [Нэмэлт]

MQTT -ийн талаар жаахан ярилцъя

MQTT бол үйлчлүүлэгч серверийн мессеж дамжуулах протоколыг нийтлэх/захиалах явдал юм. Энэ нь хөнгөн жинтэй, нээлттэй, энгийн бөгөөд хэрэгжүүлэхэд хялбар байхаар хийгдсэн. Эдгээр шинж чанарууд нь жижиг кодын ул мөр шаардлагатай ба/эсвэл сүлжээний зурвасын өргөнийг дээд зэргээр ашиглах боломжийг олгодог Машинаас Машинд (M2M), Интернэтийн Зүйл (IoT) контекст гэх мэт хязгаарлагдмал орчин зэрэг олон нөхцөл байдалд ашиглахад тохиромжтой болгодог.”

MQTT 3.1.1 албан ёсны тодорхойлолтоос авсан ишлэл.

Үндсэндээ бид нэг талдаа хаа нэгтээ мессеж нийтлэх боломжтой, нөгөө талд нь эдгээр мессежийг сонсож, өгөгдлөөр ямар нэгэн зүйл хийх боломжтой болно. MQTT нь "сэдвүүд" -ийг дэмждэг бөгөөд сэдвүүд нь брокерын үйлчлүүлэгч бүрийн мессежийг шүүхэд ашигладаг мөрүүд бөгөөд хэрэв бид "/цацрагийн" сэдэвт мессеж нийтлэх юм бол сонсогч бидний илгээж буй мессежийг авахын тулд ижил сэдвээр захиалах ёстой.

MQTT-ийн талаархи гайхалтай гарын авлага энд байна:

Үнэгүй үүр зөөгчийг ашиглах нь зарим сул талуудтай байдаг.

- Таны сэдвийг сонсож буй хүн таны зурвасыг хүлээн авах болно

- Хэрэв энэ нь буурах эсвэл дараа нь төлбөр төлөх шаардлагатай бол та үүнийг ашиглах боломжгүй болно (хэрэв та төлөхгүй бол)

- Хэрэв ижил сэдвээр мессеж нийтэлдэг хүн та мөн тэдний мессежийг хүлээн авах юм бол тэд таарахгүй зурвасуудыг нийтэлж, таны HASS графикийг эвдэж магадгүй юм.

Хувийн сервер ашиглаж байна

Хэрэв та олон нийтэд нээлттэй сервер ашиглахыг хүсэхгүй байгаа бол хувийн сервер ашиглах боломжтой. Бид Mosquitto MQTT -ийг бөөрөлзгөнө pi эсвэл компьютер гэх мэт ubuntu / debian сервер дээр суулгах гэж байна.

Mosquitto бол MQTT протоколыг хэрэгжүүлдэг сервер бөгөөд үнэ төлбөргүй байдаг.

Үүнийг суулгахын тулд raspnerry pi эсвэл debian дээр суурилсан бусад сервер рүү нэвтэрч ороод ажиллуулна уу.

sudo apt update

sudo apt install -y шумуул шумуул -үйлчлүүлэгчид sudo systemctl нь шумуул.үйлчилгээг идэвхжүүлдэг.

Энэ нь репозиторыг шинэчилж, шумуулын сервер, үйлчлүүлэгчийг суулгаж, эхлүүлэх үед ажиллуулах үйлчилгээг идэвхжүүлэх болно

Серверийн ip -ийг ажиллуулахын тулд:

хостын нэр

мөн иймэрхүү зүйлийг гаргана:

192.168.1.52 172.17.0.1 172.18.0.1

Тиймээс миний ip бол 192.168.1.52, доорх командыг өөрийн ip -ээр солино уу

Та MQTT серверийг мессеж нийтлэх, консолын хэрэгслээр хүлээн авах замаар туршиж үзэх боломжтой, учир нь энэ хоёр терминал нь мессежийг сонсох нэгийг нээх ёстой.

Эхлээд терминал дээр "/some-topic" гэсэн мессежийг сонсохын тулд энэ тушаалыг ажиллуулна уу.

mosquitto_sub -h 192.168.1.52 -t /зарим -сэдэв

Өөр терминал нээж, энэ сэдвээр зурвас нийтэлнэ үү.

mosquitto_pub -h 192.168.1.52 -t /some -topic -m '{"чийгшил": 74.0}'

Эхний терминал дээр '{"чийгшил": 74.0}' гэж хэвлэгдсэн байхыг харах ёстой.

Онцгой анхаарал:

- энэхүү тохиргоо нь HASS, Mosquitto, NodeMCU хоёрыг нэг WIFI сүлжээнд холбогдсон бөгөөд галт ханын дүрэм байхгүй бөгөөд тэд чөлөөтэй харилцах боломжтой гэж үздэг.

-Mosquitt MQTT сервер нь хэрэглэгчийн нэр/нууц үггүй, хэрэв та итгэмжлэлийг тохируулахыг хүсвэл үүнийг шалгаарай: https://www.steves-internet-guide.com/mqtt-username-password-example/ Мөн та тохируулах хэрэгтэй болно. Гэрийн туслах болон arduino ноорог дээрх итгэмжлэлүүд

Алхам 7: NodeMCU -д зориулсан OTA (Агаарын шинэчлэлтүүд)

Агаарын шинэчлэлтүүд нь хөгжүүлэлтийн самбарыг физик кабель ашиглахгүйгээр утсаар гялалзуулж болно гэсэн үг юм.

Arduino IDE нь ESP8266 цуврал болон бусад зарим самбарт энэ функцийг дэмждэг.

- USB кабелиар анхны гэрэл асаах шаардлагатай

- WIFI дээр виртуал порт үүсгэдэг бөгөөд үүнийг зөвхөн Arduino IDE дээрээс харах боломжтой

- Цуваа дибаг хийх мэдээлэл байхгүй байна

- нууц үгээр хамгаалалтыг дэмждэг

OTA -ийг ESP8266 ноорог дээр идэвхжүүлэхийн тулд эхлээд номын санг оруулна уу.

#"ArduinoOTA.h" оруулна уу

Мөн энэ ноорог нууц үгийн тогтмолыг тодорхойлно уу.

SKETCHPASS "some_password" -ыг #тодорхойлох

Тохируулах хэсэгт эдгээр мөрүүдийг нэмнэ үү.

байхад (WiFi.waitForConnectResult ()! = WL_CONNECTED) {

Serial.println ("Холболт амжилтгүй боллоо! Дахин ачаалж байна …"); саатал (5000); ESP.restart (); } ArduinoOTA.setPassword (SKETCHPASS); ArduinoOTA.onStart ( () {String type; if (ArduinoOTA.getCommand () == U_FLASH) {type = "sketch";} else {// U_FS type = "filesystem";} Serial.println ("Шинэчилж эхлэх " + төрөл);}); ArduinoOTA.onEnd ( () {Serial.println ("\ nТөгсгөл");}); ArduinoOTA.onProgress ( (unsigned int progress, unsigned int total) {Serial.printf ("Дэвшил:%u %% / r", (явц / (нийт / 100)));}); ArduinoOTA.onError ( (ota_error_t алдаа) {Serial.printf ("Error [%u]:", error); if (error == OTA_AUTH_ERROR) {Serial.println ("Auth Failed");} if if (error == OTA_BEGIN_ERROR) {Serial.println ("Эхлээгүй");} өөр тохиолдолд (алдаа == OTA_CONNECT_ERROR) {Serial.println ("Холбогдож чадсангүй");} өөр тохиолдолд (алдаа == OTA_RECEIVE_ERROR) {Serial.println (" Хүлээн авах амжилтгүй болсон ");} if if (error == OTA_END_ERROR) {Serial.println (" End Failed ");}}); ArduinoOTA.begin (); Serial.print ("IP хаяг:"); Serial.println (WiFi.localIP ());

Мөн давталтын хэсэгт энэ мөрийг нэмнэ үү.

ArduinoOTA.handle ();

Самбарыг ачаалсны дараа анхны кодоо байршуулсны дараа Arduino IDE дээр Tools-> Port хэсэгт хоёр төрлийн портыг харах хэрэгтэй.

Цуваа портууд: /dev /ttyUSB0 (жишээ нь)

Сүлжээний портууд: esp8266-xxxxx дээр 192.168.1.xxx

Одоо та сүлжээний портыг сонгож, ноорогоо байршуулж болно, танд ноорог нууц үгийг оруулахыг танаас хүсэх болно (таны тогтмол дээр тодорхойлсон нууц үг)

Алхам 8: Дүгнэлт, ирээдүйн ажил

Энэ гарын авлага нь бусад төрлийн мэдрэгчийн талаархи мэдээллийг илгээхэд хялбархан өөрчилж болно.

- Хэрэв таны мэдрэгчийг номын сангаар дамжуулан NodeMCU шууд дэмждэг бол мэдрэгчийн өгөгдлийг цуглуулж MQTT -ээр шууд дамжуулна уу.

- Хэрэв мэдрэгчийн номын сан нь NodeMCU -тэй ажиллахгүй боловч зөвхөн Arduino -д зориулагдсан бол кодоо arduino -д байршуулж, утгыг цуваа шугамаар гаргаад NodeMCU дээр уншаад түлхээрэй (яг л геигер тоолууртай хийсэн шиг)

Бид үүнийг олон мэдрэгчээс өгөгдөл илгээхээр өөрчилж болно.

- мэдрэгчээ NodeMCU руу холбоно уу

- мэдрэгч тус бүрийн өгөгдлийг авах

- Мэдрэгч бүрийн хувьд өгөгдлийг өөр сэдвээр нийтлэх

- HASS -д янз бүрийн сэдвийг сонсох олон мэдрэгчийг (геейгертэй хийсэн шиг) тодорхойлно

Зөвлөмж болгож буй: