Բովանդակություն:
- Քայլ 1. Շղթայի միացում:
- Քայլ 2: Մուտք գործեք Raspberry Pi
- Քայլ 3: Կոդավորման ժամանակը:
- Քայլ 4: Ամեն ինչ միասին դնել:
Video: Խելացի ակնոցներ `4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Ողջույն բոլորին, այսօր ես ձեզ ցույց կտամ, թե ինչպես պատրաստել խելացի ակնոցներ տանը: Խելացի ակնոցների ամենամեծ բաներից մեկն այն է, թե որքանով է ձեռնտու նման բան ունենալ այսօրվա տեխնոլոգիական աշխարհում, և ինչպես չկա խելացի ակնոցների միայն մեկ տարբերակ, քանի որ բոլորն ունեն զարմանալի հատկություններ և անսահմանափակ թվով ծրագրեր, որոնք կարող են ինտեգրվել: ապագայում. Այս խելացի ակնոցների առանձնահատկությունները ներառում են պատմելու ժամանակը, ամեն 5 րոպեն մեկ ջերմաստիճանը պատմելը, այդ 5 րոպեների միջև այն փոխվում է այդ օրվա սպասվող բարձր և ցածր ջերմաստիճանի միջև, ինչպես նաև ձեզ է նշում ամսաթիվը: Բայց դրա հիմնական առանձնահատկությունն այն է, որ լուսանկարում է յուրաքանչյուր 10 վայրկյանը մեկ, այնուհետև վերլուծում այդ նկարը տեքստի համար, որում կփոխանցի դրա մասին օգտակար տեղեկությունները, եթե հարց գտնի, ապա կպատասխանի գայլաձևով, կամ եթե գտնի մաթեմատիկական հավասարություն: դա կլուծի!
Պարագաներ:
Այս նախագծի համար անհրաժեշտ պարագաները կներառեն հետևյալը.
1) Ազնվամորի Պի 0 Վտ (vilros.com- ից)
2) 128x64 հստակ OLED էկրան (Sparkfun.com- ից)
3) Raspberry Pi 0 W- ի համար ձևաչափված տեսախցիկի մոդուլ (amazon.com- ից)
4) Ձեր ընտրած ցանկացած բաժակ
5) լարերը
6) oldոդման երկաթ
7) առանց կապարի զոդման (քանի որ դուք չեք ցանկանում մահանալ կապարից)
8) երկկողմանի սոսինձ
9) SD քարտ 8 գբ նվազագույն
10) համակարգիչ և ինտերնետ կապ
Ենթադրելով, որ դուք արդեն ունեք համակարգիչ և ինտերնետ կապ, այս ակնոցների արժեքը կկազմի մոտ $ 130.00
Քայլ 1. Շղթայի միացում:
Էկրանին տեքստ ցուցադրելու համար, որը մտադիր եք միացնել OLED- ին I2C կամ SPI- ի միջոցով, ես ընտրում եմ I2C- ը, քանի որ այն ինձ համար ավելի հարմար է օգտագործել, բայց եթե ցանկանում եք SPI- ի միջոցով միանալ դրան, հետևեք այս ձեռնարկին Sparkfun կայքը և վերադառնալ այստեղ, երբ ավարտեք: https://learn.sparkfun.com/tutorials/transparent-g… Եթե դուք ընտրել եք I2C- ն, քանի որ ես միացրել եմ լարերը, ինչպես նշված է հետևյալում.
Pi \/ OLED \/
3.3 վ 3.3 վ
GND GND
SDA SDA
SCL SCL
Խնդրում ենք նկատի ունենալ, որ հստակ OLED- ը կարող է աշխատել միայն 3.3 վ լարման միջոցով:
Շղթայի միացումն ավարտելուց հետո սահեցրեք տեսախցիկի մոդուլի ժապավենը մալուխի ժապավենի ամրացման մեջ `ազնվամորի pi- ի վրա` դուրս հանելով սև սեղմակը և այն հետ սահեցնելով ժապավենի մալուխի տեղում:
Քայլ 2: Մուտք գործեք Raspberry Pi
Ssh- ի միջոցով մենք կարող ենք մուտք գործել մեր pi- ն մեր համակարգչով ՝ առանց լրացուցիչ արտաքին ստեղնաշարի մկնիկ և մոնիտոր միացնելու: Առաջին բանը, որ դուք անում եք, ձեր SD քարտը ձեր համակարգչին միացնելն ադապտեր կամ ներկառուցված նավահանգիստ է, ապա ձեզ հարկավոր է անցնել այս հղումով https://www.raspberrypi.org/downloads/raspbian/ և ներբեռնել Raspbian buster- ը: աշխատասեղանի հետ: Երկրորդ, դուք պետք է OS- ն դնեք SD քարտի վրա ՝ օգտագործելով BalenaEtcher- ը, ընտրեք ձեր SD քարտը և Raspbian OS- ը և կտտացրեք «բռնկում»: Այս գործընթացը կարող է որոշ ժամանակ տևել, ուստի ավարտից հետո վերադառնաք: Երրորդը գնացեք SD քարտ ՝ ֆայլերի որոնիչում կամ որոնիչում Mac- ում և ստեղծեք wpa_supplicant անունով տեքստային ֆայլ, համոզվեք, որ ջնջեք.txt ընդլայնումը և ավելացրեք.conf, ֆայլում տեղադրեք հետևյալը.
երկիր = ԱՄՆ
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1 ցանց = {ssid = "WIFI_SSID" scan_ssid = 1 psk = "WIFI_PASSWORD" key_mgmt = WPA-PSK}
Դուք ստիպված կլինեք մուտքագրել ձեր WiFi անունը և գաղտնաբառը համապատասխան վայրերում և երկրում, եթե ԱՄՆ -ում չեք: Հիշեք, որ Raspberry Pi- ն կարող է միանալ միայն 2.4 ԳՀց ցանցին, ինչը նշանակում է, որ ձեր համակարգիչը նույնպես պետք է միանա այդ ցանցին: Ստեղծեք դատարկ տեքստային ֆայլ ՝ առանց ssh կոչվող ընդլայնման, այնուհետև հանեք ձեր SD քարտը: Այնուհետև ձեզ հարկավոր կլինի տեղադրել PuTTY https://www.putty.org/, ինչը կօգտագործեք ssh- ը միացնելու համար: Տեղադրվելուց հետո մուտքագրեք ձեր ազնվամորու pi- ի IP հասցեն, կարող եք պարզել, թե ինչ է դա `այցելելով երթուղիչների կայք ՝ մուտք գործելով և դիտելով միացված սարքերը:
Raspberry Pi- ին մուտք գործելուց հետո այն կխնդրի ձեզ մուտք գործել, կանխադրված օգտվողի անունը «pi» է, իսկ գաղտնաբառը ՝ «ազնվամորի»: Մուտքագրեք sudo raspi-config, այնուհետև անցեք միացման տարբերակներ և միացրեք տեսախցիկը, ssh- ը և i2c- ը, այնուհետև կտտացրեք Ավարտել և մուտքագրեք sudo reboot: Այժմ դուք պատրաստ եք ներդնել ազնվամորու pi- ի մեջ, առաջ գնալ և տեղադրել Remote Desktop- ը և մուտքագրել ձեր ազնվամորի pi- ի IP հասցեն:
Քայլ 3: Կոդավորման ժամանակը:
Ես ընտրել եմ այս ծրագիրը ծածկագրել python- ում, այնպես որ համոզվեք, որ ձեր աշխատասեղանին տեղադրված են python3.7 կամ 3.8: Այս ծածկագիրը գործում է ՝ օգտագործելով սերվեր և հաճախորդ, ընդ որում ՝ ձեր համակարգիչը: Հաճախորդը կամ ազնվամորու pi- ն կնկարեն և այն կբեռնեն dropbox- ում, որը վերցված է սերվերի կողմից, որն այնուհետև գործարկում է պատկերի մշակումը և տեքստի ճանաչումը պատկերի վրա: Որպեսզի դա աշխատի, դուք պետք է ձեռք բերեք wolframalpha, dropbox և openweathermap app-id, այն ամենը, ինչ դուք պետք է անեք, այցելել գրանցման վեբ կայքեր և դա ձեզ կտրամադրի հավելվածի ID: այնուհետև դրանք մուտքագրեք համապատասխան վայրերում, որոնք որոշվում են ծածկագրի մեկնաբանություններում: Համոզվեք, որ դուք տեղադրել եք pip ամեն ինչ և տեղադրել Tesseract OCR և OpenCV: Ստեղծեք Server.py անունով Python ֆայլ ձեր համակարգչի վրա և client.py անունով ազնվամորի pi- ի վրա, այնուհետև պատճենեք և տեղադրեք կոդը: Բայց իմացեք, որ որքան համարձակ կերպարները և ավելի սպիտակ ֆոնն այնքան լավ արդյունքները, դա այդպես է տեքստի ճանաչման յուրաքանչյուր ծրագրաշարի դեպքում:
Appրագրի ID- ի գրանցման բոլոր հղումները \/
www.wolframalpha.com/
openweathermap.org/api
www.dropbox.com/developers/documentation
Համոզվեք, որ տեղադրել եք Tesseract OCR և OpenCV \/
github.com/UB-Mannheim/tesseract/wiki
opencv.org/
Server.py:
ներմուծում dropbox- ից PIL ներմուծում Image ներմուծում cv2 ներմուծում pytesseract pytesseract ներմուծում Ելքի ներմուծում numpy որպես np ներմուծում wolframalpha ներմուծման վարդակից ներմուծման ժամանակ
dbx = dropbox. Dropbox ("dropboxAPIkey")
s = socket.socket (socket. AF_INET, socket. SOCK_STREAM)
app_id = "Հավելվածի ID"
հյուրընկալող = socket.gethostname ()
նավահանգիստ = 60567 տպագիր (հյուրընկալող) s.bind ((հյուրընկալող, նավահանգիստ)) s. լսեք (2)
իսկ ճշմարիտ:
գ, addr = s.accept () print (f'Got connection from: {addr} ') break
իսկական True:
while True: time.sleep (13.7) մետատվյալներ, f = dbx.files_download ("/dropbox_API/Image.jpg") out = open ("Image.jpg", 'wb') out.write (f.content) out: փակել () տպել ("Պատկերը ներբեռնված է") image = cv2.imread ("Image.jpg") Image = cv2.resize (image, (640, 480), interpolation = cv2. INTER_AREA) image68 = cv2.rotate (Image, cv2. ROTATE_90_COUNTERCLOCKWISE) մոխրագույն = cv2.cvtColor (պատկեր 68, cv2. COLOR_BGR2GRAY)
def remove_noise (մոխրագույն):
վերադարձ cv2.medianBlur (մոխրագույն, 5) def շեմը (մոխրագույն). վերադարձ cv2.threshold (մոխրագույն, 0, 255, cv2. THRESH_BINARY + cv2. THRESH_OTSU) [1] def ընդլայնվել (մոխրագույն). միջուկ = np.ones ((5, 5), np.uint8) վերադարձնել cv2.dilate (մոխրագույն, միջուկ, կրկնություններ = 1) d = pytesseract.image_to_data (մոխրագույն, output_type = Output. DICT)
n_boxes = len (d ['տեքստ'])
համար միջակայքում (n_ արկղեր). եթե int (d ['conf'] )> 60: (x, y, w, h) = (d ['left'] , d ['top'] , d ['լայնություն'] , d ['բարձրություն'] ) մոխրագույն = cv2. ուղղանկյուն (մոխրագույն, (x, y), (x + w, y + h), (0, 255, 0), 2) ընդմիջում pytesseract.pytesseract.tesseract_cmd = r "C: / Program Files / Tesseract-OCR / tesseract.exe" text = pytesseract.image_to_string (gray) print (text) while True: text2 = " "if len (text)> = 2: c.send (bytes (text," utf-8 ")) if len (text) = 2: query = text client = wolframalpha. Client (app_id) res = client.query (հարցում) պատասխան = հաջորդ (արդյունքներ).տեքստ պատասխան 1 = պատասխան.բաժանում ('\ n') [0] տպել (պատասխան 1) գ. ուղարկել (բայթ (պատասխան 1, "utf-8")) եթե len (տեքստ) <= 1: գ. Ուղարկել (բայթ (տեքստ 2, "utf-8")) ժամանակ: քուն (7.5) ընդմիջում
Client.py:
ներմուծել dropboximport picamera ներմուծման ժամանակը luma.core.interface.serial ներմուծման i2c- ից luma.core.render ներմուծման կտավ luma.oled.device ներմուծման ssd1306, ssd1325, ssd1331, sh1106 ներմուծման վարդակից ներմուծման ամսաթվից ժամանակից ներմուծում քուն ներմուծում pyowm սերիա = i2c (նավահանգիստ = 1, հասցե = 0x3C) սարք = ssd1306 (սերիական, պտտել = 1) տեսախցիկ = picamera. PiCamera () dropbox_access_token = "" #Your dropbox-id again computer_path = r "/home/pi/Image.jpg" dropbox_path = f "/dropbox_API/Image.jpg" s = socket.socket (socket. AF_INET, socket. SOCK_STREAM) host = "" #pc հասցե ձեր համակարգչի նավահանգստի = 60567 s.connect ((հյուրընկալող, նավահանգիստ)) msg1 = "" owm = pyowm. OWM ("")#app-id for openweathermap num = ["05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "00"] cdt = datetime.datetime.now () min1 = str (cdt.minute) date = str (cdt.day) + "/" + str (cdt ամիս) + "/" + str (cdt.year) obs = owm.weather_at_place ("")#ձեր քաղաքը և երկիրը լարային ձևաչափով weather = obs.get_weather () temp2 = str (weather.get_temperature ("fahrenheit") [«թե mp_max "]) temp3 = str (weather.get_temperature (" fahrenheit ") [" temp_min "]) while True: cdt = datetime.datetime.now () min1 = str (cdt.minute) ժամ = str (cdt.hour) կտավով (սարք) որպես ոչ ոքի ՝ draw.text ((0, 0), ժամ, լրացում = «սպիտակ») draw.text ((11, 0), ":", լրացնել = "սպիտակ") draw.text ((15, 0), min1, fill = "սպիտակ") draw.text ((0, 9), "_", fill = "white") draw.text ((0, 9), date, fill = "white ") եթե min1 թվով` obs = owm.weather_at_place ("")#ձեր քաղաքն ու երկիրը նորից լարային ձևաչափով
եղանակ = obs.get_weather ()
temp = str (weather.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "white") draw.text ((40, 0), temp, լրացնել = «սպիտակ»), եթե min1- ը թվով չէ: draw.text ((40, 0), temp2, fill = "սպիտակ") draw.text ((32, 0), "F", fill = "սպիտակ") camera.start_preview () time.sleep (2) camera.capture ("/home/pi/Image.jpg") camera.stop_preview client = dropbox. Dropbox (dropbox_access_token) print ("[SUCCESS] dropbox հաշիվը կապված է") հաճախորդ: files_upload (open (computer_path, "rb"). read (), dropbox_path) print ("[UPLOADED] {}". format (computer_path)) full_msg = "" time.sleep (5) msg = s.recv (100) եթե len (msg)> = 2: full_msg += msg.decode ("utf-8") print (full_msg) cdt = datetime.datetime.now () min1 = str (cdt.minute) ժամ = str (cdt.hour) կտավով (սարք) որպես ոչ ոքի. draw.text ((0, 19), full_msg, fill = "white") draw.text ((0, 0), ժամ, լրացում = "սպիտակ") draw.text ((11, 0), ":", լրացնել = "սպիտակ") draw.text ((15, 0), min1, fill = "white") draw.text ((0, 9), "_", fill = " սպիտակ ») draw.text ((0, 9), ամսաթիվ, լրացնել = «սպիտակ»), եթե min1 թվով ՝ obs = owm.weather_at_place ("")#ձեր քաղաքն ու երկիրը նորից լարային ձևաչափով
եղանակ = obs.get_weather ()
temp = str (weather.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "white") draw.text ((40, 0), temp, լրացնել = "սպիտակ"), եթե min1- ը թվով չէ: draw.text ((40, 0), temp3, fill = "սպիտակ") draw.text ((32, 0), "F", fill = "սպիտակ") եթե len (msg) <= 1: cdt = datetime.datetime.now () min1 = str (cdt.minute) hour = str (cdt.hour) կտավով (սարք) ինչպես draw: draw.text ((0, 0), ժամ, լրացնել = "սպիտակ") draw.text ((11, 0), ":", fill = "սպիտակ") draw.text ((15, 0), min1, fill = "white") վիճակահանություն: տեքստ ((0, 9), "_", լրացնել = "սպիտակ") draw.text ((0, 9), ամսաթիվ, լրացնել = "սպիտակ"), եթե min1 թվով: obs = owm.weather_at_place ("") #Ձեր քաղաքն ու երկիրը կրկին լարային ձևաչափով
եղանակ = obs.get_weather ()
temp = str (weather.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "white") draw.text ((40, 0), temp, լրացնել = "սպիտակ"), եթե min1- ը թվով չէ: draw.text ((40, 0), temp3, fill = "սպիտակ") draw.text ((32, 0), "F", fill = "սպիտակ") time.sleep (5.4) full_msg1 = "" msg1 = s.recv (100) եթե len (msg1)> = 2: full_msg1 += msg1.decode ("utf-8") full_msg2 = ("\ n".միացեք (textwrap.wrap (full_msg1, 9))) cdt = datetime.datetime.now () min1 = str (cdt.minute) ժամ = str (cdt.hour) կտավով (սարքով) որպես ոչ ոքի. draw.text ((0, 19), full_msg, fill = "սպիտակ") draw.text ((0, 29), full_msg2, fill = "white") draw.text ((0, 0), ժամ, լրացում = "սպիտակ") draw.text ((11, 0), ":", լրացնել = "սպիտակ") draw.text ((15, 0), min1, fill = "սպիտակ") draw.text ((0, 9), "_", լրացնել = "սպիտակ") draw.text ((0, 9), ամսաթիվ, լրացնել = "սպիտակ"), եթե min1 թվով ՝ obs = owm.weather_at_place ("")#ձեր քաղաքն ու երկիրը նորից լարային ձևաչափով
եղանակ = obs.get_weather ()
temp = str (weather.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "white") draw.text ((40, 0), temp, լրացնել = "սպիտակ"), եթե min1- ը թվով չէ: obs = owm.weather_at_place ("")#ձեր քաղաքն ու երկիրը կրկին լարային ձևաչափով
եղանակ = obs.get_weather ()
temp = str (weather.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "white") draw.text ((40, 0), temp, լրացնել = «սպիտակ»), եթե min1- ը թվով չէ: draw.text ((40, 0), temp3, fill = "սպիտակ") draw.text ((32, 0), "F", fill = "սպիտակ") եթե len (msg1) <= 1: cdt = datetime.datetime.now () min1 = str (cdt.minute) hour = str (cdt.hour) with canvas (device) as draw: draw.text ((0, 0), ժամ, լրացնել = "սպիտակ") draw.text ((11, 0), ":", fill = "սպիտակ") draw.text ((15, 0), min1, fill = "white") վիճակահանություն: տեքստ ((0, 9), "_", լրացնել = "սպիտակ") draw.text ((0, 9), ամսաթիվ, լրացնել = "սպիտակ"), եթե min1 թվով: obs = owm.weather_at_place ("") #Ձեր քաղաքն ու երկիրը կրկին լարային ձևաչափով
եղանակ = obs.get_weather ()
temp = str (weather.get_temperature ("fahrenheit") ["temp"]) draw.text ((32, 0), "F", fill = "white") draw.text ((40, 0), temp, լրացնել = "սպիտակ"), եթե min1- ը թվով չէ: draw.text ((40, 0), temp3, fill = "սպիտակ") draw.text ((32, 0), "F", fill = "սպիտակ") time.sleep (7) client.files_delete (dropbox_path) print («Ֆայլերը ջնջված են»)
Պ. Ս. Ես սիրողական ծրագրավորող եմ, ուստի խնդրում եմ կասկածի տակ չդնել ծրագրավորման իմ սարսափելի մեթոդները:
Քայլ 4: Ամեն ինչ միասին դնել:
Մնացած ամեն ինչ ավարտելուց հետո գործնականում ավարտված եք, մնում է միայն կապել ազնվամորի պի տեսախցիկը և ցուցադրել ակնոցներին: Դուք կարող եք դա անել ՝ օգտագործելով մատակարարումներում նշված երկկողմանի սոսինձը, կամ կարող եք օգտագործել ցանկացած մեթոդ, որն անհրաժեշտ եք համարում: Դուք կարող եք նաև նկատել, որ այս դասում ես ոչ մի տեղ մարտկոց չեմ նշել, որովհետև այս ակնոցների համար ապագա թարմացումներ եմ նախատեսում և չեմ ուզում այն միացնել հենց հիմա: Բայց եթե իսկապես ցանկանում եք կցել մեկը, ձեզ հարկավոր կլինի Amazon- ից li-po լիցքավորիչի միացում
Եթե ձեզ դուր եկավ սա և ցանկանում եք ավելին տեսնել, ես բացեցի YouTube ալիք և հուսով եմ, որ այնտեղ նույնպես դասընթացներ կտեղադրեմ: Ահա հղումը.
www.youtube.com/channel/UCGqcWhHXdZf231rLe…
Աստված պահապան!
Հովհաննես 3:16 «Որովհետև Աստված այնքան սիրեց աշխարհը, որ Իր միածին Որդուն տվեց, ով որ այդպես հավատում է Նրան, չի կորչի, այլ կունենա հավիտենական կյանք»:
Խորհուրդ ենք տալիս:
Խելացի ակնոցներ (մինչև $ 10 !!!) ՝ 8 քայլ (նկարներով)
Խելացի ակնոցներ (մինչև $ 10 !!!). Բարև Ձեզ: Մենք բոլորս ծանոթ ենք այնպիսի խելացի ակնոցների, ինչպիսին է E.D.I.T.H. պատրաստված է մեր սիրելի կերպար Թոնի Սթարքի կողմից, որը հետագայում փոխանցվել է Պիտեր Պարկերին: Այսօր ես պատրաստվում եմ կառուցել այնպիսի խելացի ապակի, որը նույնպես 10 դոլարից ցածր է: Նրանք այնքան էլ չեն
Խելացի գրասեղանի LED լույս - Խելացի լուսավորություն W/ Arduino - Neopixels Workspace: 10 քայլ (նկարներով)
Խելացի գրասեղանի LED լույս | Խելացի լուսավորություն W/ Arduino | Neopixels Workspace. Այժմ մի օր մենք շատ ժամանակ ենք անցկացնում տանը ՝ ուսումնասիրելով և աշխատելով վիրտուալ կերպով, ուստի ինչու՞ մեր աշխատանքային տարածքն ավելի մեծ չդարձնել Arduino և Ws2812b լուսադիոդների վրա հիմնված սովորական և խելացի լուսավորության համակարգով: Ահա ես ձեզ ցույց եմ տալիս, թե ինչպես կառուցել ձեր Smart Գրասեղանի LED լույս, որը
DIY խելացի ակնոցներ - Arduino/ESP ՝ 5 քայլ
DIY Smart ակնոցներ - Arduino/ESP. Նոր տարբերակը հասանելի է այստեղ ՝ [YouTube] Heyho, տղերք: Ես այստեղ եմ ձեզ ցույց տալու իմ DIY նախագիծը և խրախուսելու ձեզ դա անել ինքներդ: Նախագիծը իսկական խելացի ակնոց է, որը բոլորը կարող են պատրաստել տանը: .Բոլոր ծածկագիրը կարելի է գտնել այստեղ և ռեսուրսներ ՝ [GitHub] Ես նաև
IoT- ի վրա հիմնված խելացի այգեգործություն և խելացի գյուղատնտեսություն ՝ օգտագործելով ESP32: 7 քայլ
IoT- ի վրա հիմնված խելացի այգեգործություն և խելացի գյուղատնտեսություն ՝ օգտագործելով ESP32. Աշխարհը փոխվում է ժամանակի և գյուղատնտեսության հետ միասին: Այսօր մարդիկ ամենուր ինտեգրում են էլեկտրոնիկան, և գյուղատնտեսությունը դրանում բացառություն չէ: Էլեկտրոնիկայի այս միաձուլումը գյուղատնտեսությունում օգնում է ֆերմերներին և այգիներ կառավարող մարդկանց: Այս
DIY խելացի հավելյալ իրականության ակնոցներ Arduino- ի միջոցով. 7 քայլ
Arduino- ի միջոցով DIY խելացի հավելյալ իրականության ակնոցներ. Քանի որ տեխնոլոգիան արագորեն աճում է և ինտեգրվում մարդկանց կյանքի բոլոր ասպեկտներին, դիզայներներն ու մշակողները փորձեցին մարդկանց տեխնոլոգիայի ավելի հաճելի փորձ տրամադրել: Տեխնոլոգիական միտումներից մեկը, որը նպատակ ունի հեշտացնել կյանքը, հագնելն է