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

ATTINY85 ба A1 GSM -ээс SMS бичвэрийн температурын сэрэмжлүүлэг: 5 алхам
ATTINY85 ба A1 GSM -ээс SMS бичвэрийн температурын сэрэмжлүүлэг: 5 алхам

Видео: ATTINY85 ба A1 GSM -ээс SMS бичвэрийн температурын сэрэмжлүүлэг: 5 алхам

Видео: ATTINY85 ба A1 GSM -ээс SMS бичвэрийн температурын сэрэмжлүүлэг: 5 алхам
Видео: AVR Tutorials #1. Getting started with ATtiny85 || Microchip Studio|| USB ASP || LED Blinking 2024, Долдугаар сарын
Anonim
ATTINY85 ба A1 GSM -ээс SMS мессежийн температурын сэрэмжлүүлэг
ATTINY85 ба A1 GSM -ээс SMS мессежийн температурын сэрэмжлүүлэг

Энэхүү зааварчилгаа нь энгийн температур мэдрэгчээс температурыг хэрхэн яаж авах, гар утсандаа SMS мессежээр илгээхийг танд харуулав. Аливаа зүйлийг хялбарчлахын тулд би температурыг тогтоосон интервалаар илгээдэг боловч үүнийг зөвхөн онцгой тохиолдол / сэрэмжлүүлгээр хэрхэн яаж хийхийг харуулдаг. Тоног төхөөрөмжийн өртөг нь маш бага, 10 доллараас бага боловч sms -ийн тогтмол зардлыг анхаарч үзэх хэрэгтэй.

Хүнд өргөлтийг энгийн боловч хүчирхэг ATTINY 85 хийдэг бөгөөд энэ нь температурын өгөгдлийг хадгалж, дараа нь AI-Thinker A6 GSM модулаар SMS илгээх болно.

Товчхондоо та ATTINY85 кодыг Arduino IDE орчинд бичиж, USBASP сериал/USB хөрвүүлэгч ашиглан ATTINY85 дээр шатаадаг. Би AI-Thinker A6 GSM модуль болон Arduino IDE-ийг тохируулах талаар өмнөх хоёр хичээл дээр бичсэн болно. Энд өөр байгаа зүйл бол ATTINY ба A6 GSM модулийг цуваа холболт ашиглан холбох явдал юм.

www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…

Програмчлал хийсний дараа ATTINY нь термометрийн мэдрэгч болох Даллас 18В20 -аас температурын өгөгдлийг уншиж, дараа нь өгөгдөл, тушаалуудыг A6 GSM модульд цуваа холболтоор илгээж, дараа нь гар утас / ухаалаг гар утсандаа SMS мессеж болгон илгээдэг.

Энд танд хэрэгтэй зүйл байна:

1. USBASP цуваа/USB хөрвүүлэгч.

2. ATTINY 85.

3. AI-Thinker A6 GSM модулийн 6-р хувилбар (SMS кредит бүхий симтэй).

4. ATTINY85 -ийн 3.3v талхны цахилгаан хангамж.

5. 3.3.v AI-Thinker A6 GSM модулийн USB тэжээлийн хангамж.

6. Даллас 18В20 температур мэдрэгч.

7. 18B20 мэдрэгчийн 4.7k эсэргүүцэл.

8. Талх, кабель.

9. Arduino IDE (үүний тулд би 1.8.5 хувилбарыг ашигласан).

10. Үнэгүй USB порт бүхий Windows X зөөврийн компьютер (би 10 -р хувилбарыг ашигласан).

Алхам 1: ATTINY 85 програмчлах

Энд Arduino IDE код байна (Та мессеж илгээх утасны дугаараа өөрчлөх шаардлагатай болно.)

#оруулах #оруулах #оруулах

// *** // *** RX ба TX тээглүүрийг тодорхойлно уу. Ашиглагдаагүй хоёр // *** тээглүүрийг сонгоно уу. Хэрэв та I2C ашиглахаар төлөвлөж байгаа бол D0 (зүү 5) // *** ба D2 (зүү 7) -ээс зайлсхийхийг хичээгээрэй. // *** #dex RX 3 // *** D3, Pin 2 #dexine TX 4 // *** D4, Pin 3

// *** // *** Програм хангамж дээр суурилсан цуваа портыг тодорхойлох. Кодыг техник хангамжид суурилсан цувралыг дэмждэг бусад // *** платформ дээр ашиглахын тулд // *** нэрийг Serial ашиглан ашиглана уу. Тоног төхөөрөмжийн сериалыг дэмждэг // *** чип дээр энэ мөрөнд // *** бичээрэй. // ***

SoftwareSerial mySerial = SoftwareSerial (RX, TX);

// *** // *** Pinout ATtiny25/45/85: // *** PDIP/SOIC/TSSOP // *** ================= ================================================== ========================== // *** // *** (PCINT5/RESET/ADC0/dW) PB5 [1]*[8] VCC // *** (PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3 [2] [7] PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2) // *** (PCINT4/ XTAL2/CLKO/OC1B/ADC2) PB4 [3] [6] PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1) // *** GND [4] [5] PB0 (MOSI/DI/SDA/AIN0) /OC0A/OC1A/AREF/PCINT0) // *** // ATTINY 85 давтамжийг дотоод 8 МГц дээр тохируулсан

// *** // *** OneWire өгөгдөл // *** утсыг холбосон зүү. // *** ONE_WIRE_BUS -ийг #тодорхойлох

//* // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Далласын температурын талаархи манай OneWire лавлагааг дамжуулаарай. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Цуваа портыг эхлүүлэх // *** mySerial.begin (115200); саатал (60000);

// *** Номын санг эхлүүлэх. _sensors.begin (); }

void loop () {

// *** // *** Одоогийн температурыг аваад харуулна. // *** _sensors.requestTemperatures (); саатал (2000); давхар tempC = _sensors.getTempCByIndex (0); давхар tempF = _sensors.getTempFByIndex (0); // алдааг шалгах - заримдаа эхлэх үед температурыг 85С гэж харуулдаг

if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Хэт халуун");}}

хүчингүй SMS_temp (double mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // SMS горимын саатлыг тохируулах (1000); mySerial.println ("AT+CMGF = 1"); // SMS горимын саатлыг тохируулах (1000); //mySerial.println("AT+CMGS=\"+ТАНЫ ДУГААР / ""); // утасны дугаарыг тохируулах (давхар хашилтанд ороосон) саатал (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); саатал (1000); mySerial.write (0x1A); // ctrl+z мессеж саатуулах төгсгөлийг илгээдэг (1000); mySerial.write (0x0D); // Hex саатал дахь тэрэгний буцах хугацаа (1000); mySerial.write (0x0A); саатал (1000000); // 17 минут - өөрийн програмд тохируулан тохируулна уу}

Arduino IDE орчныг нээгээрэй - Үүнийг хэрхэн яаж даван туулах талаар би өмнө нь дурдсан өмнөх зааварчилгаандаа тайлбарласан болно.

Дараахь номын сан танд хэрэгтэй болно

SoftwareSerial.h

OneWire.h

DallasTemperature.h

Дараа нь A1 Thinker -тэй холбох шаардлагатай ATTINY85 дээрх RX ба TX тээглүүрүүдийг тохируулна уу. ATTINY 85 нь 8 тээглүүртэй, хоёр талдаа дөрвөн ширхэг бөгөөд гадаргуу дээрх цэгийг ашиглан лавласан болно. Pin 1 буюу RESET зүү нь тухайн цэгийн хажууд байна.

(энэ тохиолдолд би Pin2 ба 3 -ийг сонгосон - Эдгээр нь ATTINY 85 -ийн гадаргуу дээрх цэгийн хажууд байгаа RESET зүүтэй ижил тал дээр байна. 2 -р зүү нь RESET зүүгээс дараагийн зүү бөгөөд 3 -р зүү нь Pin -ийн хооронд байна. 2 ба GROUND)

Дараа нь та температур мэдрэгчийг тохируулах хэрэгтэй.

ONE_WIRE_BUS -ийг #тодорхойлох

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Дараа нь програм хангамжийн цуваа портыг тохируулна уу

mySerial.begin (115200);

саатал (60000);

дараа нь _sensors.begin () ашиглан мэдрэгчийг дуудах;

Дараа нь урьдчилан тогтоосон хугацаанд санал асуулга явуулж, температурыг бүртгэж, утгаас хамааран мессеж / сэрэмжлүүлэг илгээдэг давталт байдаг. Энэ нь SMS_temp функцийг ашигладаг бөгөөд энэ нь давталтын цагийг тохируулдаг

void loop () {sensors.requestTemperatures (); саатал (2000);

давхар tempC = _sensors.getTempCByIndex (0);

давхар tempF = _sensors.getTempFByIndex (0);

хэрэв (tempC <= 14) {SMS_temp (tempC, "АЮУЛГҮЙ Хүйтэн");}

if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Маш хүйтэн");}

if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}

if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Хэт халуун");}

}

==============

Дараа нь ATTINY85 -д байршуулахад бэлтгэхийн тулд Arduino IDE -ийг тохируулна уу.

Анхаарах хэд хэдэн зүйл

1- Хэрэв танд ATTINY гэр бүл байхгүй бол дараах URL хаягийг https://raw.githubusercontent.com/damellis/attiny/… файл/Тохиргоо/Нэмэлт самбар удирдах менежерийн URL хаягаар оруулна уу.

Дараа нь Arduio IDE дотроос Tools/Board/Board Manager дээр дарж ATTINY гэж хайгаад шинэ самбарыг суулгаарай. Процессорыг Attiny85 болгон өөрчилнө үү.

Алхам 2: Хөтөлбөрийг ATTINY85 -д байршуулах

Хөтөлбөрийг ATTINY85 дээр байршуулж байна
Хөтөлбөрийг ATTINY85 дээр байршуулж байна

Түүнчлэн, энэ талаар миний өмнөх зааварчилгааг үзнэ үү-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 нь програмчлах, ажиллах горим гэсэн хоёр горимтой.1. ХӨТӨЛБӨРИЙН ХЭРЭГ Нэгдүгээрт, ATTINY85 дээрх зүүг тодорхойл. Үүнийг хийхийн тулд RST/RESET зүүний хажууд байгаа чипний гадаргуу дээрх жижиг ховилыг олоорой. Үүнийг лавлах цэг болгон ашигласнаар та бусад тээглүүрийг тодорхойлж болно. Энэ бүх мэдээллийг A85 мэдээллийн хуудсанд өгсөн болно -https://www.microchip.com/downloads/en/DeviceDoc/At…

USBasp ба ATTINY85 нь дээрх зурагт үзүүлсэн шиг холбогдсон байх ёстой.

Дараа нь Arduino IDE дээр програмистыг USBasp, давтамжийг дотоод 8Mhz болгож тохируулна уу.

USBasp -ийг зөөврийн компьютер дээрх USB порт руу холбоно уу (Windows 10 дээр, хэрэв USBasp драйвер байхгүй бол https://www.fischl.de/usbasp/ вэбсайтын дагуу Zadig -ийг ашиглана уу)

Дараа нь USBasp холбогдсон үед Arduino IDE Sketch/upload -аас сонгоно уу, та Arduino IDE -ийн улаан үсгээр үзүүлж, avrdude -ээр дуусгах явцыг харах болно гэж найдаж байна. Баярлалаа.

Энэ үе шатанд гарсан алдаа нь ихэвчлэн сул кабель эсвэл буруу драйвертай холбоотой байдаг.

Алхам 3: Хөтөлбөрөө ажиллуулж байна

Хөтөлбөрөө ажиллуулж байна
Хөтөлбөрөө ажиллуулж байна
Хөтөлбөрөө ажиллуулж байна
Хөтөлбөрөө ажиллуулж байна
Хөтөлбөрөө ажиллуулж байна
Хөтөлбөрөө ажиллуулж байна

Нэгдүгээрт, Даллас 18b20 термометр мэдрэгчийн талаар. Дээрх зурагт үзүүлсэн шиг Ground (G), data (D), VCC гэсэн 3 голтой. Ажиллуулахын тулд D ба VCC -ийг 4.7k эсэргүүцэлтэй холбох шаардлагатай. G ба VCC нь холбогдох туйлуудтай холбогдсон байхад D нь кодонд тохируулагдсан ATTINY 85, pin - [6] PB1 -тэй холбогдсон байна.

Дараа нь ATTINY -ийг A6 GSM -д дараах байдлаар холбоно уу (мөн дээр үзүүлсэн)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

мөн A6 дээр, A6 PWR A6 VCC 5.0A6 RST A6 GND (Газартай холбогдоогүй байна !!!!!)

Одоо хоёр төхөөрөмжийг хоёуланг нь асааж, хэдхэн секундын дараа A6 RST зүүтэй холбогдсон кабелиар A6 газардуулгын зүү дээр түр хүрнэ үү. A6 нь унтрах ба асах бөгөөд удахгүй та утсан дээрээ температурын мэдээллийг хүлээн авах болно гэж найдаж байна.

Алхам 4: Дүгнэлт

Энэхүү зааварчилгаа нь маш энгийн мэт санагдаж болох боловч хямд өртөгтэй бүрэлдэхүүн хэсгүүдийн тусламжтайгаар юунд хүрч болохыг харуулах зорилготой юм. Мэдээжийн хэрэг, хэрэв та wi-fi эсвэл BLE hub-т хандах боломжтой бол илүү тохиромжтой шийдлүүд байх болно.

Температурын бичлэг / дамжуулалтыг эхлүүлэхийн тулд утсанд SMS илгээх гэх мэт бусад функцийг би оруулаагүй болно.

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