Агуулгын хүснэгт:
- Алхам 1: ATTINY 85 програмчлах
- Алхам 2: Хөтөлбөрийг ATTINY85 -д байршуулах
- Алхам 3: Хөтөлбөрөө ажиллуулж байна
- Алхам 4: Дүгнэлт
Видео: ATTINY85 ба A1 GSM -ээс SMS бичвэрийн температурын сэрэмжлүүлэг: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Энэхүү зааварчилгаа нь энгийн температур мэдрэгчээс температурыг хэрхэн яаж авах, гар утсандаа 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 -д байршуулах
Түүнчлэн, энэ талаар миний өмнөх зааварчилгааг үзнэ үү-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 илгээх гэх мэт бусад функцийг би оруулаагүй болно.
Зөвлөмж болгож буй:
SMS болон хяналтын релеийг SMS илгээхдээ SIM800L -ийг хэрхэн ашиглах вэ: 3 алхам
SMS болон хяналтын релеийг SMS илгээхдээ SIM800L -ийг хэрхэн ашиглах талаар: Тодорхойлолт: Энэ заавар нь реле удирдахын тулд SMS илгээх, SMS хүлээн авахын тулд SIM800L -ийг хэрхэн ашиглахыг харуулав. SIM800L модуль нь жижиг хэмжээтэй бөгөөд түүнийг Arduino -той харилцах, мессеж илгээх, мессеж хүлээн авах, дуудлага хийх, дуудлага хүлээн авах болон бусад зорилгоор ашиглах боломжтой. Энэхүү гарын авлагад
Steinhart-Hart-ийн залруулга ба температурын дохиолол бүхий ESP32 NTP температурын шалгалт хийх термометр: 7 алхам (зурагтай)
Steinhart-Hart-ийн залруулга ба температурын дохиолол бүхий ESP32 NTP температурын шалгалт хийх термометр: "Удахгүй болох төсөл", " ESP32 NTP-ийн температурын мэдрэгчтэй хоол хийх термометрийг Steinhart-Hart-ийн залруулга ба температурын дохиололоор " Энэ бол миний NTP температурын датчикийг хэрхэн нэмэхийг зааж өгөх заавар юм, piezo b
Arduino угаагч хатаагчийн сэрэмжлүүлэг - Blynk -тай утсаар ярих мэдэгдэл: 5 алхам (зурагтай)
Arduino угаагч хатаагчийн сэрэмжлүүлэг - Блинктэй утсаар ярих мэдэгдэл: Манай угаалгын машин гаражид байгаа бөгөөд угаалга дууссан гэсэн дохиог сонсохгүй байна. Цикл дууссаны дараа бид байшинд хаана ч байсан мэдэгдэл авах арга замыг хайж олохыг хүссэн юм. Би Arduino, ESP8266 WiFi -тэй харьцаж байсан
Долгионы чийдэн - Цаг агаар ба сэрэмжлүүлэг: 7 алхам (зурагтай)
Долгионы чийдэн - Цаг агаар ба сэрэмжлүүлэг: Маш олон зүйлийг үзэж байхдаа би үнэхээр гайхалтай долгионы чийдэнг хараад түүнийг бүтээх ёстой байсан. https://www.thingiverse.com/thing:774456Дэнлүү нь маш сайн зохион бүтээгдсэн бөгөөд ямар ч тулгуургүйгээр хэвлэдэг (хажуу талд нь хэвлэх шаардлагатай) Мөн
Sigfox ашиглан нас барсан хүний сэрэмжлүүлэг бүхий дугуй хянах систем: 7 алхам (зурагтай)
Sigfox -тэй Dead Man Alert бүхий дугуйн мөрдөх систем: Унадаг дугуйчдыг хянах, дохио илгээх функц бүхий хамгаалалтын систем. Осол гарсан тохиолдолд GPS байрлалаар дохиолол илгээдэг. Унадаг дугуйчдын аюулгүй байдлыг хангах нь зайлшгүй шаардлагатай бөгөөд замын дугуйн болон уулын дугуйн осол гардаг