<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</title>
	<atom:link href="https://nenadsky.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://nenadsky.com</link>
	<description>Туторијали, пројекти и видео материјал из области веб и системског програмирања, Ардуино уграђени системи, слободни софтвер и философија која покреће ГНУ/Линукс</description>
	<lastBuildDate>Sun, 22 Mar 2026 21:43:42 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://nenadsky.com/wp-content/uploads/2021/11/cropped-n-logo-1-32x32.webp</url>
	<title>Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</title>
	<link>https://nenadsky.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Како направити свог АИ агента за писање помоћу Google Gemini Gems</title>
		<link>https://nenadsky.com/kako-napraviti-svog-ai-agenta-za-pisanje-pomocu-google-gemini-gems/</link>
		
		<dc:creator><![CDATA[Nenadsky]]></dc:creator>
		<pubDate>Mon, 23 Mar 2026 08:00:00 +0000</pubDate>
				<category><![CDATA[Вештачка интелигенција]]></category>
		<category><![CDATA[AI agent]]></category>
		<category><![CDATA[Gemini 3.1 Pro]]></category>
		<category><![CDATA[Google Gems]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[аутоматизација]]></category>
		<category><![CDATA[вештачка интелигенција]]></category>
		<category><![CDATA[писање]]></category>
		<category><![CDATA[промпт инжењеринг]]></category>
		<category><![CDATA[туторијал]]></category>
		<guid isPermaLink="false">https://nenadsky.com/?p=220684</guid>

					<description><![CDATA[<p>Научите како да направите сопственог АИ агента за писање користећи Google Gemini Gems! Овај туторијал са кодом помаже вам да аутоматизујете креирање садржаја.</p>
<p>The post <a href="https://nenadsky.com/kako-napraviti-svog-ai-agenta-za-pisanje-pomocu-google-gemini-gems/">Како направити свог АИ агента за писање помоћу Google Gemini Gems</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Добро дошли на упутство <strong>Како направити свог АИ агента за писање помоћу Google Gemini Gems 🚀</strong>, где ћемо заједно научити да креирамо дигиталног асистента који ради тачно оно што му кажете! Ако сте икада желели помоћника који памти ваш стил писања, не прави граматичке грешке и увек је расположен за рад, на правом сте месту. Овај текст прати и детаљан видео туторијал који можете пронаћи уграђен на страници, како бисмо заједно прошли кроз све кораке. Спремите се да унапредите своју продуктивност и заборавите на укуцавање истих промптова изнова и изнова. Зароните са мном у фасцинантни свет прилагођених АИ агената! 😊</p>



<span id="more-220684"></span>



<h2 class="wp-block-heading"><strong>Шта су Google Gemini Gems агенти за писање</strong></h2>



<p>Обични језички модели су попут хонорарних радника којима свако јутро морате изнова да објашњавате како волите да вам се форматира текст. <a href="https://gemini.google/overview/gems/" target="_blank" rel="noopener nofollow" title="Гугл Џемови - Документација">Google Gems</a> су, са друге стране, ваши лојални шегрти који трајно памте ваше инструкције, контекст и специфичан тон комуникације.Ово је функционалност доступна унутар Gemini Advanced и Workspace налога, која вам омогућава креирање специјализованих стручњака за готово било коју тему. Било да вам треба помоћ око лектуре, писања СЕО блогова или техничке документације, ваш лични Gem ће то урадити брзо и ефикасно. Када сам ја ово тестирао, направио сам грешку дајући агенту превише дугачак промпт, што је довело до конфузије модела (context bloat), па вам саветујем да упутства увек буду прецизна и кратка.</p>



<h2 class="wp-block-heading"><strong>Архитектура и шема повезивања АИ система</strong></h2>



<p>Иако овде не лемимо жице као на Ардуино плочама, шема повезивања архитектуре овог АИ система је подједнако логична и битна. Улазни модул представља ваш упит или нацрт текста који шаљете директно кроз Gemini кориснички интерфејс. Овај упит затим путује до &#8220;мозга&#8221;, односно Gemini 3.1 Pro модела који обрађује податке користећи &#8220;Deep Think&#8221; алгоритме за напредно и дубинско резоновање. Меморијски модул је директно повезан са вашим Google Drive налогом, одакле агент вуче фајлове са знањем, попут ваших претходних текстова (могуће је повезати до 10 фајлова по агенту). На крају, излазни модул примењује строга правила форматирања и враћа вам савршено уређен текст, спреман за објављивање.</p>



<h2 class="wp-block-heading"><strong>Писање системских инструкција за АИ агента</strong></h2>



<p>Тајна одличног дигиталног асистента лежи у системским инструкцијама које му дајете приликом креирања у Gem менаџеру. Најбоља пракса у индустрији је коришћење PTCF оквира: Persona (улога), Task (задатак), Context (контекст) и Format (формат). Прво му дефинишете улогу, на пример, да се понаша као сениор технички писац са 15 година искуства у ИТ сектору. Затим му јасно задате задатак, објасните предзнање публике којој се обраћате и захтевате тачан визуелни изглед коначног излаза. Ако користите јасне поднаслове у Markdown формату при писању ових правила, модел ће их много боље пратити и мање ће халуцинирати.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Build custom AI agent from scratch - Google Gems" width="1080" height="810" src="https://www.youtube.com/embed/eEj7XEZzDQ4?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h3 class="wp-block-heading"><strong>Комплетан код за Google ADK скрипту</strong></h3>



<p>Поред самог текстуалног промпта, напреднији корисници могу интегрисати ове агенте директно у своје апликације користећи Agent Development Kit (ADK) у Python-у. Прво ћемо дефинисати нашу системску скрипту (промпт) коју уносите у Gem подешавања на интерфејсу, а затим ћемо написати и Python код за аутоматизацију.</p>



<h4 class="wp-block-heading"><strong>Persona</strong></h4>



<p>Ти си &#8220;Технички писац&#8221;, експертски ИТ копирајтер и уредник.</p>



<h4 class="wp-block-heading"><strong>Task</strong></h4>



<p>Твој задатак је да неуређене нацрте претвориш у занимљиве туторијале.</p>



<h4 class="wp-block-heading"><strong>Context</strong></h4>



<p>Публика су почетници и хобисти. Тон мора бити охрабрујући, уз обавезну употребу аналогија. Никада не користи компликован академски жаргон.</p>



<h4 class="wp-block-heading"><strong>Format</strong></h4>



<p>Излаз форматирај користећи Markdown. Прво прикажи таг са кратким прегледом, а затим &lt;gotov_tekst&gt; са ревидираним садржајем.</p>



<p>Ако желите да повежете свог агента са другим алатима преко API-ја, ево комплетног Python кода за иницијализацију:</p>



<p><em>Python</em></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p># Увозимо LlmAgent класу из Google ADK библиотеке<br>from google.adk.agents import LlmAgent<br><br># Иницијализујемо нашег АИ агента за писање<br>writing_agent = LlmAgent(<br>&nbsp; &nbsp; # Дајемо интерно име нашем агенту<br>&nbsp; &nbsp; name=&#8221;tech_scribe_agent&#8221;,<br>&nbsp; &nbsp;<br>&nbsp; &nbsp; # Бирамо Gemini 3.1 Pro модел због врхунског логичког резоновања<br>&nbsp; &nbsp; model=&#8221;gemini-3.1-pro&#8221;,<br>&nbsp; &nbsp;<br>&nbsp; &nbsp; # Убацујемо системске инструкције које дефинишу тон и задатак<br>&nbsp; &nbsp; instruction=&#8221;Ти си експертски ИТ копирајтер. Твој задатак је уређивање технолошких текстова за почетнике користећи опуштен тон и аналогије.&#8221;,<br>&nbsp; &nbsp;<br>&nbsp; &nbsp; # Дефинишемо излазни кључ под којим се чува резултат<br>&nbsp; &nbsp; output_key=&#8221;revidiran_tekst&#8221;<br>)<br><br># Улазни нацрт текста који желимо да АИ поправи<br>los_tekst = &#8220;АИ агенти раде у петљи и користе ЛЛМ за парсирање података.&#8221;<br><br># Покрећемо агента да обради и побољша текст<br>rezultat = writing_agent.run(los_tekst)<br><br># Исписујемо готов резултат на екран<br>print(rezultat)<br></p>
</blockquote>



<h3 class="wp-block-heading"><strong>Детаљно објашњење кода ред по ред</strong></h3>



<p>Ова Python скрипта је прилично праволинијска, али хајде да је детаљно разложимо како бисмо разумели магију испод хаубе.</p>



<ul class="wp-block-list">
<li>from google.adk.agents import LlmAgent: Овде увозимо главну компоненту из Google-ове библиотеке која нам омогућава конструисање интелигентних агената у само неколико линија кода.<sup>13</sup></li>



<li>writing_agent = LlmAgent(&#8230;): Креирамо нови објекат (нашег дигиталног асистента) и додељујемо га променљивој writing_agent како бисмо га касније лако позивали.</li>



<li>name=&#8221;tech_scribe_agent&#8221;: Овом линијом додељујемо интерно име нашем агенту ради лакше идентификације, посебно ако касније правимо систем са више различитих агената.</li>



<li>model=&#8221;gemini-3.1-pro&#8221;: Одређујемо који &#8220;мозак&#8221; агент користи; верзија 3.1 Pro је савршена јер пружа врхунско резоновање потребно за креативно писање и уређивање текста.<sup>15</sup></li>



<li>instruction=&#8221;&#8230;&#8221;: Ово је срце агента, текстуални промпт у ком му прецизно објашњавамо како тачно треба да се понаша, који тон да користи и шта му је крајњи циљ.</li>



<li>output_key=&#8221;revidiran_tekst&#8221;: Дефинишемо кључ у речнику (dictionary) под којим ће модел сачувати коначни резултат, што нам олакшава касније извлачење тог податка у већим апликацијама.<sup>13</sup></li>



<li>los_tekst = &#8220;&#8230;&#8221;: Овде симулирамо унос корисника, односно кратку, недовршену реченицу коју желимо да наш нови АИ асистент стилски поправи и прошири.</li>



<li>rezultat = writing_agent.run(los_tekst): Позивамо функцију run која окида процес размишљања модела, шаљући му наш лош текст на обраду.</li>



<li>print(rezultat): На самом крају, приказујемо побољшани и оптимизовани текст на екрану, спреман за читање или даље коришћење.</li>
</ul>



<h2 class="wp-block-heading"><strong>Идеје за примену и даље побољшање АИ асистента</strong></h2>



<p>Креирање сопственог Google Gem агента је невероватно моћан начин да уштедите сате које бисте иначе потрошили на лектуру и форматирање садржаја. Уместо да будете обичан корисник који стално понавља упите, ви постајете прави архитекта свог дигиталног тима. За даље побољшање овог пројекта, препоручујем да свом агенту додате &#8220;Knowledge&#8221; фајлове, попут ваших најбољих блогова у PDF формату, како би прецизно &#8220;скинуо&#8221; ваш лични стил писања. Такође, можете истражити Google Opal, сјајан нови алат за визуелно повезивање више агената у сложене токове рада без писања иједне линије кода. Не заборавите да редовно тестирате и освежавате системске инструкције како би ваши резултати сваким даном били све бољи! 💡</p><p>The post <a href="https://nenadsky.com/kako-napraviti-svog-ai-agenta-za-pisanje-pomocu-google-gemini-gems/">Како направити свог АИ агента за писање помоћу Google Gemini Gems</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Солана Блинкови: Како да претвориш било који линк у крипто трансакцију? ⚡</title>
		<link>https://nenadsky.com/solana-blinkovi-kako-da-pretvoris-bilo-koji-link-u-kripto-transakciju/</link>
		
		<dc:creator><![CDATA[Nenadsky]]></dc:creator>
		<pubDate>Sat, 28 Feb 2026 23:04:42 +0000</pubDate>
				<category><![CDATA[Блокчејн]]></category>
		<category><![CDATA[блокчејн]]></category>
		<category><![CDATA[програмирање]]></category>
		<category><![CDATA[солана]]></category>
		<category><![CDATA[туторијал]]></category>
		<category><![CDATA[упутство]]></category>
		<guid isPermaLink="false">https://nenadsky.com/?p=220678</guid>

					<description><![CDATA[<p>Солана Блинкови мењају интернет из корена! ⚡ Сада сваки линк постаје капија за блокчејн трансакцију – без компликовања. Погледајте како ово ради у пракси.</p>
<p>The post <a href="https://nenadsky.com/solana-blinkovi-kako-da-pretvoris-bilo-koji-link-u-kripto-transakciju/">Солана Блинкови: Како да претвориш било који линк у крипто трансакцију? ⚡</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></description>
										<content:encoded><![CDATA[<h3 class="wp-block-heading">Солана Блинкови – Блокчејн који „живи” у твом претраживачу</h3>



<p>Серија текстова о програмирању на Солана блокчејну се наставља! <a href="https://nenadsky.com/prvi-projekat-decentralizovana-aplikacija-za-glasanje/" title="Први пројекат: Децентрализована апликација за гласање">Апликација за гласање</a> је давно готова и полако идем даље! Замисли да читаш објаву на X-у (Твитеру) и желиш да донираш 0.1 SOL свом омиљеном креатору. Уместо да копираш адресу, отвараш новчаник, пакујеш трансакцију и чекаш – ти само кликнеш на дугме директно у објави. <strong>То су Блинкови (<a href="https://solana.com/solutions/actions" target="_blank" rel="noopener nofollow" title="Солана Блинкови - документација">Blockchain Links</a>).</strong></p>



<span id="more-220678"></span>



<h4 class="wp-block-heading">Шта су заправо Блинкови?</h4>



<p>Једноставном аналогијом: Ако је традиционални блокчејн као одлазак у банку да попуниш налог, Блинк је као <strong>QR код на рачуну у кафићу</strong>. Све је већ спремно, твоје је само да одобриш.</p>



<h4 class="wp-block-heading">Како то ради испод хаубе?</h4>



<p>Блинкови се ослањају на <strong>Solana Actions</strong>. То су API ендпоинти који враћају трансакцију коју корисник треба да потпише. Када новчаник (попут Phantom-а или Backpack-а) препозна специјални URL, он га „распакује” и приказује ти лепо дугме уместо сувопарног линка.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="2560" height="1396" src="https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-scaled.webp" alt="Солана блинк у акцији" class="wp-image-220679" srcset="https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-scaled.webp 2560w, https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-300x164.webp 300w, https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-1024x559.webp 1024w, https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-768x419.webp 768w, https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-1536x838.webp 1536w, https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-2048x1117.webp 2048w, https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-1080x589.webp 1080w, https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-1280x698.webp 1280w, https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-980x534.webp 980w, https://nenadsky.com/wp-content/uploads/2026/02/Блинкови-на-Солани-480x262.webp 480w" sizes="(max-width: 2560px) 100vw, 2560px" /></figure>



<h4 class="wp-block-heading">Пример кода (TypeScript/Next.js)</h4>



<p>Ево како изгледа једноставан API ендпоинт који омогућава некоме да ти пошаље „бакшиш” од 1 SOL преко Блинка.</p>



<pre class="wp-block-preformatted">import { ActionPostResponse, ACTIONS_CORS_HEADERS, createPostResponse } from "@solana/actions";<br>import { PublicKey, SystemProgram, Transaction, Connection, LAMPORTS_PER_SOL } from "@solana/web3.js";<br><br>// Постављамо износ бакшиша<br>const TIP_AMOUNT_SOL = 0.1;<br><br>export const POST = async (req: Request) => {<br>  const { account } = await req.json();<br>  const userPubKey = new PublicKey(account);<br>  const myPubKey = new PublicKey("TVOJA_SOLANA_ADRESA_OVDE");<br>  <br>  // Повезивање на Солана мрежу (Mainnet или Devnet)<br>  const connection = new Connection("https://api.mainnet-beta.solana.com");<br><br>  // 🚨 ПРОВЕРА СТАЊА НОВЧАНИКА<br>  const balance = await connection.getBalance(userPubKey);<br>  const requiredAmount = TIP_AMOUNT_SOL * LAMPORTS_PER_SOL;<br><br>  if (balance &lt; requiredAmount) {<br>    return new Response(<br>      JSON.stringify({ message: "Упс! Немаш довољно SOL-а за ову кафу. ☕" }),<br>      { status: 400, headers: ACTIONS_CORS_HEADERS }<br>    );<br>  }<br><br>  // Ако је све у реду, настављамо са трансакцијом<br>  const transaction = new Transaction().add(<br>    SystemProgram.transfer({<br>      fromPubkey: userPubKey,<br>      toPubkey: myPubKey,<br>      lamports: requiredAmount,<br>    })<br>  );<br><br>  transaction.feePayer = userPubKey;<br>  const { blockhash } = await connection.getLatestBlockhash();<br>  transaction.recentBlockhash = blockhash;<br><br>  const payload: ActionPostResponse = await createPostResponse({<br>    fields: {<br>      transaction,<br>      message: `Успешно си послао ${TIP_AMOUNT_SOL} SOL! Хвала пуно! ✨`,<br>    },<br>  });<br><br>  return Response.json(payload, { headers: ACTIONS_CORS_HEADERS });<br>};</pre>



<h4 class="wp-block-heading">Детаљно објашњење кода:</h4>



<ul class="wp-block-list">
<li><code><strong>connection.getBalance(userPubKey)</strong></code>: Ова функција „зове” Солану и враћа стање новчаника у <em>Lamports</em> (мања јединица, 1SOL = 10^9 Lamports).</li>



<li><strong>Логички услов (</strong><code><strong>if</strong></code><strong>)</strong>: Проверавамо да ли је стање мање од потребног износа. Ако јесте, враћамо <code>status: 400</code> и поруку коју ће новчаник приказати кориснику.</li>



<li><strong>Оптимизација</strong>: Ово штеди кориснику време јер трансакција неће ни бити послата на мрежу ако је осуђена на неуспех.</li>
</ul>



<h4 class="wp-block-heading">Идеје за примену:</h4>



<p>Оваква провера је кључна за <strong>Ticket Sales</strong> (да провериш да ли корисник има довољно новца за карту) или за <strong>Whitelist провере</strong> (где уместо стања провераваш да ли новчаник поседује одређени NFT).</p><p>The post <a href="https://nenadsky.com/solana-blinkovi-kako-da-pretvoris-bilo-koji-link-u-kripto-transakciju/">Солана Блинкови: Како да претвориш било који линк у крипто трансакцију? ⚡</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Опште о ESP8266 OLED HW-364A: Свестрани микроконтролер за IoT пројекте</title>
		<link>https://nenadsky.com/opste-o-esp8266-oled-hw-364a-svestrani-mikrokontroler-za-iot-projekte/</link>
		
		<dc:creator><![CDATA[Nenadsky]]></dc:creator>
		<pubDate>Sun, 13 Jul 2025 07:00:00 +0000</pubDate>
				<category><![CDATA[ЕСП32]]></category>
		<category><![CDATA[esp8266 пројекат]]></category>
		<category><![CDATA[ардуино пројекат]]></category>
		<category><![CDATA[видео туторијал]]></category>
		<category><![CDATA[ИоТ пројекти са ОЛЕД]]></category>
		<category><![CDATA[олед екран]]></category>
		<category><![CDATA[почетнички пројекат]]></category>
		<category><![CDATA[програмирање]]></category>
		<category><![CDATA[туторијал]]></category>
		<guid isPermaLink="false">https://nenadsky.com/?p=1355</guid>

					<description><![CDATA[<p>Научите како да користите ESP8266 OLED HW-364A плочу за IoT пројекте. Укључује водич за подешавање, пример кода и идеје за пројекте.</p>
<p>The post <a href="https://nenadsky.com/opste-o-esp8266-oled-hw-364a-svestrani-mikrokontroler-za-iot-projekte/">Опште о ESP8266 OLED HW-364A: Свестрани микроконтролер за IoT пројекте</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading"><strong>Увод</strong></h2>



<p>ESP8266 <strong>OLED HW-364A </strong>је компактна, али моћна развојна плоча која спаја Wi-Fi могућности <strong>ESP8266 микроконтролера </strong>са погодностима <strong>интегрисаног OLED дисплеја </strong>. Ова комбинација је чини одличним избором за <strong>IoT апликације, праћење сензора и уграђене системе </strong>, где су визуелизација података у реалном времену и бежично повезивање кључни.</p>



<p>За разлику од ESP8266 модула, ова плоча долази са <strong>претходно залемљеним SSD1306 OLED екраном </strong>, што елиминише потребу за додатним ожичењем када вам је потребан једноставан кориснички интерфејс. Без обзира да ли правите <strong>паметни кућни уређај, преносиви сензорски логер или дисплеј са Wi-Fi-јем </strong>, овај микроконтролер пружа приступачно и ефикасно решење.</p>



<p>У овом чланку ћемо детаљније погледати његове <strong>кључне карактеристике, како га подесити и неке практичне идеје за пројекте </strong>које ће инспирисати ваш следећи ИоТ подухват.</p>



<span id="more-1355"></span>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="600" height="600" src="https://nenadsky.com/wp-content/uploads/2025/07/ESP8266-with-OLED-display.jpg" alt="ЕСП8266 плоча са интегрисаним ОЛЕД екраном" class="wp-image-1357" style="aspect-ratio:1;object-fit:cover" srcset="https://nenadsky.com/wp-content/uploads/2025/07/ESP8266-with-OLED-display.jpg 600w, https://nenadsky.com/wp-content/uploads/2025/07/ESP8266-with-OLED-display-300x300.jpg 300w, https://nenadsky.com/wp-content/uploads/2025/07/ESP8266-with-OLED-display-150x150.jpg 150w" sizes="(max-width: 600px) 100vw, 600px" /></figure>



<h2 class="wp-block-heading"><strong>Зашто изабрати ESP8266 OLED HW-364A?</strong></h2>



<h3 class="wp-block-heading"> <strong>1. Моћна, али приступачна Wi-Fi веза</strong></h3>



<p>У својој суштини, <strong>ESP8266 </strong>је <strong>јефтин, веома моћан микроконтролер </strong>са уграђеним <strong>802.11 b/g/n Wi-Fi-јем </strong>, што га чини савршеним за IoT примене. Садржи:<br>&#8211; <strong>Tensilica L106 процесор од 80 MHz </strong>(упоредив са основним Arduino плочама, али са Wi-Fi-јем).<br>&#8211; <strong>GPIO, I2C, SPI и UART интерфејсе </strong>за повезивање сензора и периферних уређаја.<br>&#8211; <strong>Подршку за Arduino IDE, MicroPython и NodeMCU фирмвер </strong>, што програмерима даје флексибилност у програмирању.</p>



<p><strong>одмах по инсталацији </strong>укључује Wi-Fi , можете га лако повезати са <strong>системима за кућну аутоматизацију, cloud сервисима (као што су MQTT или Firebase) или га чак користити као веб сервер </strong>.</p>



<h3 class="wp-block-heading"> <strong>2. Уграђени OLED екран за тренутне повратне информације</strong></h3>



<p>Једна од највећих предности ове плоче је њен <strong>интегрисани SSD1306 OLED екран од 0,96 инча </strong>(128&#215;64 пиксела). За разлику од традиционалних подешавања где бисте морали да повежете засебан дисплеј, ова плоча се испоручује спремна за употребу, што вам омогућава да:<br>&#8211; <strong>Прикажете очитавања сензора у реалном времену </strong>(температура, влажност итд.).<br>&#8211; <strong>Прикажете поруке за отклањање грешака </strong>без потребе за серијским монитором.<br>&#8211; <strong>Креирате једноставне меније или индикаторе статуса </strong>за интеракцију корисника.</p>



<p>Ово је посебно корисно за <strong>преносиве пројекте </strong>, где је потребан мали дисплеј са малом потрошњом енергије како би се пружила тренутна повратна информација.</p>



<h3 class="wp-block-heading"> <strong>3. Компактан дизајн прилагођен пробној плочи</strong></h3>



<p>Плоча је дизајнирана да буде <strong>мала и лака за прототипирање са </strong>:<br>&#8211; <strong>Унапред залемљеним конекторима </strong>за брзо повезивање са пробном плочом.<br>&#8211; <strong>Микро-УСБ портом </strong>за напајање и програмирање (није потребан спољни FTDI адаптер).<br>&#8211; <strong>Дугмад за ресетовање и флеш </strong>за лако ажурирање фирмвера.</p>



<p>Његова компактна величина га чини идеалним за <strong>носиве уређаје, уграђене системе и мала кућишта </strong>, где је простор ограничен.</p>



<h3 class="wp-block-heading"> <strong>4. Хардвер отвореног кода за прилагођавање</strong></h3>



<p>ESP8266 <strong>OLED HW-364A </strong>је <strong>пројекат отвореног кода </strong>, што значи да су његове шеме и дизајнерске датотеке доступне на <a href="https://github.com/peff74/esp8266_OLED_HW-364A" target="_blank" rel="noopener nofollow" title="HW-364A "><strong>GitHub-у </strong></a>. Ово вам омогућава да:</p>



<ul class="wp-block-list">
<li><strong>Измените распоред плоче </strong>ако је потребно за прилагођену штампану плочу.</li>



<li><strong>Разумете кола </strong>за решавање проблема.</li>



<li><strong>Проширите функционалност </strong>додавањем додатних компоненти.</li>
</ul>



<p>Ова отвореност га чини одличним избором како за <strong>почетнике који уче електронику, тако и за напредне кориснике који развијају прилагођена решења </strong>.</p>



<h2 class="wp-block-heading"><strong>Почетак: рад са микроконтролером ESP8266 OLED HW-364A</strong></h2>



<h3 class="wp-block-heading"> <strong>1. Шта вам је потребно</strong></h3>



<p>Пре него што се упустите у то, уверите се да имате:<br>&#8211; <strong>ESP8266 OLED HW-364A плочу </strong>.<br>&#8211; <strong>Micro-USB кабл </strong>(за напајање и програмирање).<br>&#8211; <strong>Arduino IDE или PlatformIO </strong>(за писање и отпремање кода).<br>&#8211; <strong>USB драјвере </strong>(ако ваша плоча користи <strong>CP2102 или CH340 </strong>чип).</p>



<h3 class="wp-block-heading"><strong>2. Инсталирање потребног софтвера</strong></h3>



<h4 class="wp-block-heading"> <strong>Коришћење Ардуино ИДЕ-а</strong></h4>



<ul class="wp-block-list">
<li><strong>Инсталирајте пакет плоче ESP8266 </strong>:
<ul class="wp-block-list">
<li>Отворите Arduino IDE → <strong>Датотека → Подешавања </strong>.</li>



<li>У <em>Додатне URL-ове менаџера табли </em>додајте:
<ul class="wp-block-list">
<li><em>http://arduino.esp8266.com/stable/package_esp8266com_index.json</em></li>
</ul>
</li>



<li>Идите на <strong>Алати → Плоча → Менаџер плоча </strong>, потражите <strong>ESP8266 </strong>и инсталирајте га.</li>
</ul>
</li>
</ul>



<ol start="2" class="wp-block-list">
<li><strong>Инсталирајте OLED библиотеку </strong>:</li>
</ol>



<ul class="wp-block-list">
<li>Најчешћа библиотека за SSD1306 дисплеј је <strong>Adafruit SSD1306 </strong>.</li>



<li>Инсталирајте га преко <strong>Sketch → Include Library → Manage Libraries </strong>.</li>
</ul>



<ol start="3" class="wp-block-list">
<li><strong>Изаберите одговарајућу плочу и порт </strong>:</li>
</ol>



<ul class="wp-block-list">
<li>У оквиру <strong>Алати → Плоча </strong>, изаберите <strong>NodeMCU 1.0 (ESP-12E модул) </strong>.</li>



<li>Изаберите исправан <strong>COM порт </strong>(проверите Управитељ уређаја ако нисте сигурни).</li>
</ul>



<h3 class="wp-block-heading"> <strong>3. Отпремање тест програма</strong></h3>



<p>Да бисте проверили да ли све ради, отпремите једноставну скицу „<strong>Hello, OLED!“</strong>:</p>



<pre class="wp-block-preformatted">#include <strong>&lt;Wire.h&gt;</strong> <br>#include <strong>&lt;Adafruit_GFX.h&gt;</strong> <br>#include <strong>&lt;Adafruit_SSD1306.h&gt;</strong> <br><br>#define SCREEN_WIDTH 128 <br>#define SCREEN_HEIGHT 64 <br>Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire, -1); <br><br>void setup() { <br>  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); <br>  display.clearDisplay(); <br>  display.setTextSize(1); <br>  display.setTextColor(WHITE); <br>  display.setCursor(0, 10); <br>  display.println("Hello, OLED!"); <br>  display.display(); <br>} <br><br>void loop() {} </pre>



<p>Ако се на екрану појави текст, <strong>спремни сте да изградите свој први пројекат!</strong></p>



<h2 class="wp-block-heading"><strong>Идеје за пројекте које можете испробати</strong></h2>



<h3 class="wp-block-heading"> <strong>1. Wi-Fi метеоролошка станица</strong></h3>



<ul class="wp-block-list">
<li><strong>Преузмите податке о времену у реалном времену </strong>из API-ја као што је OpenWeatherMap.</li>



<li><strong>Прикажите температуру, влажност и прогнозу </strong>на OLED екрану.</li>



<li><strong>Опционо </strong>: Евидентирање података у облак бази података (Google табеле, Firebase).</li>
</ul>



<h3 class="wp-block-heading"> <strong>2. Контролна табла IoT сензора</strong></h3>



<ul class="wp-block-list">
<li>Повежите сензоре <strong>DHT11 (температура/влажност) или BMP180 (притисак) </strong>.</li>



<li>Приказујте очитавања уживо и <strong>шаљите упозорења путем Wi-</strong><strong>Fi м</strong><strong>реже </strong>(нпр. обавештења из Телеграма).</li>
</ul>



<h3 class="wp-block-heading"> <strong>3. Паметна кућна контролна табла</strong></h3>



<ul class="wp-block-list">
<li>Користите <strong>MQTT </strong>за комуникацију са системима кућне аутоматизације (Home Assistant, Node-RED).</li>



<li>Контролишите <strong>светла, вентилаторе или уређаје </strong>преко релејних модула.</li>



<li>Приказ <strong>ажурирања статуса </strong>(нпр. „Светло УКЉУЧЕНО“, „Вентилатор ИСКЉУЧЕН“).</li>
</ul>



<h3 class="wp-block-heading"> <strong>4. Преносни мрежни скенер</strong></h3>



<ul class="wp-block-list">
<li>Скенирајте оближње Wi-Fi мреже и <strong>прикажите јачину сигнала </strong>.</li>



<li>Корисно за <strong>решавање проблема са мрежом </strong>.</li>
</ul>



<h2 class="wp-block-heading"><strong>Завршне мисли</strong></h2>



<p>ESP8266 <strong>OLED HW-364A </strong>је фантастична све-у-једном развојна плоча за <strong>IoT, „уради сам“ електронику и брзу израду прототипова </strong>. Њен <strong>уграђени дисплеј и Wi-Fi </strong>штеде време и смањују сложеност ожичења, што је чини одличним избором и за <strong>почетнике и за искусне произвођаче </strong>.</p>



<p>Ако тражите <strong>јефтин микроконтролер са пуно функција </strong>за ваш следећи пројекат, ова плоча је свакако вредна разматрања.</p>



<p>🔗 <strong>ГитХаб репозиторијум </strong>: <a href="https://github.com/peff74/esp8266_OLED_HW-364A" target="_blank" rel="noopener nofollow" title="HW-364A">ESP8266 OLED HW-364A</a></p>



<ol class="wp-block-list">
<li><strong>Шта је следеће?</strong></li>
</ol>



<p>У следећим објавама писаћу о <strong><a href="#" target="_blank" rel="noopener" title="">сензору AHT20+BMP280</a> </strong>и практичном пројекту који користи овај микроконтролер.</p>



<p>Сензор мери <strong>температуру и влажност </strong>, док ESP8266 OLED плоча шаље податке на <strong>веб контролну таблу </strong>.</p>



<p>Са правим API-јем, можете и:</p>



<ul class="wp-block-list">
<li>Сачувајте очитавања у <strong>бази података </strong>.</li>



<li>Забележите их на <strong>блокчејну </strong>.</li>



<li>Интегришите их у <strong>системе паметних кућа </strong>.</li>
</ul>



<p>Пратите ме за <a href="#" title="">комплетан водич</a> који ћу објавити ускоро!</p><p>The post <a href="https://nenadsky.com/opste-o-esp8266-oled-hw-364a-svestrani-mikrokontroler-za-iot-projekte/">Опште о ESP8266 OLED HW-364A: Свестрани микроконтролер за IoT пројекте</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Први пројекат: Децентрализована апликација за гласање</title>
		<link>https://nenadsky.com/prvi-projekat-decentralizovana-aplikacija-za-glasanje/</link>
		
		<dc:creator><![CDATA[Nenadsky]]></dc:creator>
		<pubDate>Sun, 06 Jul 2025 10:55:10 +0000</pubDate>
				<category><![CDATA[Блокчејн]]></category>
		<category><![CDATA[блокчејн]]></category>
		<category><![CDATA[гласачка апликација]]></category>
		<category><![CDATA[искуство]]></category>
		<category><![CDATA[почетнички пројекат]]></category>
		<category><![CDATA[програмирање]]></category>
		<category><![CDATA[солана]]></category>
		<guid isPermaLink="false">https://nenadsky.com/?p=1349</guid>

					<description><![CDATA[<p>Направите своју прву децентрализовану апликацију за гласање! Научите Anchor framework, Rust макрое. Савршено за почетнике у Web3. #Solana #Blockchain</p>
<p>The post <a href="https://nenadsky.com/prvi-projekat-decentralizovana-aplikacija-za-glasanje/">Први пројекат: Децентрализована апликација за гласање</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Пут Солане почињемо <strong>децентрализованом апликацијом за гласање</strong>, која омогућава корисницима да ставе неку своју идеју, предлог или било шта друго на гласање. Сваки предлог има кратак опис, како би се корисницима образложио предлог о којем гласају. Уз то у позадини се обрађују гласови, за и против и чува податак о томе на блокчејну. Овај механзам гласања, иако је ова апликација поченичка, је применљив различите видове примена уз мање или више измена. Пример примене су апликације за групно финансирање, подршка одлучивању у компанијама, гласање за избор најбољих решења или одговора, избор нове функционалности неке апликације, избор најдуховитијег коментара&#8230;Уз кратак опис апликације која се пише, биће речи о основним деловима и макроима који су коришћени у самом програму, али и проблеме на које сам наишао током рада. Проблеми захтевају и неко решење тако да је и то део овог текста и надам се вама занимљиво и корисно 🙂</p>



<span id="more-1349"></span>



<h2 class="wp-block-heading western">Зашто одабрати апликацију за гласање као свој први пројекат?</h2>



<p>Покретање вашег првог пројекта у области децентрализованих апликација може бити застрашујући задатак, али избор апликације за гласање као почетне тачке у развој Солане нуди бројне предности. Апликације за гласање нису само практичне, већ имају и значајан значај у различитим организационим контекстима и оквирима управљања. Ангажовањем са овом врстом пројекта, програмери могу истражити критичне функционалности које истичу основне принципе децентрализације.</p>



<p>Једна од најважнијих предности апликације за гласање је њена демонстрација транспарентности. И у јавном и у приватном сектору, транспарентни процеси доношења одлука су неопходни за изградњу поверења. Децентрализована природа таквих апликација осигурава да се сви гласови евидентирају у јавној књизи, што чини готово немогућим манипулисање резултатима или измену записа накнадно. Ова карактеристика промовише поверење међу учесницима, постављајући темељ за демократске процесе.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="614" src="https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners-1024x614.webp" alt="Illustration of how blockchain works" class="wp-image-1337" srcset="https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners-1024x614.webp 1024w, https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners-300x180.webp 300w, https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners-768x461.webp 768w, https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners-1536x922.webp 1536w, https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners.webp 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Illustration of how blockchain works</figcaption></figure>



<p>Штавише, апликације за гласање обухватају принцип непроменљивости, који је кључан за блокчејн системе. Када се глас једном да и забележи, не може се променити или избрисати. Ова карактеристика не само да јача интегритет процеса гласања, већ је и у складу са растућом потражњом за системима који дају приоритет безбедности од преваре и корупције. Развојем апликације за гласање можете стећи искуство из прве руке у имплементацији ових битних карактеристика, које су применљиве на разне друге децентрализоване апликације.</p>



<p>Поред тога, рад на пројекту гласања вам омогућава да се удубите у важне техничке аспекте блокчејн технологије, као што су паметни уговори и механизми за аутентификацију корисника. Поред непосредних техничких користи, креирање апликације за гласање такође може пружити непроцењиве увиде у динамику управљања заједницом, омогућавајући вам да разумете како децентрализовани системи могу ефикасно функционисати у реалним сценаријима.</p>



<p>Стога, избор апликације за гласање за ваш почетни Солана пројекат значи да ћете стећи разноврстан скуп вештина које нису само релевантне данас, већ су све важније у обликовању будућих модела управљања.</p>



<h2 class="wp-block-heading western">Структура апликације и основни макрои Сидра</h2>



<p>У <a href="https://nenadsky.com/solana-blokcejn-brza-i-skalabilna-platforma-za-decentralizovane-aplikacije/" target="_blank" rel="noopener" title="Солана Блокчејн: Брза и Скалабилна Платформа за Децентрализоване апликације">претходном тексту ј</a>е било речи о основним командама за креирање новог пројекта, тако да одмах прелазим на структуру саме апликације. Коришћењем <strong><em>create-solana-dapp </em></strong>команде, креира се комплетан костур апликације за бек и фронтенд. Радни оквир који је подразумеван је <strong><em>Сидро (енг. Anchor)</em></strong> и у директоријуму са истим именом је смештена датотека на којој ћемо радити под називом <i>lib.rs</i>. Она представља срж апликације и оно што се извршава у њој, ће бити приказивано на корисничком Веб интерфејсу. Остатак структуре пројекта је детаљно објашњен у документацији за Солану и Сидро и део је кампа за обуку уколико више волите да пратите видео материјал.</p>



<h3 class="wp-block-heading western"><em>Основни макрои Сидра</em></h3>



<p><em>Радни оквир Сидро користи Раст-ове макрое како би смањио писање шаблонског кода и поједноставио уобичајне безбедносне провере које су неопходне за писање Солана програма. Основни макрои Сидра су:</em></p>



<div class="wp-block-group is-layout-constrained wp-block-group-is-layout-constrained">
<ol class="wp-block-list">
<li><p><em><b>declare_id</b>: Који дефинише адресу програма на блокчејну; Адреса се аутоматски додељује по креирању апликације.</em></p></li>



<li><p><em><b>#[program]</b>: Модул који садржи логику инструкција програма; У суштини све јавне функције које можете користити у програму су смештене овде.</em></p></li>



<li><p><em><b>#[derive(Accounts)]</b>: Односи се на типове структура (<i>struct</i>) да би се назначила листа налога потребних инструкцији.</em></p></li>



<li><p><em><b>#[account]</b>: Односи се на типове структура <span lang="sr-RS">за креирање прилагођених типова налога за програм.</span></em></p></li>
</ol>
</div>



<p>Ови макрои су уско повезани, а њихову везу сликовито схватам овако: #[account] макро садржи тип структуре који је неопходан структури у макроу #[derive(Accounts)], док функција у макроу <em><b>#[program]</b></em> захтева постојање стуктуре у #[derive(Accounts)] макроу.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="900" height="500" src="https://nenadsky.com/wp-content/uploads/2025/06/1694375606078.jpg" alt="Ethereum vs Solana" class="wp-image-1338" srcset="https://nenadsky.com/wp-content/uploads/2025/06/1694375606078.jpg 900w, https://nenadsky.com/wp-content/uploads/2025/06/1694375606078-300x167.jpg 300w, https://nenadsky.com/wp-content/uploads/2025/06/1694375606078-768x427.jpg 768w" sizes="(max-width: 900px) 100vw, 900px" /><figcaption class="wp-element-caption">Ethereum vs Solana</figcaption></figure>



<h2 class="wp-block-heading western"><em>Изазови, решења и добра пракса из прве апликације</em></h2>



<p><em>На почетку овог текста сам већ навео неке основне функционалности које нудио ова децентрализована апликација. Међутим, иако једноставна, стварала је мале главобоље. Као новајлији на Солани и скромним познавањем Раст-а требало је мало времена за навикавање на синтаксу и окружење. Па да видимо како је то изгледало.</em></p>



<h3 class="wp-block-heading western"><em>Грешка #1: Exceeded timeout of 5000 ms for a test</em></h3>



<p>Иако на последњој верзији Солане, Сидра и пратећих зависности, при покретању теста долазило је појаве до грешке „Exceeded timeout of 5000 ms for a test“. Тест је пуцао након истека тог временског интервала од 5 секунди. На <a href="https://solana.stackexchange.com/questions/21965/exceeded-timeout-of-5000-ms-for-a-test">Солана Стак Ексчејнџу</a> можете наћи објаву.</p>



<p>Оно што су ми други одговорили а што се генерално сматра добром праксом је да сав код који се користи у више тестова треба сместити у beforeAll функцију. Извршиће се само једанпут и скратити време извршавања, код изгледа прегледније.</p>



<p>Ову грешку нисам успео да решим, па сам пројекат почео из почетка 🙂</p>



<p><em><b>Мој код:</b></em></p>



<pre class="wp-block-preformatted">import { BankrunProvider, startAnchor } from "anchor-bankrun";<br>import * as anchor from '@coral-xyz/anchor'<br>import { BN, Program } from '@coral-xyz/anchor'<br>import { Keypair, PublicKey } from '@solana/web3.js'<br>import { Votingdapp2 } from '../target/types/votingdapp2'<br><br>const IDL = require('../target/idl/votingdapp2.json');<br><br>const votingAddress = new PublicKey("coUnmi3oBUtwtd9fjeAvSsJssXh5A5xyPbhpewyzRVF");<br><br>describe('Voting', () =&gt; {<br><br>  it('Initialize Poll', async () =&gt; {<br>    //const signer = Keypair.generate();<br><br>    const context = await startAnchor("", [{ name: "voting", programId: votingAddress }], []);<br><br>    const provider = new BankrunProvider(context);<br><br>    const votingProgram = new Program&lt;Votingdapp2&gt;(<br>      IDL,<br>      provider,<br>    );<br><br>    await votingProgram.methods.initializePoll(<br>      new anchor.BN(1),<br>      "What is your favourite type of peanut butter",<br>      new anchor.BN(0),<br>      new anchor.BN(1821246480),<br>    ).rpc();<br><br>    const [pollAddress] = PublicKey.findProgramAddressSync([new anchor.BN(1).toArrayLike(Buffer, 'le', 8)], votingAddress);<br><br>    const poll = await votingProgram.account.poll.fetch(pollAddress);<br>    console.log(poll);<br><br>  })<br><br>});</pre>



<p><em><b>Код након примењених препорука:</b></em></p>



<pre class="wp-block-preformatted">import { BankrunProvider, startAnchor } from "anchor-bankrun";<br>import * as anchor from '@coral-xyz/anchor'<br>import { Program } from '@coral-xyz/anchor'<br>import { Keypair, PublicKey } from '@solana/web3.js'<br>import { Voting } from '../target/types/voting'<br><br>const IDL = require('../target/idl/voting.json');<br><br>const votingAddress = new PublicKey("FqzkXZdwYjurnUKetJCAvaUw5WAqbwzU6gZEwydeEfqS");<br><br>describe('Voting', () =&gt; {<br>// Configure the client to use the local cluster.<br>let context;<br>let provider;<br>let votingProgram: Program;<br><br>beforeAll(async () =&gt; {<br>context = await startAnchor("", [{name: "voting", programId: votingAddress}], []);<br>provider = new BankrunProvider(context);<br><br>votingProgram = new Program&lt;Voting&gt;(<br>      IDL,<br>      provider,<br>  );<br><br>})<br><br>it('Initialize Poll', async () =&gt; {<br><br>await votingProgram.methods.initializePoll(<br><br>new anchor.BN(1),<br><br>"What is your favorite type of peanut butter?",<br><br>new anchor.BN(0),<br><br>new anchor.BN(1847955695),<br><br>).rpc();<br><br>const [pollAddress] = PublicKey.findProgramAddressSync(<br><br>[new anchor.BN(1).toArrayLike(Buffer, 'le', 8)],<br><br>votingAddress,<br><br>)<br><br>const poll = await votingProgram.account.poll.fetch(pollAddress);<br><br>console.log(poll);<br><br>})<br><br>})</pre>



<h3 class="wp-block-heading western"><em>Грешка 2: Argument of type &#8216;BankrunProvider&#8217; is not assignable to parameter of type &#8216;Provider&#8217;</em></h3>



<p><em>Ова грешка јавила се у самом фајлу паметног уговора, <a href="https://solana.stackexchange.com/questions/21827/error-argument-of-type-bankrunprovider-is-not-assignable-to-parameter-of-type" target="_blank" rel="noopener nofollow" title="Грешка 2 на Стакс Ексчејнџу">више о њој можете видети</a> на објави на Солана Стак Ексчејнџу. Као неко привремено решење користио сам потискивање грешака додавањем <a href="mailto://@ts-ignore">//@ts-ignore</a> директиву испред реда где је грешка настала. Коначно решење за ову и претходну грешку видећемо у наставку.</em></p>



<h3 class="wp-block-heading western"><em>Грешка 3: File not found: No such file or directory (os error 2)</em></h3>



<p><em>Око ове грешке сам провео највише времена покушавајући да је решим, јер нисам желео да одустанем! 🙂 <a href="https://solana.stackexchange.com/questions/22035/file-not-found-no-such-file-or-directory-os-error-2?noredirect=1&amp;lq=1" target="_blank" rel="noopener nofollow" title="&quot;os error 2&quot; грешка">Више о њој</a>. Убедљиво највише ме је збуњивала јер нисам знао где тачно у самом пројекту да тражим шта сам омашио. Датотека паметног уговора је изгледала исто као и код предавача на курсу, тест такође. </em></p>



<h2 class="wp-block-heading western"><em>Решење за ове грешке и проблеме</em></h2>



<p>Због некомпатибилности web3.js библиотеке са Сидром због конфигурације коју сам одабрао током креирања пројекта долазило је до појаве све три горе наведене грешке. Једноставно се решило све само од себе када сам при креирању пројекта одабрао <i>web3js-next-tailwind-counter </i>што представља старији начин креирања пројеката управо због компатибилности Сидра и web3.js библиотеке. Друга ствар коју нисам урадио је npm install за довлачење потребних зависности. Мислио сам да се то аутоматски одвија приликом креирања пројекта, међутим знајте да није 😉 Последња ствар која је правила проблем и доводила до ове треће грешке је што назив Counter треба да се замени са Votе свуда у конфигурационим датотекама пројекта. Промекло ми је да то урадим у једној датотеци и ето проблема. Ето мало да се похвалим, пожалим и надам се помогнем неком да не разбија главу овим почетничким грешкама 🙂 Сад идемо даље!</p>



<p></p><p>The post <a href="https://nenadsky.com/prvi-projekat-decentralizovana-aplikacija-za-glasanje/">Први пројекат: Децентрализована апликација за гласање</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Солана Блокчејн: Брза и Скалабилна Платформа за Децентрализоване апликације</title>
		<link>https://nenadsky.com/solana-blokcejn-brza-i-skalabilna-platforma-za-decentralizovane-aplikacije/</link>
		
		<dc:creator><![CDATA[Nenadsky]]></dc:creator>
		<pubDate>Mon, 16 Jun 2025 06:00:00 +0000</pubDate>
				<category><![CDATA[Блокчејн]]></category>
		<category><![CDATA[блокчејн]]></category>
		<category><![CDATA[искуство]]></category>
		<category><![CDATA[подешавање]]></category>
		<category><![CDATA[радно окружење]]></category>
		<category><![CDATA[солана]]></category>
		<category><![CDATA[туторијал]]></category>
		<category><![CDATA[упутство]]></category>
		<guid isPermaLink="false">https://nenadsky.com/?p=1343</guid>

					<description><![CDATA[<p>Откријте Солана блокчејн: високе брзине, ниских трошкова и скалабилности. Сазнајте основе dApps-а и почните са првим корацима. #Solana #Blockchain #Crypto</p>
<p>The post <a href="https://nenadsky.com/solana-blokcejn-brza-i-skalabilna-platforma-za-decentralizovane-aplikacije/">Солана Блокчејн: Брза и Скалабилна Платформа за Децентрализоване апликације</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Увод у Солана Блокчејн</h2>



<p>Солана је једна од најбржих блокчејн платформи, дизајнирана да обезбеди брзину, скалабилност и ниске трошкове трансакција. Овај чланак ће вам помоћи да разумете основне карактеристике <a href="https://solana.com/" target="_blank" rel="noopener nofollow" title="Solana Blockchain - Official Web Site">Солане</a>, њене предности у односу на друге блокчејн мреже, и како започети развој апликација на овој платформи.</p>



<span id="more-1343"></span>



<h2 class="wp-block-heading">Кључне Карактеристике Солане</h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://nenadsky.com/wp-content/uploads/2025/06/Solana-bkg-1024x576.webp" alt="Solana official web site" class="wp-image-1344" srcset="https://nenadsky.com/wp-content/uploads/2025/06/Solana-bkg-1024x576.webp 1024w, https://nenadsky.com/wp-content/uploads/2025/06/Solana-bkg-300x169.webp 300w, https://nenadsky.com/wp-content/uploads/2025/06/Solana-bkg-768x432.webp 768w, https://nenadsky.com/wp-content/uploads/2025/06/Solana-bkg-1536x864.webp 1536w, https://nenadsky.com/wp-content/uploads/2025/06/Solana-bkg.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Solana blockchain &#8211; official website</figcaption></figure>



<h3 class="wp-block-heading">1. Невероватна Брзина</h3>



<p>Солана може да обради <strong>65.000 трансакција у секунди (TPS)</strong>, што је значајно више у поређењу са Биткоином (7 TPS) и Етереумом (15-30 TPS). Ово је омогућено напредним консензусним механизмима и паралелном обрадом трансакција.</p>



<h3 class="wp-block-heading">2. Ниски Трошкови Трансакција</h3>



<p>Трансакције на Солани коштају свега <strong>0.01 USD</strong>, што је идеално за израду паметних уговора и децентрализованих апликација (dApps).</p>



<h3 class="wp-block-heading">3. Proof of History (PoH) и Proof of Stake (PoS)</h3>



<p>Солана користи јединствену комбинацију <strong>PoH</strong> (криптографски доказ времена) и <strong>PoS</strong> (доказ улога) за синхронизацију чворова и побољшање ефикасности. Ово смањује латенцију и повећава пропусни опсег мреже.</p>



<h3 class="wp-block-heading">4. Скалабилност</h3>



<p>Платформа је дизајнирана да подржи растући број корисника и апликација без губитка перформанси, што је кључно за масовно усвајање.</p>



<h2 class="wp-block-heading">Основни Појмови за Развој на Солани</h2>



<p>Да бисте започели развој на Солани, неопходно је упознати се са следећим концептима:</p>



<ul class="wp-block-list">
<li><strong>Солана Налози</strong>: Једноставни начини за управљање адресама и кључевима.</li>



<li><strong>Програмски Изведене Адресе (PDAs)</strong>: Детерминистичке адресе за налоге, често коришћене у dApps. На Солана Блокчејну је све налог, а сваки налог има изведену програмску адресу, а овде ћете сазнати и како!</li>



<li><strong>Међу-Програмско Позивање (CPIs)</strong>: Омогућава интеракцију између различитих програма на мрежи. Још увек нисам стигао до овог нивоа Солане, али.. ускоро!</li>



<li><strong>Солана Игралиште</strong>: Окружење за тестирање и експериментисање.</li>



<li><strong>Новчаници</strong>: Користе се за чување СОЛ токена и потписивање трансакција. Еквивалент МетаМаска за Солана Блокчејн је Фантом новчаник. Тако да ћу га у наставку користити.</li>
</ul>



<h2 class="wp-block-heading">Неопходни Алати за Развој</h2>



<p>За развој апликација на Солани, потребни су следећи алати:</p>



<ol class="wp-block-list">
<li><strong><a href="https://www.rust-lang.org/tools/install" target="_blank" rel="noopener nofollow" title="Rust Programming Language">Rust Compiler (Rustc)</a></strong>: Основни језик за паметне уговоре на Солани.</li>



<li><a href="https://solana.com/docs/intro/installation" target="_blank" rel="noopener nofollow" title="Solana CLI"><strong>Solana CLI</strong>:</a> Командни алат за комуникацију са мрежом.</li>



<li><strong>Anchor CLI:</strong> Радни оквир за бржи развој паметних уговора.</li>



<li><strong><a href="https://nodejs.org/en" target="_blank" rel="noopener nofollow" title="NodeJS">Node.js</a> и npm/Yarn:</strong> За управљање зависностима и извршавање JavaScript кода.</li>
</ol>



<h2 class="wp-block-heading">Практични Корници за Почетак</h2>



<h3 class="wp-block-heading">1. Подешавање Окружења</h3>



<p>Покрените следеће команде у терминалу:</p>



<pre class="wp-block-preformatted">solana config set -ud # Подесите devnet</pre>



<pre class="wp-block-preformatted">solana airdrop 2 # Затражите 2 SOL за тестирање</pre>



<pre class="wp-block-preformatted">solana balance # Проверите стање новчаника</pre>



<h3 class="wp-block-heading">2. Покретање Локалног Тест Валидатора</h3>



<p>За локални развој, користите:</p>



<pre class="wp-block-preformatted">solana-test-validator</pre>



<h3 class="wp-block-heading">3. Креирање Новчаника</h3>



<p>Генеришите нови новчаник командом:</p>



<pre class="wp-block-preformatted">solana-keygen new</pre>



<p>У Солана документацији наћи ћете детаљнија упутства и објашњења. Овде наведене команде ће вам помоћи да брзо инсталирате и подесите окружење за развој на Солана блокчејн мрежи.</p>



<h2 class="wp-block-heading">Закључак</h2>



<p>Солана је моћна платформа која нуди брзину, скалабилност и ниске трошкове, чинећи је идеалном за развој децентрализованих апликација. Упознавање са основним појмовима и алатима омогућава вам да брзо започете свој први пројекат. За више детаља, погледајте званичну документацију или експериментишите на Солана игралишту.</p>



<p>Да ли сте већ користили Солану за развој? Поделите своја искуства у коментарима! 🚀</p><p>The post <a href="https://nenadsky.com/solana-blokcejn-brza-i-skalabilna-platforma-za-decentralizovane-aplikacije/">Солана Блокчејн: Брза и Скалабилна Платформа за Децентрализоване апликације</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Почетак путовања у свет Блокчејна: Етереум, Солана, Рaст и Солидити</title>
		<link>https://nenadsky.com/pocetak-putovanja-u-svet-blokcejna-etereum-solana-rast-i-soliditi/</link>
		
		<dc:creator><![CDATA[Nenadsky]]></dc:creator>
		<pubDate>Sat, 07 Jun 2025 22:00:08 +0000</pubDate>
				<category><![CDATA[Размишљања]]></category>
		<category><![CDATA[блокчејн]]></category>
		<category><![CDATA[етереум]]></category>
		<category><![CDATA[искуство]]></category>
		<category><![CDATA[програмирање]]></category>
		<category><![CDATA[раст]]></category>
		<category><![CDATA[солана]]></category>
		<category><![CDATA[солидити]]></category>
		<guid isPermaLink="false">https://nenadsky.com/?p=1336</guid>

					<description><![CDATA[<p>Серија текстова о блокчејну и развоју апликација на Етереум и Солана блокчејн мрежи. Пратим сопствени развој и искуство у коришћењу Раста и Солидитија.</p>
<p>The post <a href="https://nenadsky.com/pocetak-putovanja-u-svet-blokcejna-etereum-solana-rast-i-soliditi/">Почетак путовања у свет Блокчејна: Етереум, Солана, Рaст и Солидити</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Добродошли на моје путовање кроз свет блокчејн технологије! Као програмер страствен према иновацијама, одувек сам био заинтригиран потенцијалом блокчејна изван трговине криптовалутама. Моје интересовање започело је када ме је некадашњи <a href="https://www.linkedin.com/in/miodragstrak/" target="_blank" rel="noopener nofollow" title="Мики Страк">асистент са Факултета</a> упознао са концептом децентрализованих апликација (дАпови) и њиховим револуционарним могућностима. Ова серија текстова биће мој лични дневник, радна бележница у којој ћу документовати своја искуства, изазове и решења док се упуштам у развој на Етереум и Солана платформама, користећи програмске језике <strong>Солидити</strong> и <strong>Раст</strong>. Било да сте програмер или само знатижељни о блокчејну, надам се да ће вам моје путовање бити инспиративно и корисно.</p>



<span id="more-1336"></span>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="614" src="https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners-1024x614.webp" alt="Blockchain ilustration" class="wp-image-1337" srcset="https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners-1024x614.webp 1024w, https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners-300x180.webp 300w, https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners-768x461.webp 768w, https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners-1536x922.webp 1536w, https://nenadsky.com/wp-content/uploads/2025/06/assets.everspringpartners.webp 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Шта је Блокчејн?</h2>



<p><strong>Блокчејн</strong> је, у суштини, дељена и непромењива база података која бележи трансакције и прати средства (материјална или дигитална) у децентрализованој мрежи рачунара, познатих као чворови. Ова технологија осигурава тачност и транспарентност података кроз консензусни механизам, чинећи је основом за криптовалуте попут <strong>Биткоина</strong>, али и за широк спектар апликација, од ланца снабдевања до здравства. Његова снага лежи у децентрализацији, што елиминише потребу за посредницима и повећава сигурност.</p>



<h2 class="wp-block-heading">Зашто Етереум и Солана?</h2>



<p>Моје путовање започело је са <strong>Етереумом</strong>, платформом која је пионир у области паметних уговора. Етереум омогућава креирање децентрализованих апликација кроз паметне уговоре писане у језику Солидити, што отвара врата за сложене логичке операције на блокчејну. Како сам напредовао, заинтересовала ме је Солана због њене изузетне брзине и ниских трошкова трансакција, што је чини идеалном за скалабилне апликације. <strong>Солана</strong> користи Раст, модеран програмски језик који наглашава сигурност и перформансе, што ме додатно мотивисало да истражим ову платформу. Обе мреже представљају врхунац блокчејн технологије, и узбуђен сам што ћу упоредити њихове архитектуре, консензусне механизме и екосистеме.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="900" height="500" src="https://nenadsky.com/wp-content/uploads/2025/06/1694375606078.jpg" alt="Ethereum vs Solana" class="wp-image-1338" srcset="https://nenadsky.com/wp-content/uploads/2025/06/1694375606078.jpg 900w, https://nenadsky.com/wp-content/uploads/2025/06/1694375606078-300x167.jpg 300w, https://nenadsky.com/wp-content/uploads/2025/06/1694375606078-768x427.jpg 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<h2 class="wp-block-heading">Програмски Језици: Раст и Солидити</h2>



<p>У овој серији фокусираћу се на два кључна програмска језика: Солидити за Етереум и Раст за Солану. Солидити је језик оријентисан на паметне уговоре, дизајниран да омогући програмерима да креирају сложену логику која се извршава на Етереум блокчејну. Раст, с друге стране, је системски програмски језик који ставља нагласак на сигурност, конкурентност и перформансе, што га чини савршеним за Соланине апликације високих перформанси. Учићу ове језике од нуле, делећи своја искуства, од постављања развојног окружења до имплементације првих децентрализованих апликација.</p>



<h2 class="wp-block-heading">Ресурси и Заједница</h2>



<p>На овом путовању ослањао сам се на различите ресурсе како бих продубио своје знање. <a href="https://www.web3academy.xyz/" target="_blank" rel="noopener nofollow" title="Веб3 Академија">Веб3 Академија</a> пружила ми је чврсту основу, док су курсеви Патрика Колинса, који сада води <a href="https://www.cyfrin.io/" target="_blank" rel="noopener nofollow" title="Сјафрин Апдрафт">Сајфрин Апдрафт</a>, били непроцењиви. Сајфрин Апдрафт је тим посвећен томе да Веб3 технологију учини доступном свима, што је у складу са мојим циљем да поделим своје искуство са другима. Поред тога, заједнице око Етереума и Солане биле су кључне за мој напредак. Платформе попут <a href="https://github.com/" target="_blank" rel="noopener nofollow" title="ГитХаб">ГитХаб</a> и <a href="https://stackexchange.com/" target="_blank" rel="noopener nofollow" title="Стак Ексчејнџ">Стак Ексчејнџ</a> пружиле су ми подршку и ресурсе, док су Дискорд канали омогућили директну комуникацију са другим програмерима. Ова подршка заједнице била је непроцењива у превазилажењу изазова.</p>



<h2 class="wp-block-heading">Шта Очекивати у Серији?</h2>



<p>Ова серија биће мој лични дневник развоја на блокчејну, пружајући увид у мој процес учења. Поделићу изазове са којима се суочавам, попут отклањања грешака у паметним уговорима или разумевања консензусних механизама, као и решења која проналазим. Такође ћу истражити суптилности Етереума и Солане, упоређујући њихове архитектуре, екосистеме и случајеве употребе. Неки од специфичних тема које ћу покрити укључују:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Тема</th><th>Опис</th></tr></thead><tbody><tr><td>Постављање развојног окружења</td><td>Како сам конфигурисао алате за Етереум и Солану</td></tr><tr><td>Писање првог паметног уговора</td><td>Моји први кораци у Солидити-ју и креирање дАппс</td></tr><tr><td>Раст и сигурност</td><td>Како Растове карактеристике помажу у развоју на Солани</td></tr><tr><td>Тестирање на тест мрежама</td><td>Имплементација и тестирање апликација на тестнету</td></tr><tr><td>Консензусни механизми</td><td>Разлике између Прооф оф Wорк и Прооф оф Стаке</td></tr><tr><td>Интеграција са ИоТ</td><td>Мој дугорочни циљ комбиновања блокчејна са Интернетом ствари</td></tr></tbody></table></figure>



<p>Поред тога, истражићу како блокчејн може бити интегрисан са другим технологијама, попут Интернета ствари (ИоТ), што је мој дугорочни циљ. Очекујте искрен приказ мог процеса, укључујући грешке, победе и лекције које учим на путу.</p>



<h2 class="wp-block-heading">Придружите се Авантури</h2>



<p>Позивам вас да ме пратите на овом узбудљивом путовању. Ова серија није само о крајњем резултату, већ о процесу – грешкама, победама и лекцијама које долазе са учењем. Ако сте заинтересовани за развој на блокчејну или само желите да видите како изгледа учити ове технологије од нуле, ова серија је за вас. Слободно поделите своја искуства или поставите питања у коментарима – волео бих да чујем ваше мишљење. Хајде да заједно учимо и растемо у овом фасцинантном свету блокчејн технологије!</p><p>The post <a href="https://nenadsky.com/pocetak-putovanja-u-svet-blokcejna-etereum-solana-rast-i-soliditi/">Почетак путовања у свет Блокчејна: Етереум, Солана, Рaст и Солидити</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Од старог рачунара до ЦНЦ машине: Моја Уради-сам прича са Ардуином</title>
		<link>https://nenadsky.com/od-starog-racunara-do-cnc-masine-moja-uradi-sam-prica-sa-arduinom/</link>
		
		<dc:creator><![CDATA[Nenadsky]]></dc:creator>
		<pubDate>Thu, 24 Apr 2025 07:00:00 +0000</pubDate>
				<category><![CDATA[Ардуино]]></category>
		<category><![CDATA[Интернет ствари]]></category>
		<category><![CDATA[ардуино пројекат]]></category>
		<category><![CDATA[видео туторијал]]></category>
		<category><![CDATA[почетнички пројекат]]></category>
		<category><![CDATA[туторијал]]></category>
		<category><![CDATA[упутство]]></category>
		<category><![CDATA[уради сам]]></category>
		<category><![CDATA[цнц машина за ласерско гравирање]]></category>
		<guid isPermaLink="false">https://nenadsky.com/?p=1328</guid>

					<description><![CDATA[<p>Почетна искра: Зашто сам одлучио да направим своју ЦНЦ машину Љубав према технологији и жеља за стварањем нечег практичног и функционалног из онога што други сматрају отпадом — то је био мој мотив да започнем свој први Уради-сам ЦНЦ пројекат. Уз скроман буџет, али са доста ентузијазма, одлучио сам да направим минијатурну ЦНЦ машину користећи [&#8230;]</p>
<p>The post <a href="https://nenadsky.com/od-starog-racunara-do-cnc-masine-moja-uradi-sam-prica-sa-arduinom/">Од старог рачунара до ЦНЦ машине: Моја Уради-сам прича са Ардуином</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Почетна искра: Зашто сам одлучио да направим своју ЦНЦ машину</h2>



<p>Љубав према технологији и жеља за стварањем нечег практичног и функционалног из онога што други сматрају отпадом — то је био мој мотив да започнем свој први Уради-сам ЦНЦ пројекат. Уз скроман буџет, али са доста ентузијазма, одлучио сам да направим минијатурну ЦНЦ машину користећи Ардуино контролер и рециклиране делове старог рачунара.</p>



<span id="more-1328"></span>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="713" src="https://nenadsky.com/wp-content/uploads/2025/04/graverka1-1024x713.webp" alt="ЦНЦ Ласерска машина за сечење и гравирање - Уради сам Ардуино пројекат" class="wp-image-1329" srcset="https://nenadsky.com/wp-content/uploads/2025/04/graverka1-1024x713.webp 1024w, https://nenadsky.com/wp-content/uploads/2025/04/graverka1-300x209.webp 300w, https://nenadsky.com/wp-content/uploads/2025/04/graverka1-768x535.webp 768w, https://nenadsky.com/wp-content/uploads/2025/04/graverka1-1536x1070.webp 1536w, https://nenadsky.com/wp-content/uploads/2025/04/graverka1.webp 1550w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Нисам имао претходног искуства у прављењу CNC машина, али сам био вођен радозналошћу и жељом да научим. Ово је моја прича — од пројекта у гаражи до амбиције за изградњу полупрофесионалне ЦНЦ машине.</p>



<h3 class="wp-block-heading">Материјали који су ми били при руци</h3>



<p>Када сам почео, главна идеја ми је била: &#8220;Искористи оно што имаш.&#8221; Ево шта сам употребио:</p>



<p>• Старо кућиште рачунара – коришћено као основна структура и носач<br>• PC напајање – стабилан извор напајања за моторе и контролер<br>• Корачни мотори из DVD читача – за X и Y<br>• Ардуино Уно – као централни контролер машине<br>• A4988 драјвери за корачне моторе<br>• Модул ласера (купљен посебно) – за сечење танких материјала и гравирање<br>• Проводници и носачи – које сам већ имао од раније</p>



<p>Овај приступ ми је омогућио да смањим трошкове и истовремено научим како функционише механика и електроника једне ЦНЦ машине.</p>



<h3 class="wp-block-heading">Израда: Изазови и решења</h3>



<p>Израда структуре машине представљала је један од већих изазова. Пошто нисам користио стандардне алуминијумске профиле, већ делове из кућишта рачунара, морао сам да импровизујем. Све је морало бити прецизно монтирано, јер чак и мала одступања доводе до нетачности у раду машине.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="From Scrap to Precision: Building an Arduino-Based CNC Laser Cutter" width="1080" height="608" src="https://www.youtube.com/embed/OQe4B7mYQXo?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Највећи изазов био је да ускладим слабе моторе из DVD уређаја са тежином делова и отпором при гравирању. Да бих то решио, радио сам на веома малим брзинама и углавном користио машину за гравирање папира, картона и танке шперплоче.</p>



<h3 class="wp-block-heading">Софтверска страна: Контрола преко G-кода</h3>



<p>Као контролни софтвер користио сам GRBL firmware за Ардуино, а за генерисање G-кода користио сам <a href="https://winder.github.io/ugs_website/" target="_blank" rel="noopener nofollow" title="Universal Gcode Sender site">Universal Gcode Sender</a>.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://nenadsky.com/wp-content/uploads/2025/04/graverka2-1024x576.webp" alt="Софтвер коришћен за ЦНЦ машину - Universal Gcode Sender" class="wp-image-1330" srcset="https://nenadsky.com/wp-content/uploads/2025/04/graverka2-1024x576.webp 1024w, https://nenadsky.com/wp-content/uploads/2025/04/graverka2-300x169.webp 300w, https://nenadsky.com/wp-content/uploads/2025/04/graverka2-768x432.webp 768w, https://nenadsky.com/wp-content/uploads/2025/04/graverka2-1536x864.webp 1536w, https://nenadsky.com/wp-content/uploads/2025/04/graverka2.webp 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Повезивање свих компоненти, калибрација и конфигурисање оса захтевали су доста времена и труда, али сваки помак и успешно извршен задатак доносио ми је невероватно задовољство.</p>



<h3 class="wp-block-heading">Шта сам научио из овог пројекта</h3>



<p>Овај пројекат ми је пружио:</p>



<p>• Практично разумевање рада корачних мотора<br>• Вештине у повезивању и програмирању Ардуино платформе<br>• Искустvo у раду са G-кодом и CNC контролним софтвером<br>• Знање о механичким принципима и стабилности структуре</p>



<p>Што је најважније, овај пројекат ми је дао самопоуздање да се упустим у следећи, много амбициознији корак.</p>



<h3 class="wp-block-heading">Прелазак на полупрофесионалну ЦНЦ машину</h3>



<p>После неколико месеци рада и тестирања ове минијатурне ЦНЦ машине, одлучио сам да подигнем ствари на виши ниво. Инспирисан сопственим успехом и свим што сам научио, започео сам рад на полупрофесионалној ЦНЦ машини која ће користити:</p>



<p>• Корачне моторе NEMA17 или чак NEMA23 – много снажније и поузданије<br>• Алуминијумске профиле за чврсту и стабилну конструкцију<br>• Боље водилице и вијке са навојем за већу прецизност<br>• Већа радна површина</p>



<h2 class="wp-block-heading">Савети за све који желе да направе своју ЦНЦ машину</h2>



<p>Ако си почетник и желиш да уђеш у свет CNC технологије, ево неколико савета из прве руке:</p>



<p>1. Почни са оним што имаш – не чекај савршене услове<br>2. Учи из грешака – први покушаји ретко буду савршени<br>3. Истражуј и питај – заједнице на Reddit-у, YouTube канали и форуми су злато<br>4. Документуј свој напредак – не само због других, већ и због себе</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="737" src="https://nenadsky.com/wp-content/uploads/2025/04/graverka3-1024x737.webp" alt="Гравирање и сечење шперт плоче" class="wp-image-1331" srcset="https://nenadsky.com/wp-content/uploads/2025/04/graverka3-1024x737.webp 1024w, https://nenadsky.com/wp-content/uploads/2025/04/graverka3-300x216.webp 300w, https://nenadsky.com/wp-content/uploads/2025/04/graverka3-768x553.webp 768w, https://nenadsky.com/wp-content/uploads/2025/04/graverka3-1536x1106.webp 1536w, https://nenadsky.com/wp-content/uploads/2025/04/graverka3-2048x1474.webp 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Закључак: DIY пројекти као врата у свет инжењеринга</h2>



<p>Израда ове ЦНЦ машине није само технички пројекат — то је био мој начин да се повежем са светом инжењеринга, машинства и технологије. Са сваким покретом мотора и сваком линијом гравуре, откривао сам колико је лепо створити нешто својим рукама.</p>



<p>Ако сам ја могао да направим ЦНЦ машину из старог рачунара и DVD-уређаја, можеш и ти. Потребни су само идеја, мало храбрости и пуно стрпљења.</p>



<p></p><p>The post <a href="https://nenadsky.com/od-starog-racunara-do-cnc-masine-moja-uradi-sam-prica-sa-arduinom/">Од старог рачунара до ЦНЦ машине: Моја Уради-сам прича са Ардуином</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Контролисање сијалице: Водич за почетнике за коришћење релеја</title>
		<link>https://nenadsky.com/kontrolisanje-sijalice-vodic-za-pocetnike-za-koriscenje-releja/</link>
		
		<dc:creator><![CDATA[Nenadsky]]></dc:creator>
		<pubDate>Thu, 12 Dec 2024 08:00:00 +0000</pubDate>
				<category><![CDATA[Ардуино]]></category>
		<category><![CDATA[relay control]]></category>
		<category><![CDATA[ардуино пројекат]]></category>
		<category><![CDATA[видео туторијал]]></category>
		<category><![CDATA[почетнички пројекат]]></category>
		<category><![CDATA[програмирање]]></category>
		<category><![CDATA[туторијал]]></category>
		<category><![CDATA[упутство]]></category>
		<guid isPermaLink="false">https://nenadsky.com/?p=1292</guid>

					<description><![CDATA[<p>Откријте како да контролишете релеј помоћу Ардуина помоћу серијских команди. Овај водич објашњава како да укључите релеј, пошаљете СОС сигнале и аутоматизујете задатке са прецизним мерењем времена помоћу `миллис()`. Савршено за почетнике који желе да побољшају своје Ардуино пројекте помоћу контроле релеја.</p>
<p>The post <a href="https://nenadsky.com/kontrolisanje-sijalice-vodic-za-pocetnike-za-koriscenje-releja/">Контролисање сијалице: Водич за почетнике за коришћење релеја</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Увод у релеје и Ардуино</h2>



<p>Релеји су прекидачи на &#8220;електрични погон&#8221; који омогућавају нисконапонским колима да контролишу уређаје високог напона. У контексту коришћења Ардуина, популарног микроконтролера, релеји служе као кључни интерфејс између нисконапонског излаза Ардуина и високог напона који захтевају сијалице. Ова могућност је од суштинског значаја за пројекте који укључују кућну аутоматизацију или било које апликације које захтевају контролу над уређајима велике снаге, истовремено осигуравајући безбедност корисника и интегритет уређаја.</p>



<span id="more-1292"></span>



<p>У својој основи, релеј се састоји од електромагнета и скупа контаката. Када се електромагнет напаја нисконапонским сигналом из Ардуина, он ствара магнетно поље које спаја контакте, затварајући коло и омогућавајући струји да тече кроз повезани високонапонски уређај, као што је сијалица. Када се напон уклони, контакти се отварају, чиме се искључује високонапонско коло. Овај процес илуструје како микроконтролер може ефикасно да управља уређајима који раде на напонима изнад његових оперативних граница.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="A Beginner&#039;s Guide to Using Relays with Arduino" width="1080" height="608" src="https://www.youtube.com/embed/yJbTuRS5ztc?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>Доступни су различити типови релеја, укључујући електромагнетне релеје и полупроводничке релеје  сваки са јединственим карактеристикама погодним за различите примене. На пример, полупроводнички релеји су посебно корисни када су брзина и тишина критични, док традиционални електромагнетни релеји пружају поуздано механичко решење. Без обзира на изабрани тип, сва релејна кола треба да садрже сигурносне механизме за спречавање електричних опасности. Правилна имплементација укључује коришћење заштитних компоненти и придржавање смерница за дизајн, посебно када се интегрише Ардуино у кола која укључују високе напоне.</p>



<p>Укратко, разумевање релеја је императив за свакога ко жели да прошири функционалност Ардуина у домен високонапонских апликација. Користећи принципе релеја, корисници могу да направе робусне, безбедне и ефикасне системе управљања за сијалице и друге електричне уређаје.</p>



<h2 class="wp-block-heading">Потребне компоненте и повезивање</h2>



<p>Да бисте успешно контролисали сијалице користећи Ардуино, неопходно је прикупити потребне компоненте и разумети процес подешавања. Овај водич за почетнике ће описати кључне елементе који су вам потребни и како да их ефикасно повежете.</p>



<p>Основна потребна компонента је Ардуино плоча. Ардуино Уно се често препоручује због своје једноставности и опсежне подршке заједнице. Поред тога, биће вам потребан релејни модул. Типичан релејни модул са 1 или 2 канала биће довољан за контролу једне или две сијалице. Уверите се да је релеј одговарајуће оцењен за напон и струју ваше сијалице.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1000" height="667" src="https://nenadsky.com/wp-content/uploads/2024/11/Circuit.png" alt="Повезивање Ардуина и модула релеја" class="wp-image-1307" srcset="https://nenadsky.com/wp-content/uploads/2024/11/Circuit.png 1000w, https://nenadsky.com/wp-content/uploads/2024/11/Circuit-300x200.png 300w, https://nenadsky.com/wp-content/uploads/2024/11/Circuit-768x512.png 768w, https://nenadsky.com/wp-content/uploads/2024/11/Circuit-930x620.png 930w" sizes="(max-width: 1000px) 100vw, 1000px" /><figcaption class="wp-element-caption">Повезивање Ардуина и модула релеја</figcaption></figure>



<p>Затим ће вам требати сијалица коју желите да контролишете. На следећем електричном дијаграму сијалица је представљена ЛЕД диодом. Могу се користити сијалице са жарном нити или ЛЕД, али уверите се да су сијалице компатибилне са спецификацијама релеја. За ожичење, сет краткоспојних жица је неопходан за повезивање Ардуина, релејног модула и сијалица. Штавише, прото плоча може олакшати монтажу вашег кола, иако није стриктно неопходна.</p>



<p>Када сте сакупили компоненте, време је да поставите коло. Започните повезивањем релејног модула на Ардуино. Обично, ово укључује повезивање пинова <em>Vcc</em> и <em>GND</em> релеја са одговарајућим пиновима напајања на Ардуину. <em>In</em> пин на релеју се повезује са дигиталним У/И пином на Ардуину, који ће контролисати релеј.</p>



<p>Затим повежите сијалицу са релејем. Овај корак обично захтева повезивање жица сијалице са нормално отвореним (<em>NO</em>) и <em>COM</em> терминалима релеја, омогућавајући микроконтролеру да контролише напајање сијалице. Од кључне је важности да пратите дијаграм повезивања, који се лако може пронаћи на мрежи, како бисте осигурали да су везе правилно и безбедно направљене.</p>



<p>Пажљиво пратећи ове кораке, успоставићете функционално коло које вам омогућава да контролишете сијалице преко Ардуина. Обавезно још једном проверите везе пре него што напајате коло како бисте спречили било какве кратке спојеве или потенцијалне опасности.</p>



<h2 class="wp-block-heading">Писање Ардуино кода за контролу релеја</h2>



<p>У овом примеру, рад сијалице контролише Ардуино и релеј, уз могућност прикључења било ког високонапонског потрошача уместо сијалице. Програм омогућава управљање потрошачем уносом команди са рачунара, а комуникација се врши серијски (или даљински путем Интернета, Блутут или друге везе). Доступне команде су:</p>



<ul class="wp-block-list">
<li>#ON – укључује потрошача</li>



<li>#OFF – искључује потрошача</li>



<li>#SOS – емитује СОС сигнал помоћу потрошача</li>



<li>#REPEAT – омогућава аутоматско укључивање потрошача у одређеним временским интервалима, које корисник дефинише у програму.</li>
</ul>



<p>Програм пружа следеће функционалности:</p>



<ul class="wp-block-list">
<li>Основно управљање – једноставно укључивање и искључивање потрошача.</li>



<li>СОС сигнализација – потрошач се користи за слање СОС сигнала користећи Морзеову азбуку (краћи прекидач представља тачку, а дужи прекидач представља линију).</li>



<li>Периодично укључивање – могуће је да се потрошач аутоматски укључује у одређеним интервалима (нпр. сваких сат времена, сваких 12 сати, једном дневно) и ради одређено време.</li>
</ul>



<p>Пример демонстрације: потрошач се укључује сваких 10 секунди и остаје укључен 3 секунде, након чега се искључује 7 секунди.</p>



<h3 class="wp-block-heading">Програм</h3>



<pre class="wp-block-preformatted">constexpr int relay = 4;<br>constexpr unsigned long repTime = 10000;<br>constexpr unsigned long operatingTime = 3000;<br>unsigned long currTime;<br>unsigned long prevTime = 0;<br>String command = "";<br>int signal = 0;<br><br>void setup() {<br>  pinMode(relay, OUTPUT);<br>  Serial.begin(9600);<br>}<br><br>void loop() {<br>  //Serial.println(signal);<br>  switch(signal) {<br>    case 1:<br>      turnOn();<br>      break;<br>    case 2:<br>      turnOff();<br>      break;<br>    case 3:<br>      sendSOS();<br>      break;<br>    case 4:<br>      repeatTask();<br>      break;<br>  }<br>  <br>}<br><br>void turnOn() {<br>  digitalWrite(relay, HIGH);<br>}<br><br>void turnOff() {<br>  digitalWrite(relay, LOW);<br>}<br><br>void sendSOS() {<br>  for(int i = 0; i &lt; 3; i++) sendChar(200);<br>  for(int i = 0; i &lt; 3; i++) sendChar(500);<br>  for(int i = 0; i &lt; 3; i++) sendChar(200);<br>}<br><br>void sendChar(int duration) {<br>  turnOn();<br>  delay(duration);<br>  turnOff();<br>  delay(duration);<br>}<br><br>void repeatTask() {<br>  currTime = millis();<br>  if(currTime - prevTime >= repTime)<br>    prevTime = currTime;<br>  <br>  if(currTime - prevTime &lt;= operatingTime)<br>    turnOn();<br>  else<br>    turnOff();<br>}<br><br>void serialEvent() {<br>  command = Serial.readStringUntil('\n');<br>  command.trim();<br>  if(command == "#ON") signal = 1;<br>  if(command == "#OFF") signal = 2;<br>  if(command == "#SOS") signal = 3;<br>  if(command == "#REPEAT") signal = 4;<br>}</pre>



<h2 class="wp-block-heading">Мере предострожности и закључак</h2>



<p>Када радите са високонапонским уређајима, сигурност се не може преценити. Кључно је предузети неопходне мере предострожности како би се осигурала и лична безбедност и правилно функционисање опреме. Прво и најважније, све везе укључене у контролу сијалица са Ардуином и релејима треба да буду сигурне и без лабавих жица. Лабави спојеви могу довести до стварања лука, што представља опасност од пожара и може оштетити компоненте.</p>



<p>Поред тога, употреба изолованих алата се препоручује при руковању електричним компонентама. Изоловани алати су дизајнирани да заштите корисника од струјног удара и увек би требало да буду први избор када радите у окружењима где је присутан висок напон. Штавише, неопходно је двапут проверити сва ожичења пре него што примените напајање. Систематски преглед сваке везе осигурава да не постоје грешке које би могле довести до опасних ситуација.</p>



<p>Како се почетници упуштају у свет Ардуина и релеја, можда ће им примена ових компоненти у контроли светлости бити посебно корисна. Релеји нуде робусно решење за управљање високонапонским уређајима, омогућавајући корисницима да безбедно и ефикасно контролишу сијалице. Разумевање стечено оваквим пројектима пружа основу за решавање сложенијих апликација у будућности. Опремљени својим новостеченим знањем, корисници ће се вероватно осећати инспирисаним да истражују даље и предузимају напредне пројекте, користећи потенцијал Ардуина на иновативне начине.</p>



<p>У закључку, најважније је придржавати се мера безбедности док радите на пројектима електронике који укључују релеје и контролу светла. Осигуравањем безбедних веза, коришћењем изолованих алата и темељном провером ожичења, корисници могу значајно да минимизирају ризике. Како напредују, предности коришћења релеја са Ардуином не само да побољшавају њихове тренутне пројекте већ и постављају основу за сложеније електронске авантуре које предстоје.</p><p>The post <a href="https://nenadsky.com/kontrolisanje-sijalice-vodic-za-pocetnike-za-koriscenje-releja/">Контролисање сијалице: Водич за почетнике за коришћење релеја</a> first appeared on <a href="https://nenadsky.com">Nenadsky ✦ Блокчејн, Интернет ствари и Линукс тутоијали и савети</a>.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
