The project in a nutshell: I am fond of reading books and collecting them in my library and needed a simple way to verify whether I have a particular book when searching for an edition via ISBN and thus created this electronics project and the associated web application.
To search editions easily, I created a gadget that sends the entered ISBN to the web application by using Arduino Nano 33 IoT. And, I developed a simple menu letting you choose and manage options displayed by a Nokia 5110 screen. The mentioned menu offers more features than sending ISBN: you can find more information in the following steps.
Also, to maintain the database with a user-friendly interface when entering new book entries, I developed a web application in PHP, named ISBN Registration. In this application, you can create book entries identified by their ISBN, including name, page, and author information. You can use this application in the free version on TheAplituhedron if you need a host server for this project without struggling with PHP. Click here to create your application hosted on TheAmplituhedron. Nevertheless, the web application is open source: I provided the source code with instructions for those who want to either upload the web application on a different server or modify it.
Some of the mentioned products and components in this project are sponsored by digitspace:
- Arduino Nano 33 IoT with Headers | Inspect
- 4×4 Matrix Array Keyboard 16-Key Membrane Switch Keypad | Inspect
"ISBN is the acronym for International Standard Book Number. This 10 or 13-digit number identifies a specific book, an edition of a book, or a book-like product (such as an audiobook). Since 1970 each published book has a unique ISBN. In 2007, assigned ISBNs changed from 10 digits to 13."
"On most books, the ISBN number can be found on the back cover, next to the barcode. If a book doesn't show the ISBN on the back cover, look on the page featuring the copyright and publisher information and the ISBN will be found there."
Reference: https://www.abebooks.com/books/search-number-code-10-13-digit/ISBN.shtml
With this web application, you can create book entries comprised of ISBN, name, page, and author parameters for each book in your library.
Features:
1) Create a book entry.
2) Delete the selected book entry.
3) Scrutinize previous book entries in the database every time a new ISBN is received.
4) Print a response message after interpreting the ISBN.
%Data Science%260%John Kelleher and Brendan Tierney%3%
Class:
I wrote a class named ISBN_Info for this project, which collects the functions and global variables. You can inspect it in the ISBN_Registration_Class.php file.
- In the defineUser() function, define the global variables.
- In the saveNewBook() function, save a new book entry with ISBN, name, page, and author parameters to the database if the condition is met.
- In the writeBooks() function, list all book entries in the database.
- In the deleteEntry() function, delete the selected book entry through ISBN.
- In the arduino_response() function, print the response message, depending on the received ISBN, to be detected by Arduino Nano 33 IoT.
Index:
This is the user interface of the web application by which you can create or delete book entries in the database easily. I, merely, give instructions about the server-side code here, you can find more information in the ISBN_Registration_Index.php file.
- Include the ISBN_Info class.
- Define SQL database information and settings.
- Create and define a new user.
- If the ISBN variable is received, activate the arduino_response() function.
- If a new book entry is detected, trigger the saveNewBook() function.
- If the delete variable is detected, trigger the deleteEntry() function.
Style:
You can inspect the ISBN_Registration_Style.css file for more information regarding the interface design.
Note: If you need a host server, you can use this web application in the free version on TheAmplituhedron: Inspect.
If you are a novice in programming with Arduino Nano 33 IoT: do not worry, it is simple to use with Arduino IDE. Just download the required drivers - Arduino SAMD Core - as well-explained here.
To be able to connect to the WiFi via Arduino Nano 33 IoT, download the WiFiNINA library from here.
To print text and draw graphics on Nokia 5110 Screen, download the LCD5110_Basic library from here.
To use the 4X4 Membrane Keypad accurately, download the Keypad library from here.
Then, Arduino Nano 33 IoT is ready to execute the source code for this project :)
Step 3: Programming Arduino Nano 33 IoT- Include the required libraries.
- Define the WiFi settings and status.
- Define the server (e.g., www.theamplituhedron.com). Change it with your server if you are using a different host server than TheAmplituhedron.
- Define the directory of the ISBN Registration web application in the server.
- Define your hedron if you are using TheAmplituhedron as the host server for this project
- Initialize the Ethernet client library.
- Define screen settings, fonts, and graphics as bitmap images.
- Define the symbols on the buttons of the keypads.
- Define menu options and screens using volatile booleans.
- Connect to the WiFi.
- Print the interface.
- Detect whether an option is marked or not.
- Pressing '*' on the keypad, select the marked option.
- To exit from the selected option to return to the interface, press '#'.
- Create the Search ISBN option.
- Press '*' to send the entered ISBN to the web application to be interpreted.
- Connect to the web application named ISBN Registration System.
- Make an HTTP Get Request to send the entered ISBN.
- Update ISBN with the recently entered key.
- If there are incoming bytes available, get the response from the web application.
- Split the response string by a predefined delimiter in a simple way. '%' (percentage) is defined as the delimiter in this project.
- Print information.
- Create the Registered option.
- Print the number of the registered book.
- Create the Graphics option.
- Draw bitmap images as graphics until '#' is pressed.
- Create the Sleep option.
- Activate the sleep mode in 10 seconds.
- Print remaining seconds.
Display the WiFi connection status.
To mark any option defined with a letter on the interface, press the A, B, C, or D symbol.
A. Search ISBN
B. Registered
C. Graphics
D. Sleep
A. Search ISBN:
Activate the process by pressing the '*' symbol.
Enter the ISBN of the selected book.
Press the '*' symbol to send the entered ISBN to the web application.
If there is no record in the database, the gadget prints "Not Found!" as the response message.
Otherwise, the gadget prints the book information received from the web application.
Press the '#' symbol to exit and clear.
B. Registered:
Activate the process by pressing the '*' symbol.
Detect the status of the currently scanned database.
Not Detected!: No request to the server.
Not Found!: There is no book entry with the latest ISBN in the database.
Number (3): Found an entry with the latest ISBN.
Expired!: Status is already seen.
Press the '#' symbol to exit and clear.
C. Graphics:
Activate the process by pressing the '*' symbol.
Draw the included bitmap images in the given order for fun :)
You can create different bitmap images other than I provided using this application.
Press the '#' symbol to exit and clear.
D. Sleep:
Activate the process by pressing the '*' symbol.
Enable the sleep mode in 10 seconds.
Print the remaining seconds.
Press the '#' symbol to disable the sleep mode.
Make the pinout connections as shown in the IoT_ISBN_Verifier.ino file.
As depicted in the schematics, attach all components on breadboards.
Affix the 4X4 Membrane Keypad to breadboards using a hot glue gun.
Demonstration | Gadget
Demonstration | Application
Comments