<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ahmed Ishiba</title>
    <description>The latest articles on DEV Community by Ahmed Ishiba (@ishiba).</description>
    <link>https://dev.to/ishiba</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4099614%2F006ba486-b2a4-49b7-9854-af8a128d52e4.png</url>
      <title>DEV Community: Ahmed Ishiba</title>
      <link>https://dev.to/ishiba</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ishiba"/>
    <language>en</language>
    <item>
      <title>smart agriculture system</title>
      <dc:creator>Ahmed Ishiba</dc:creator>
      <pubDate>Fri, 04 Sep 2026 16:55:31 +0000</pubDate>
      <link>https://dev.to/ishiba/smart-agriculture-system-8jl</link>
      <guid>https://dev.to/ishiba/smart-agriculture-system-8jl</guid>
      <description>&lt;p&gt;This is documentation of my latest and most exciting project so far&lt;br&gt;
a smart agriculture system on raspberry pi running a linux image that was customized using the yocto project&lt;/p&gt;

&lt;p&gt;this project was part of my final project for my embedded systems diploma, I was tasked to create a system with the following features&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;system runs on raspberry pi using a custom linux image&lt;/li&gt;
&lt;li&gt;automatic watering when soil moisture falls below certain threshold,real-time monitoring of temprature humidity and soil moisture, rain sensor to immediately stop watering when rain starts&lt;/li&gt;
&lt;li&gt;a Qt based application for visualization and manual control of the system&lt;/li&gt;
&lt;li&gt;application for design patterns to ensure maintainability&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Firstly
&lt;/h2&gt;

&lt;p&gt;I decided that the correct order of things was to first be comfortable with the sensors first then start building the image, I was glad I did that because I realized I needed an external ADC since the raspberry pi does not have built in ADC, I then wrote the code using the pigpio python library since I was already proficient in it after my robotics experience&lt;/p&gt;

&lt;h2&gt;
  
  
  Secondly
&lt;/h2&gt;

&lt;p&gt;I started laying out the dependencies and what features I need and what to leave and came to the following list&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SSH (openssh)&lt;/li&gt;
&lt;li&gt;splash screen (psplash)&lt;/li&gt;
&lt;li&gt;uart&lt;/li&gt;
&lt;li&gt;i2c&lt;/li&gt;
&lt;li&gt;ADC (ads112)&lt;/li&gt;
&lt;li&gt;wifi (wpa-supplicant)&lt;/li&gt;
&lt;li&gt;date and time(tzdata)&lt;/li&gt;
&lt;li&gt;pigpio&lt;/li&gt;
&lt;li&gt;screen support&lt;/li&gt;
&lt;li&gt;Qt&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I then searched for each recipe on openembedded layer index to see which layer provides which recipe&lt;br&gt;
next step was to determine what append files I need like the splash screen, the wifi, the date and time and the screen support&lt;/p&gt;

&lt;p&gt;I included all the necessary layers and recipes and went on to the next step&lt;/p&gt;

&lt;h2&gt;
  
  
  Thirdly
&lt;/h2&gt;

&lt;p&gt;This was by far the most tiring, frustrating and most confusing step, I am not exaggerating when I say that I spent weeks just researching errors and asking AI bots, not to mention missing dependencies, wrong do_compile functions, wrong source files paths, MAKE files that are over 50 lines and debugging that made me pull my hair, however I didn't feel more satisfied and happy like when I saw the splash screen rendered correctly, the ADC working, the I2C detecting the ADC and not to mention getting readings from the sensors&lt;/p&gt;

&lt;p&gt;This part is still somewhat blurry and there are a lot of stuff I just pasted from stack overflow and other sites (AI was not helping in the slightest I think it actually made it more confusing)  I want to come back to this post and provide screenshots and demos of the system working but that takes a lot of time and I still have trauma from the Quality Assurance errors and need a break&lt;/p&gt;

&lt;p&gt;If you have any tips to help make the process of building systems easier please please tell me&lt;/p&gt;

</description>
      <category>iot</category>
      <category>linux</category>
      <category>raspberrypi</category>
    </item>
    <item>
      <title>Banking system C++</title>
      <dc:creator>Ahmed Ishiba</dc:creator>
      <pubDate>Fri, 04 Sep 2026 15:35:10 +0000</pubDate>
      <link>https://dev.to/ishiba/banking-system-c-ebo</link>
      <guid>https://dev.to/ishiba/banking-system-c-ebo</guid>
      <description>&lt;p&gt;One of my first projects using C++ and Qt was a banking system which I think is the basic project every student has done at least once&lt;br&gt;
It actually gave me a good understanding of C++ and Qt&lt;br&gt;
The project was to be submitted as a final project to my embedded linux diploma and they had some requirements which was&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The project must be divided into a server and client application ,I wrote the client application as a QML GUI with some logic as to interpret the button presses and text as signals which then send them to the server application &lt;/li&gt;
&lt;li&gt;the communication between the 2 application must be done using sockets (which I had no experience with and was the most frustrating thing to get working)&lt;/li&gt;
&lt;li&gt;there should be a user and admin option for the project&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  First
&lt;/h2&gt;

&lt;p&gt;I decided to start with the easiest thing which was the GUI it was pretty simple, only had to learn some stuff in QML so I opened the documentation and tried some basic stuff since my application is not that advanced&lt;/p&gt;

&lt;h2&gt;
  
  
  Second
&lt;/h2&gt;

&lt;p&gt;I wrote the signals and slots and incorporated them in my GUI so the button presses actually had an impact&lt;/p&gt;

&lt;h2&gt;
  
  
  Third
&lt;/h2&gt;

&lt;p&gt;I started doing the server application as a CLI then I added the communication part later, I used a json format for my database since I saw that Qt already had a nice library to interface with json files, next was the classes I made the database as a class and added methods like load, save and other database related functions then for the user class I wrote the methods that was required and is accessible for the user as for the admin I just inherited from the user class and overloaded some functions in order to give the admin more permissions and privileges and added functions that are only accessible to admins&lt;/p&gt;

&lt;h2&gt;
  
  
  Fourth
&lt;/h2&gt;

&lt;p&gt;fourth came the problem that I kept procrastinating and dreading, the communication.Big shout out to claude AI because he kinda co published it, I learnt some basic stuff about TCP and how to implement it in Qt using their built in library then claude took the steering wheel and wrote stuff I somewhat understand and am too lazy to actually learn &lt;/p&gt;

&lt;p&gt;here are some images i created using PlantUML that showcase the inheritance and usage of this banking system&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx6bs2ezp2rvn430t82gu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx6bs2ezp2rvn430t82gu.png" alt=" " width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbj4n5oxworln8exprzou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbj4n5oxworln8exprzou.png" alt=" " width="416" height="1154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;github repo for source code:&lt;a href="https://github.com/Ahmed-Ishiba/Cpp-Qt-banking-system.git" rel="noopener noreferrer"&gt;https://github.com/Ahmed-Ishiba/Cpp-Qt-banking-system.git&lt;/a&gt;&lt;/p&gt;

</description>
      <category>backend</category>
      <category>cpp</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
