iTriangle ENG iTriangle platform iTriangle HW overview Hardware Overview Part Function MCU ESP8266 Digital Port 0 GPIO 14 Digital Port 1 GPIO 12 Digital Port 2 GPIO 13 Analog Port A3 UART Port Pin 1 & Pin 3 I2C Port Pin 4 & Pin 5 Status Light Blue LED is the WiFi status indicator, Red LED indicates the working status Configure Button To configure and manage your iTriangle Battery Holder JST2.0 Micro USB To power the board or communicate with a PC Reset Button To reset the MCU General Value Power Management Value Size 55mm * 48mm DC Current Per I/O Pin 12 mA Crystal 26 MHz Input Voltage (Micro USB) 5 V Flash Memory 4 MBytes (W25Q32B) Input Voltage (Battery holder) 3.4~4.2 V Wi-Fi Network Protocol 802.11 b/g/n Output DC Current 1000 mA MAX Wi-Fi Encryption Technology WEP/TKIP/AES Operating Voltage 3.3 V Grove Connectors 6 Charge Current 500 mA MAX Flash 4 MB (W25Q32B) LifeTime of FLASH 10.000 write cycles Pay attention to FLASH write cycle  limits. Programs are stored in FLASH and each new firmware build or offline code update increases the internal write count. After the FLASH write limit is exceeded, the board will probably work well for the next few thousands cycles, but there is no legal warranty for exceeding the limit. Status LEDs Two status LEDs, blue and red, can be seen near the FUNCTION button. The blue LED indicates network status and has the following blink patterns: blinking slowly – configuration mode blinking twice quickly, then off for 1s – requesting IP address from router blinking once quickly, then off for 1s – connecting to the server on for 1s, then off for 1s – the node is online continuously on – the node is not available/has no IP/not connected to server. blinking quickly (on for 100ms, then off for 100ms) – OTA The blue LED is connected to GPIO2, which is also the TX pin of UART1. When downloading firmware, the UART1 dumps the data transmitting on UART0 automatically. The Bblue LED will therefore blink while downloading firmware. After startup, the GPIO2 will be configured as a GPIO, not TX of UART1. The red LED is another status LED and indicates the power status of Grove modules. The six VCC headers converge and can be controlled with GPIO 15. When the node is in deep sleep mode, all of the modules lose their power too. The red LED will light up when the modules are powered and switch off when modules are not powered. Bonus! iTriangle has an inbuilt LiPo battery charger. You can charge a 3.7 V LiPo battery with the JST 2.0 Port when connected by USB. What are the differences between each iTriangle set? The iTriangle sets are available in five versions. Each differs in the amount of construction blocks and smart items and has different uses. All iTriangle sets are precisely manufactured to meet STEM requirements and target different curriculums and markets. The table below shows the main differences iTriangle Set # of construction blocks # of sensors # of actors type of master unit target market # of curriculum materials included iTriangle EDU set v1.0 320 pcs 13 pcs 6 pcs iTriangle MASTER Primary school 15 complete classes with 45 task variations iTriangle EDU set v2.0 322 pcs 12 pcs 6 pcs iTriangle 4.0 online unit + display Broad EDU, primary, secondary and university 15 complete classes with unlimited variations + online coding iTriangle START set 214 pcs 9 pcs 7 pcs iTriangle 4.0 online unit Primary, secondary + free time activity centers 30 tasks + unlimited variations + online coding iTriangle STEM set 166 pcs 11 pcs 3 pcs iTriangle 4.0 online unit Primary, secondary schools with an environmental focus 10 tasks + unlimited variations + online coding iTriangle Home set 204 pcs 5 pcs 3 pcs iTriangle 4.0 online unit free time activity + home tutoring 10 tasks + unlimited variations + online coding Base unit types iTriangle MASTER Control interface with a 2.8" touchscreen and integrated battery Intuitive control with complete OFFLINE work – nothing more to connect Export processed and evaluated data to MS Excel Connect control components Graphically display connected sensors and actors Power bank 5600 mAh Communicate with the Educational, Sensor and Actuator kits Compatible with Lego bricks The biggest advantage of this unit is standalone work. You don't need a computer to work with it and it is completely offline. The offline version has only one disadvantage. You can only use it for 15 complete classes prepared in advance for 45 variations in the curriculum. Other new classes have to be manually uploaded by computer. Five new classes are regularly deployed and uploaded for users. iTriangle 4.0 online unit This unit is the innovative iTriangle MASTER unit. It is delivered with an external power bank and three AAA batteries to power it. The power source is easily changed if it is empty. An optional 2.8" touch screen colour interface has the same functionalities as the iTriangle MASTER unit as well as free screens for use with your own prepared tasks. The iTriangle 4.0 is an ONLINE unit and can be connected via WiFi to the internet and easily controlled with a web application. This software interface lets you control MAJOR features: Measure with several sensors at once and easily exporting data to MS Excel Easily download updates, new tasks and classes Unlimited variation in use. You can create your own experiments and easily program code in the Blockly coding environment Update code and disconnect from the internet to work OFFLINE Minimalist design. It can be used with many other small, final products Incorporates notions of the IoT and Industry 4.0 natively in school classes Motivates students to create their own code and think about how it works Online debug view for agile managed development List of sensors and components in each set The table below shows a list of items in each iTriangle set Name iTriangle EDU set v1.0 iTriangle EDU set v2.0 iTriangle START set iTriangle STEM set iTriangle Home set 4 in 1 sensor 1 pc 1 pc 1 pc 1 pc - Push button switch 1 pc 1 pc 1 pc 1 pc 1 pc Buzzer 1 pcs 1 pc 1 pc 1 pc 1 pc Continuous servo 360 dg - 2 pcs 1 pc - 1 pc Hall Sensor 1 pc 1 pc - - - IR sensor 2 pcs 2 pcs 2 cs 2 pcs 1 pc LED matrix 8x8 - 1 pc 1 pc 1 pc - LED stripe - - - - 1 pc Light sensor - - 1 pc 1 pc 1 pc Luminance sensor 1 pc 1 pc - - - Moisture sensor - - 1 pc 1 pc 1 pc PIR motion sensor - - 1 pc 1 pc 1 pc High pressure 1 pc 1 pc - - - Relay 1 pc 1 pc 1 pc - - Servo 180 dg 1 pc 2pcs 2pcs 1 pc 1 pc Sound sensor 1 pc 1 pc - - - Thermometer 1 pc 1 pc 1 pc 1 pc - Temperature and humidity sensor - - 1 pc 1 pc - High accuracy temperature and humidity sensor 1 pc 1 pc - - - Tone generator 1 pc 1 pc 1 pc 1 pc 1 pc Ultrasonic ranger 1 pc 1 pc 1 pc 1 pc 1 pc Voltage divider 1 pc 1 pc 1 pc 1 pc 1 pc Water pump - - 1 pc - 1 pc Connecting iTriangle to a WiFi network You can connect the iTriangle device to a network in two ways. Select the way that suits you best, and if you cannot connect, the reset switch will let you start again. Connect to a predefined iTriangle network Each iTriangle device is set up with a predefined WiFi network when it is delivered to the customer. It simplifies the process for the customer when first powering up. Some iTriangle sets include a Huawei E5730s WiFi router that also uses these settings. If your iTriangle set comes with an Huawei E5730s router, you do not need to do anything to set up the network. All settings are set at the factory and you simply power up the iTriangle device and Huawei router. First read the Huawei guide on how to operate the Huawei E5730s router and learn what the indicators on the router mean. Note: the Huawei E5730s router can operate as a WiFi bridge for your LAN when it is connected to a LAN port or as 3G modem with WiFi hotspot when it is switched to 3G mode. Try connecting other devices such as notebooks and mobile phones to the iTriangle network with the Huawei E5730s in 3G mode, as Fair Use Policy limitations and high traffic can lead internet access being temporarily disabled. If your set does not contain a router, you can create a WiFi network on your personal or school WiFi access point. Kindly ask your IT support to create a WiFi network with the settings below or manage these access point settings on your own. WiFi SSID iot_network WPAPSK key itriangle1234 WiFi security WPAPSK Connect to any other WiFi network with WPAPSK security If you don't have the option to create a dedicated iTriangle WiFi network, you can change the iTriangle WiFi settings to any available WiFi network with WPAPSK security. To change the settings of the iTriangle device, you will need to follow the guide HOW TO CONNECT ITRIANGLE TO WIFI VIA AN ANDROID/IOS APP. After you complete these four steps, your iTriangle WiFi settings will be changed to the ones you specify. Note: this procedure has some limitations A setup application is only available for Android/iOS operating systems and can be downloaded from the store free of charge You have to agree privacy policies and allow Android/iOS APP to manage your WiFi connections, check your location, allow the store to access your credentials, etc. Anytime you activate the configure mode on an iTriangle device, the original factory WiFi settings are restored. If  you are using your own WiFi settings, you will have set up new network access. How to RESET the original factory settings Press and hold the CONFIG button until the blue LED turns into breathing mode (i.e., blinking with a fade in & fade out effect). It means that iTriangle has successfully switched to configuration mode and the original WiFi settings were restored to the iTriangle EEPROM. Press the RESET button once to reinitialize the original WiFi settings and then follow the normal connection procedure. How to connect iTriangle to a private WiFi network via Android/iOS APK STEP 1: Install the Android/iOS App You must install the iTriangle App to manage and configure your iTriangle devices. Download the Android or iOS App and install. Or, go to the App Store or Google Play and search for "iTriangle"to find it. Get Android App Get iOS App Make sure your Android OS version is 4.1 or higher, or your iOS version is 7 or higher. STEP 2: Create an account or use a predefined account If this is your first time using the iTriangle APP, you may be asked for GPS authorization. Please approve it, then sign up. This privilege is necessary for managing WiFi networks connecting to the iTriangle device. If you already have an account, check the server location before logging in. Please make sure you enter the correct server location. An incorrect server location will not connect you to iTriangle. STEP 3: Connect to the iTriangle WiFi APP Press and hold the CONFIG button until the blue LED starts blinking slowly with a fade in & fade out effect (breathing). This means that iTriangle has successfully switched to configuration mode and can be detected by the iTriangle App. Press "Add your first device". Choose an iTriangle device. "Go to the WiFi list", which will take you to the WiFi settings interface on your smartphone. If you have successfully switched the device to configuration mode and the blue LED is blinking slowly (breathing), you will find iTriangle in the WiFi list. Connect to it! (It is not usually called "iTriangle" in the WiFi list. In the example shown, it is "iTriangle_8B2F12". You  will find one called "iTriangle_xxxxxx" in your own list). As soon as you are connected, you will be notified and you can then go back to the app. The next step is to connect to the WiFi at your home or company. If the WiFi network you want to connect to has a password, you will need to enter this password. Consider that you may need to connect more than one iTriangle device in the future. A special name will let you distinguish them from each other easily. STEP 4: Virtually interconnect modules with iTriangle and update firmware In this example, we demonstrate a simple scenario with the buzzer and push button switch Click on the "iTriangle" button and you will be in the main interface. Six grove connectors will be displayed. Select the first one on the left. Because the buzzer is an output device, select the output category. Find the red icon with buzzer and select it. Drag and drop it onto the iTriangle port. Do the same with the Push button switch. The switch is an input device with a yellow icon. Drag and drop it onto the iTriangle port. A red rectangular button at the bottom will then display "Update Firmware". Select "Update Firmware". STEP 5: Start using iTriangle at code.itriangle.cz Now that you have successfully connected the Push button switch and Buzzer to iTriangle, click "Play Code" or visit code.itriangle.cz to make new programs, experiment with prepared lessons and measure connected sensors. Create new code, play with sensors and components, measure sensor values and read through prepared lessons at code.itriangle.czHow to operate the Huawei E5730s 3G/Ethernet/Wifi router Scenario 1: Accessing the internet using a WCDMA or GSM network Mobile WiFi supports WCDMA and GSM networks. After inserting a USIM card into your mobile WiFi device, youcan access the internet in any of the following ways: Roaming may incur data usage fees. To minimize your data usage, your mobile WiFi's data roamingfunction is disabled by default. When your mobile WiFi connects to a roaming network, your dataconnection will be disconnected. To re-establish the data connection, log in to the web managementpage. WiFi connection – wirelessly connect your mobile WiFi to other WiFi devices. Ethernet port connection (LAN) – connect your mobile WiFi to a computer using a network cable. USB connection – Connect your mobile WiFi to a computer using a USB cable. Follow the onscreen instructions to install the mobile WiFi driver onto the computer. Scenario 2: Accessing the internet using ethernet (WAN) Connect the mobile WiFi to an ADSL modem or wall-mounted ethernet port for internet access. Getting to Know Your mobile WiFi device Item Description Power button Press and hold the Power button until the indicator lights up, indicating that the Mobile WiFi device is switched on.Press and hold the Power button to switch off the mobile WiFi device If your mobile WiFi device malfunctions or cannot be properly switched off, press and hold the Power button for at least 10 seconds to force your mobile WiFi device to power off. Breathing indicator Blinks slowly: The mobile WiFi device is in standby mode Messages indicator • Green – new message• Blinking green – inbox full Battery indicator • Green – battery sufficient• Blinking green – charging• Orange – adequate battery level• Red – low battery• Blinking red – Battery level extremely low. Charge the device immediately WiFi indicator Green: WiFi switched on Signal indicator • Green – strong signal• Orange – weak signal• Red – no signal Ethernet indicator • Green – an ethernet connection is established• Blinking green – indicates whether the ethernet port is working in WAN or LAN mode Ethernet port • Connection to a router• Connection to a computer Micro USB port Charging port RESET button If you forget  your user name, password or SSID, you can restore the settings on the web management page to their factory values. To do so, simply press and hold the RESET button until the mobile WiFi device restarts. TODO How to change WiFi network over Android/iOS APK FAQs 1. Switching on/off and charging iTriangle online The iTriangle online unit has an integrated battery. Switch the unit on by plugging in the cable as shown in the picture below. The red LED will light up when the iTriangle online unit is powered. Recharge the battery by connecting the battery as shown above and plugging the unit into the charger via the micro USB connector as shown below. Note: downloading new programs onto the iTriangle online unit may not be possible if the battery is not sufficiently or fully charged. 2. How to work with the construction kit – basics 3. Server code.itriangle.cz doesn't work properly Restart and clear your internet browser's cache (some tips on how to do this can be found here). 4. Programs cannot be downloaded to the iTriangle online unit Make sure your iTriangle online unit is switched on (red LED is on) and connected to WiFi (blue LED is blinking slowly – "breathing"). If both LEDs are operating correctly, try recharging the battery. If the battery is insufficiently or not fully charged, communication between the iTriangle online unit and code.itriangle.cz may not work properly.Guide for code.iTriangle.cz TODO Basic UI and the first look TODO Measuring and experimenting with sensors TODO Blockly programing and basic of robotics Visual programing blocks – Logic Boolean algebra is a mathematical system that has two values: true false Boolean values (also called conditions) are used in these control blocks, which contain examples: conditional blocks repeat blocks One of the many examples from those pages is: If the value of variable x is greater than 100, the condition is true and the text "What a big number!" is displayed. If the value of x is less than 100, the condition is false and "That's not very big." is displayed. Boolean values can also be stored in variables and passed on to procedures in the same way as numbers, text or list values. Blocks If a block expects a Boolean value as an input, it usually interprets an absent input as false. An example is provided below. Non-Boolean values cannot be directly plugged in where Boolean values are expected, although it is possible (but inadvisable) to store a non-Boolean value in a variable, then plug it into the input. Neither of these practices are recommended, and their behaviour could change in future versions of Blockly. Values A single block, with a drop-down menu specifying either true or false can be used to get a boolean value: Comparisons There are six comparison operators. Each takes two inputs (usually numbers) and returns a true or false condition depending on how the inputs compare to each other. The six operators are as follows: is equal to, does not equal, is less than, is less than or equal to, is greater than, is greater than or equal to. Logical operations The and block will return true only if both of its two inputs are also true. The or block will return true if either of its two inputs are true. not The not block converts its Boolean input into its opposite. For example, the result of: is false. As mentioned above, if no input is provided, a value of true is assumed and the following block produces the value false: Leaving an input empty is not recommended, however.Visual programing blocks - IfElse Conditional statements are central to computer programming. They make it possible to express statements like: If there is a path to the left, turn left. If score = 100, print "Well done!". See additional information about conditional statements. Blocks If blocks The simplest conditional statement is an if block, as shown: When run, this will compare the value of the variable x to 100. If it is larger, "What a big number!" will be printed. Otherwise, nothing happens. If-Else blocks It is also possible to specify that something should happen if the condition is not true, as shown in this example: As with the previous block, "What a big number!" will be printed if x > 100; otherwise, "That's not very big." will be printed. An if block may have zero or one else sections but not more than one. If-Else-If blocks It is also possible to test multiple conditions with a single if block by adding else if clauses: The block first checks if x > 100, printing "What a big number!" if it is. If it is not, it goes on to check if x = 42. If so, it prints "That's my lucky number." Otherwise, nothing happens. An if block may have any number of else if sections. Conditions are evaluated top to bottom until one is satisfied, or until no more conditions are left. If-Else-If-Else blocks As shown here, if blocks may have both else if and else sections: The else section guarantees that some action is performed, even if none of the prior conditions are true. An else section may occur after any number of else if sections, including zero. Block Modification Only the plain if block appears in the toolbox: To add else if and else clauses, the user needs to click on the gear icon, which opens a new window: The user can then drag else if and else clauses into the if block, as well as reordering and removing them. When finished, the user should click on the minus sign, which closes the window, as shown here: Note that the shapes of the blocks allows any number of else if subblocks to be added but only up to one else block.Visual programing blocks – Lists As in everyday speech, a Blockly list is an ordered collection of items, such as a "to do" list or a shopping list. Items in a list may be of any type, and the same value may appear more than once in a list. List Creation create empty list The simplest list is the empty list, which is created with the create empty list block: create list with Basic use The create list with block allows the user to specify the initial values in a new list. In this example, a list of words is created and placed in a variable named letters: For this document, we'll denote this list as ["alpha", "beta", "gamma"], and we will refer below to the variables defined in this section. This shows the creation of a list of numbers: This creates a list of colours: A list with values of different types is less common, but possible : Changing the number of inputs To change the number of inputs, click on the gear icon plus symbol. This opens a new window: You can then drag item sub-blocks from the left side of the window into the if block on the right side to add a new input, as shown: The new item was added to the bottom in this example, but it can be added at any position on the list. Similarly, unwanted item sub-blocks can be dragged from the if block to the left and removed. create list with item The create list with item block lets you create a list that has a certain number of copies of an item. For example, the following blocks set the variable words to the list containing ["very", "very", "very"]. Checking a list's length is empty The value of an is empty block is true if its input is the empty list and false if it is anything else (including a non-list). IS THIS TRUE? The value of the following blocks would be false because the variable colours is not empty: it has three items. Note the similarity to the "is empty" block for text. length of The value of the length of block is the number of elements in the list used as an input. For example, the value of the following blocks would be 3 because colour has three items. Note that the length of block tells you how many items are in the list, not how many different items are in it. For example, the following has the value 3, even though words consists of three copies of the same text (["very", "very", "very"]). Note the similarity to the "length of" block for text. Finding items in a list These blocks find the position of an item in a list. For example, the following has a value of 1 because the first appearance of "very" is as the beginning of the words list (["very", "very", "very"]). The result of the following is 3 because the last appearance of "very" in words is in position 3. If the item is nowhere in the list, the result is the value 0, as in this example: These blocks are analogous to the ones for finding letters in text. Getting items from a list Getting a single item Recall the definition of the list colours: The following block gets the colour blue because it is the second element in the list (counting from the beginning on the right): The following gets green because it is the second element counting from from the end on the right: The next block gets the first element, red: The next gets the last element, yellow: This block randomly selects an item from the list, returning any of red, blue, green or yellow with equal likelihood. Getting and removing an item A drop-down menu on the in list ... get block changes it to in list ... get and remove, which provides the same output but also modifies the original list: This example sets the variable first letter to "alpha" and leaves letters as: ["beta", "gamma"]. Removing an item Selecting "remove" on the drop-down menu causes the plug at the left of the block to disappear: This removes the first item from letters. Getting a sublist The in list ... get sublist block is similar to the in list ... get block except that it extracts a sublist, rather than an individual item. There are several options how the start and end of the sublist can be specified: In this example, a new list first letters is created. This new list has two elements: ["alpha", "beta"]. Note that this block does not modify the original list. Adding items to a list in list ... set The in list ... set block replaces the item at a specified location in a list with a different item. For the meaning of each of the drop-down menu options, see the previous section. The following example does two things: The list words is created with 3 items: ["very", "very", "very"]. The third item in the list is replaced by "good". The new value of words is ["very", "very", "good"]. in list ... insert at The in list ... insert at block is obtained from the drop-down menu on the in list ... set block: It inserts a new item into the list at the specified location, before the item previously at that location. The following example (built on an earlier one) does three things: The list words is created with 3 items: ["very", "very", "very"]. The third item in the list is replaced by "good". The new value of words is ["very", "very", "good"]. The word "you're" is inserted at the beginning of the list. The final value of words is ["You're", "very", "very", "good"]. Splitting strings and joining lists make list from text The make list from text block splits the given text into pieces using a delimiter: In the above example, a new list is returned containing three items of text: "311", "555", and "2368". make text from list The make text from list block joins a list into a single text using a delimiter: In the above example, a new text is returned with the value: "311-555-2368". Related blocks Printing a list The print block in the Text category can display lists. The result of the following program is shown in the alert box: Doing something for each item in a list The for-each block in the Control category performs an operation on every item in a list. For example, these blocks individually print each item in the list: This does not remove the items from the original list. See also the examples of loop termination blocks.Visual programming blocks – Loops The Control category contains blocks that control whether other blocks placed in their body are run. (For example, in the "repeat" block below, the body contains the "print" block and its input.) There are two types of control blocks: IfElse (described on its own page) and this one, which controls how many times the body is run and, in some cases, the value of a variable used within the body. These structures are called loops since the body is repeated (possibly) multiple times, reminiscent of a rope containing loops. Each pass through the loop is called an iteration. For more information, see https://en.wikipedia.org/wiki/Control_flow#Loops. Blocks for Loop Creation repeat The simplest "repeat" block runs the code in its body the specified number of times. For example, the following block will display "Hello!" ten times. repeat while Imagine a game in which a player rolls a die and adds up all of the values rolled as long as the total is less than 30. The following blocks implement this game: A variable named total gets an initial value of 0. The loop begins with a check that total is less than 30. If so, the blocks in the body are run. A random number in the range 1 to 6 is generated (simulating a die roll) and stored in a variable named roll. The number rolled is displayed. The variable total increases by roll. At end of the loop, control returns to step 2. When the loop completes, any subsequent blocks (not shown) would be run. In our example, the loop would end after random numbers in the range 1 to 6 had been displayed a certain number of times, and the variable total would contains the sum of these numbers, which would be guaranteed to be at least 30. For more information, see https://en.wikipedia.org/wiki/While_loop. repeat until "Repeat while" loops repeat their bodies while a condition is true. Repeat-until loops are similar except that they repeat their bodies until a condition is true. The following blocks are equivalent to the previous example because the loop contains until total is greater than or equal to 30. count with The count with block (called a for loop in most programming languages) advances a variable from the first value to the second value by the increment amount (third value), running the body once for each value. For example, the following program displays the numbers 1, 3, and 5. The following two loops will each display the numbers 5, 3, and 1. The first value can be larger than the second. The behavior is the same whether the increment amount (third value) is positive or negative. for each The for each block (see https://en.wikipedia.org/wiki/Foreach) is similar, except instead of giving the loop variable values in a numeric sequence, it uses the values from a list in turn. The following program displays each element of the list: "alpha", "beta", "gamma". Loop Termination Blocks Most loops run until the terminating condition (in the case of repeat blocks) is met or until all values have been taken by the loop variable (in the case of count with and for each loops). Two rarely needed but occasionally useful blocks provide additional means for controlling loop behavior. Although the examples below show for each loops, they can be used with any type of loop. continue with next iteration The continue with next iteration (called continue in most programming languages) causes the remaining code in the body to be skipped and for the next iteration (pass) of the loop to begin. The following program displays "alpha" on the first iteration of the loop. On the second iteration, the continue with next iteration block is run, skipping the display of "beta". On the final iteration, "gamma" is displayed. break out of loop The break out of loop block provides an early exit from a loop. The following program displays "alpha" on the first iteration and "breaks out" of the loop on the second iteration when the loop variable is equal to "beta". The third item in the list is never reached. Visual programming blocks – Text Examples of items of text are: "thing #1" "March 12, 2010" "" (empty text). Text can contain letters (which may be lower-case or upper-case), numbers, punctuation marks, other symbols and blank spaces between words. (The non-Blockly term for all of these different types of text is character.) Blocks Text creation The following block creates the text "hello" and stores it in the variable named greeting. The create text with block combines (concatenates) the value of the greeting variable and the new text "world" to create the text "helloworld". Note that there is no space between them, since none was in either original text. To increase the number of text inputs, click on the gear icon, which changes the view to: Additional inputs are added by dragging an "item" block from the gray toolbox on the left into the "join" block. Text modification The to ... append text block adds the given text to the specified variable. In this case, it changes the value of the variable greeting from "hello" to "hello, there!" Text length The length of blocks count the number of letters, numbers, etc., in each text. The length of "We're #1!" is 9, and the length of empty text is 0. Checking for empty text The is empty block checks whether the given text is empty (has length 0). The result is true in the first case and false in the second. Finding text These blocks can be used to check whether an item of text is in another item of text and, if so, where it appears. For example, this asks for the first occurrence of "e" in "hello". The result is 2. This asks for the last occurrence of "e" in "hello", which is also 2. Whether first or last is selected, this block will give the result 0 since "hello" does not contain "z". Extracting text Extracting a single character This gets "b", the second letter in "abcde": This gets "d", the second to last letter in "abcde": This gets "a", the first letter in "abcde": This gets "e", the last letter in "abcde": This gets any of the 5 letters in "abcde" with equal probability: None of these modify the text on which the extraction is performed. Extracting a region of text The in text ... get substring block allows a region of the text to be extracted, starting with either: letter # letter # from end the first letter and ending with: letter # letter # from end the last letter In the following example, "abc" is extracted. Adjusting text case This block creates a version of the input text that is either: UPPER CASE (all letters upper-case) lower case (all letters lower-case) Title Case (first letters upper-case, other letters lower-case) The result of the following block is "HELLO". Non-alphabetic characters are not affected, including text in languages with no letter case, such as Chinese. Trimming (removing) spaces The following block removes space characters from: the beginning of the text the end of the text both sides of the text The result of the following block is "hi   there". (Spaces in the middle of the text are not affected.) Displaying text The print block causes the input value to be displayed in a pop-up window, as shown: If the code is exported as JavaScript, Python or Dart, it will be displayed on the console (screen). It is never sent to a printer, as the name might suggest. Getting input from the user The following block creates a pop-up window that prompts the user to enter a name. The result is stored in the variable name: This is what the current version of the pop-up window looks like: There is also a version of the block for getting a number from the user: Visual programming blocks – Variables We use the term variable in the same way as it is used in mathematics and other programming languages: a named value that can be changed (varies). Variables can be created in several different ways. Every count with and for each block uses a variable and defines its values. These values can only be used in thes blocks. A traditional computer science term for these are loop variables. User-defined functions (also known as "procedures") can define inputs, which creates variables that can be used only within the function. These are traditionally called "parameters" or "arguments". Users may create variables at any time through the "set" block. These are traditionally called "global variables". Blockly does not support local variables. Default names While users can choose any name for a variable, core Blockly provides a default name, "item", as shown in the below picture. Some applications provide other default values, such as "value", also shown below. Drop-down menu Clicking on a variable's drop-down symbol (triangle) gives the following menu: The menu provides the following options. the names of all variables defined in the program. "Rename variable...", which changes the name of this variable wherever it appears in the program. Selecting this opens a small window that prompts the user for the new name with the text: "Rename all %1 variables to:", where %1 is replaced by the old name (here "item"). "New variable...", which allows the user to enter a new name for the variable without replacing or changing variables with the old name (here "item"). Selecting this opens a small window that prompts the user for the new name with the text "New variable name:". Blocks Set The set block assigns a value to a variable, creating the variable if it doesn't already exist. For example, this sets the value of the variable named "age" to 12. Get The get block provides the value stored in a variable, without changing it. It is possible, but a bad idea, to write a program in which a get appears without a corresponding set. Example Consider the following example of code: The first row of blocks creates a variable named "age" and sets its initial value to the number 12. The second row of blocks gets the value 12, adds 1 to it, then stores the sum (13) into the variable. The final row displays the message: "Happy birthday! You are now 13"Curricullum iTriangle online Lesson 001 – Cool world You need: iTriangle MASTER online, waterproof thermometer, buzzer, 8x8 LED display, push button switch Waterproof thermometer buzzer 8x8 LED display Push button switch Introduction: Throughout history, it has always been important to understand how hot or cold the different things we come into contact with in our daily life are. Early on, people determined temperature by simply touching or coming into close contact with things. In this lesson, you can compare your ability to estimate temperature with real measurements from a waterproof thermometer. Task: Tutorial: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Mix hot and cold water in a cup so that it is around 35–37 °C. Students can practice their own estimation of given temperatures. Start the program. After you press the push button switch connected to the MASTER, the thermometer will start measuring the temperature of the nearby surroundings. Depending on the temperature, the following can happen: If the measured temperature is between 35°C and 37°C, the LED display will show a happy face and the buzzer will play a melody. If the measured temperature is above 37°C, the LED display will show a sad face and the buzzer will produce a short, high-pitched beep. If the measured temperature is below 35°C, the LED display will show a neutral face and the buzzer will produce a short, low-pitched beep. Extra mile: Feel free to change the temperature limits in the program (see yellow circles) so that students can try to mix water for  different temperatures. Examples of good practice: Technical notes:Lesson 002 – Cooling effects of volatile liquids You need: Step 1: iTriangle MASTER online, 2 bowls (we used plastic bottles), water resistant thermometer, pure alcohol, water Step 2: iTriangle MASTER online, 2 bowls, water resistant thermometer, pure alcohol, water, 2in1 temperature and humidity sensor, buzzer Waterproof thermometer Buzzer 2 in 1 sensor – temperature and relative humidity Introduction: There are times when it's important to cool down. We don't mean times when we're angry, but situations when things are too hot for us. Task: Two tasks are prepared for you. Both assess the difference between the evaporation of water and alcohol. Can you guess which one evaporates more quickly and is therefore better at cooling the surface it is applied to? Think about it and try to prove it with the following experiments. Tutorial: Step 1: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Pour water and alcohol into separate bowls. Place the thermometer into the bowl with water and wait for the temperature to stabilize. After another five seconds, remove the thermometer and sharply shake off any excess liquid and leave it to dry freely. Start the graphical measurements. The temperature should start lowering. When the temperature starts rising again, you can finish your measurements. Follow same instructions using the alcohol instead of water. When finished, compare the data and decide which of the two liquids lowers the temperature more quickly and is more volatile. Step 2: Re-use the stand from the previous step with iTriangle online. Pour water and alcohol into separate bowls. Place the thermometer into the bowl with alcohol and wait for the temperature to stabilize. After another five seconds, remove the thermometer and sharply shake off any excess liquid and leave it to dry freely. Start the program. The thermometer rod's temperature will be measured ten times, while the 2in1 sensor will measure the  temperature and humidity of the environment. There are two possible outcomes. If the temperature of the environment is higher than the temperature of the thermometer rod, the buzzer will produce a long tone. If the temperature of the environment is lower than the temperature of the thermometer rod, the buzzer will produce a short tone. Extra mile: You can adjust the program any way you want (change the buzzer's tone or add more sensors) Examples of good practice: Technical notes: After removing the thermometer from the liquid, make sure to sharply shake off any excess liquid. This will also make the liquid cover the sensor in a thin layer needed for measurements. Let the liquid stand at room temperature for around 30 minutes before starting the experiment. It is important that the water and alcohol are the same temperature as the surroundings. Because the water-resistant thermometer measures at its tip, dipping the rod just halfway into the liquid is enough.Lesson 004 – Gears You need: iTriangle MASTER online, IR gate, buzzer and construction set Infrared gate Buzzer Introduction: Cogwheels or gears working together are called a transmission. Transmissions transfer the rotational effects of an engine (a "drive") or other equipment to another part of the machine (e.g., a wind power plant). The drive and driven mechanism in this experiment will be gears. A handle on the first gear will be the drive, and the driven mechanism will be another gear next to the first gear. Tasks: Connect the gears to rotate in opposite directions. Connect the gears to rotate in the same direction. Connect the gears to make the driven wheel rotate more quickly. Connect the gears to make the driven wheel rotate more slowly. In the tasks above, count how much faster / slower the driven wheel is than the drive wheel. Use the IR gate to count the number of revolutions of the driven wheel. Tutorial: Connect the gears to rotate in opposite directions. You can use any of the gears. If they are connected as pictured, they will always rotate in opposite directions regardless of their size. Connect the gears to rotate in the same direction. To make two wheels rotate in the same direction, you need to use a third wheel between them. The size of the wheels is not important in this task. Connect the gears to make the driven wheel rotate more quickly. To make the driven wheel rotate more quickly, use one bigger and one smaller wheel. When the drive wheel is bigger than the driven wheel, the driven wheel is faster. Can you guess what happens when you use a smaller wheel as the drive? Connect the gears to make the driven wheel rotate more slowly. If you did the previous task easily, you may have already found the answer to this task. Which wheel do you need to make the other one turn more slowly? Is it the bigger or smaller one? Use the IR gate to count the number of revolutions. Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Connect the wheels to the stand as pictured below. Start the program. Start turning the drive wheel. Now comes the challenging part. To compare the number of revolutions of each wheel, you need to count how many times you turn the handle as well as how many beeps the buzzer produces. Do you find it easy or hard to do two things at once? Extra mile: Now is the time to do some math. With the help of the equations below, can you calculate how much more quickly or slowly each driven wheel is compared to the drive wheel? Create different combinations of wheels and compare the revolutions of the driven and drive wheels. Write your findings in the table below. Compare the results and answer the following question—is there a correlation between the number of teeth on each wheel and number of revolutions of the driven and drive wheels? Explain your findings. Example: If the driven wheel has three times more teeth than the drive wheel, then the driven wheel will have three times less revolutions than the driven wheel. Worksheet: Gear parameters: d1 ... drive wheel diameter; d2 ... driven wheel diameter z1 ... number of teeth on the drive wheel; z2 ... number of teeth on the driven wheel N1 ... number of revolutions of the drive wheel; N2 ... number of revolutions of the driven wheel Depending on the method and combination of gears, the drive and driven mechanism can rotate either in the same direction or oppositely, with the resultant rotational movement of the driven mechanism accelerated (transmission to faster speed) or decelerated (transmission to slower speed). Another option is direct transmission, where the speeds of the drive and the driven mechanism are the same. Quantitatively, the transmission characteristic is given by the ratio i, which is calculated as follows: i = d2 / d1 = z2 / z1 = N1 / N2 If i < 1, then transmission is to a faster speed; if i = 1, then it is direct transmission; if i > 1, then transmission is to a slower speed. There are 3 types of gears in the set: Yellow gear with 60 teeth Blue gear with 40 teeth Red gear with 20 teeth Examples of good practice: Technical notes: IR Gate can be a little challenging to operate. To make it easier, make sure there is plenty of light around but without direct sunlight and no shadows. You might need a small screwdriver to adjust the sensitivity of the IR gate by turning the small white disc in the blue casing. This usually only needs to be done once. Instructions for connecting to iTriangle online and starting measurements Connecting the iTriangle online unit to code.itriangle.cz: You can connect your iTriangle online unit to the online environment in three ways: Connect to the WiFi network through Huawei E5730s. Connect to your WiFi with WPAPSK security protocol via an Android app. Connect to a predefined WiFi. Updating the iTriangle online unit's firmware Select "Projects" on the left hand side at code.itriangle.cz. Find the lesson you want to proceed with. Click on the three horizontal lines on the left side and select "Upload online block program" and connect the sensors according to the picture on the right. Select iTriangle with the icon you set when you connected the iTriangle online unit to WiFi. This should automatically start uploading the settings of your choice. Wait for the message "Firmware was successfully updated" to display. Your iTriangle online unit is now updated with the lesson of your choice and you can start with the experiments. Starting graphical measurements Follow "Connect the iTriangle online unit" to code.itriangle.cz and the "Update the iTriangle online unit's firmware" section. Then select the "Measure" button at the left of the screen. Select iTriangle with the label you set when you connected the iTriangle online unit to WiFi by clicking on the box on the left side of the screen under the 'Nodes' section. In the "Modules" section below, the sensors connected to the iTriangle online unit will be displayed. By clicking "Start" at the top of the page on the right, you can start measuring and creating graphical representations of measurements. Starting programs Follow "Connect the iTriangle online unit" to code.itriangle.cz and the "Update the iTriangle online unit's firmware" section. Click on the "Start" button above the displayed code to start a program. Lesson 005 – Mechanical oscillation (pendulum) You need: iTriangle MASTER online, IR gate, buzzer Infrared gate Buzzer Introduction: Oscillation is a regular, rhythmic movement between two points. Its magnitude of instantaneous speed therefore varies. Task: Determine the dependence of the pendulum's oscillation period on the weight of the pendulum bob and the length of the pendulum bob's suspension. Tutorial: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Prepare the pendulum. Start the program. Press the push button switch to start your measurements. Using a timer, measure the time for five periods of oscillation. To automatically determine the number of oscillations, use the IR gate to trigger the buzzer when the pendulum passes near it. Write the measured time into the table below and recalculate it for one period. Oscillation parameters Amplitude – the maximum distance the pendulum bob moves away from the center point Period (T) – the time of a full swing back and forth of the pendulum (measured in seconds) Frequency (f) – the number of periods per second s-1 = Hz (s-1 = frequency units; Hz = Hertz) f = 1/T Worksheets Pendulum bob – dependent on weight only, length of suspension is same for all measurements Weight (number of attached wheels) 5 periods (10 T / s ) 1 period ( T / s) Pendulum bob – dependent on length of suspension only, weight is same for all measurements Length of the bob's suspension 5 periods (10 T / s ) 1 period ( T / s) Full Half Quarter Extra mile: Examples of good practice: Technical notes: Lesson 006 – Cooling effects of sprays You need: Step 1: iTriangle MASTER online, aerosol, chloraethyl spray, local anesthetic in spray, volatile liquid, water-resistant thermometer Step 2: iTriangle MASTER online, aerosol, chloraethyl spray, local anesthetic in spray, volatile liquid, water-resistant thermometer, 2 in 1 temperature and humidity sensor, buzzer Buzzer Waterproof thermometer 2 in 1 sensor – temperature and humidity Introduction: A spray (aerosol dispenser) is used to dispense liquid substances as small particles dispersed in gas (aerosol). With a given volume of liquid, its surface area and hence rate of evaporation will increase (the larger the area, the faster the evaporation). Evaporation intensity is also increased by the presence of volatile liquids used as propellant in the spray. The aerosol removes heat from its surroundings, resulting in rapid temperature drops. Chloraethyl spray can, for example, reduce surface temperatures to below -50 °C. Common sprays can achieve -5 °C with continuous application (20 to 25 seconds). Medical grade sprays can achieve deep, below zero temperatures in under seven seconds. Task: Cool the metal rod of the water-resistant thermometer to below 0 °C. Rapid evaporation of aerosol (spray) applied directly to the rod makes this possible. Tutorial: Step 1: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Apply spray to the metal tip of the waterproof thermometer in two different ways: First, spray continuously for seven to eight seconds Second, spray repeatedly in short intervals of one or two seconds Start the graphical measurements. After each application, the temperature should start decreasing. When it starts increasing, you can stop measuring. In both measurements, compare the differences in how quickly the temperature changes. Now it's time to make your own observations according to the graphs you created. Which situation shows a more rapid fall in temperature? Is it the first when you spray for a longer time, or the second when you spray more often for shorter times? Answer: when is the spray applied for a longer time, the temperature falls more quickly. The reason is that the spray does not have chance to evaporate quickly enough while more of the spray is applied. When is the spray applied repetitively for shorter times, the temperature falls in steps. This is because the spray can evaporate between each application, giving the surface of the rod time to absorb heat from the surroundings. Step 2: Re-use the stand from the previous step. Apply the spray to the metal tip of the thermometer. Start the program. The following two situations can occur: If the temperature of the environment is higher than the temperature measured by the waterproof thermometer, the buzzer will produce a short tone. If the temperature of the environment is lower than the temperature measured by the waterproof thermometer, the buzzer will produce a long tone. With the measurements from above, we can find the difference between the change in temperature of the waterproof thermometer relative to the temperature of the environment. The program will measure ten times before stopping. Extra mile: Examples of good practice: Technical notes:Lesson 007 – Cooling mixture You need: Two bowls, waterproof thermometer, salt, iTriangle online, buzzer Waterproof thermometer Buzzer Introduction: When water changes to a solid as it freezes, its temperature does not change. All heat lost caused by a cooling mixture causes a change of state of the water. Only after the water in the container has solidified will additional heat loss result in a drop in temperature to lower values. In this experiment, the cooling matter (the cooling mixture) removes heat from warmer matter (water). The experiment verifies the understanding that the temperature of the substance does not change during its change of state. Explanation of coolant temperature (crushed ice + sodium chloride): Ice melts at 0 °C. The ice-salt mixture has a melting point substantially lower (down to -20 °C). When crushed ice is mixed with sodium chloride, the ice will start melting rapidly because the mixture has a much higher temperature (about 0 °C) at that time than its freezing point. To melt ice in this way (breaking its crystal structure) requires energy (heat) to be removed at the expense of the total temperature of the salt water produced. Salting the crushed ice at a temperature of about 0 °C turns it into salt water whose temperature drops down to between -15 °C and -20 °C. The lowest temperature we can reach is -20 °C. Lower temperatures can not be achieved. For this reason, it does not make sense to sprinkle roads with salt. Practically, however, sodium chloride stops dissolving at temperatures below -8 °C to -10 °C. Defrosting is only effective at these values. Task: Create a cooling mixture that can freeze water. This experiment will show you how water behaves when it changes state. Tutorial: Step 1: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Prepare a mixture of crushed ice and salt (2 parts of ice to 1 part of salt) in a bowl. Mix both together thoroughly and insert the waterproof thermometer into the bowl. Start the graphical measurements. Watch how the temperature of the mixture falls. When the temperature stops falling, you can stop measuring. The temperature of the mixture can fall to as low as -18 °C. To achieve this, you might need to stir the mixture continuously, which you can do with the thermometer directly. Step 2: Re-use the stand from the previous step. Prepare a mixture of crushed ice and salt (3 parts of ice to 1 part of salt). Mix both together thoroughly. Take another bowl with water and place it on top of the cooling mixture. Insert the waterproof thermometer into the bowl with water. Start the graphical measurements. Watch how the temperature of the water falls. When the water turns to ice, you can stop measuring. The temperature of the water can fall as low as -12 °C. To achieve this, you might need extra cooling mixture prepared on the side. Step 3: Re-use the stand from the previous steps. Prepare a mixture of crushed ice and salt (3 parts of ice to 1 part of salt). Mix both together thoroughly. Take another bowl with water and place it on top of the cooling mixture. Insert the waterproof thermometer into the bowl with water. Start the program. The program will take measurements 10 times. There are two possible outcomes from the measurements. If the temperature is higher than 0 °C, the buzzer will produce a short tone If the temperature is lower than 0°C, the buzzer will produce a long tone Leave the water in the cooling mixture until it becomes solid. If needed, you can start the program again. You also can change the number of measurements to 20 or higher or a lower number. Extra mile: Examples of good practice: Technical notes:Lesson 008 – The light around us You need: iTriangle MASTER online, light sensor, push button switch, buzzer, 8x8 LED display, construction parts as shown in the picture below Push button switch Light sensor Buzzer 8x8 LED display Introduction: The most natural way of measuring light is with your own eyes. In this experiment, we will make some quantitative measurements and try how the light sensor from the iTriangle kit works compared to our own eyes. Task: Measure the strength of light in different locations. Tutorial: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Make sure there is enough light nearby and ideally in different places. Start the program. Press the push button switch connected to the MASTER, and the light sensor will start actively measuring the nearby light. According to the strength of the light, the following can happen: If there is enough light, the LED display will show a happy emoji If there is not enough light, the LED display will show neutral emoji If the sensor detects even less light, the LED display will show sad emoji If it is completely dark, the LED display will show a sad emoji and buzzer will sound The measurements will stop after one minute or if the sensor is in complete darkness for a few seconds. Extra mile: Move the set around the room and try to find out how much light is in different locations. Try with your own eyes whether you can see the difference in strength of the light as well as the sensor can. You can also draw a grid on paper of the classroom and note in each space how much light you measured. You can create a colourful work of art if you give each of the four possible measurements a specific colour. Try using different types of filters over the light sensor to see how different colours and materials allow light to pass through. You can use cling film, colourful see-through foils,  papers of different colour and thickness, aluminium foil, a ruler, an empty glass, a glass filled with coloured lemonade, or any other materials. Now is the time to change the program any way you want. Change the limits of the light, how the LED display behaves according to the amount of light or connect another sensors or components. To make it easier for you, please see the picture below with descriptions of different parts of the code. (PIC) Light sensors are widely used in streets to turn on street lamps when it gets dark. You can setup a warning signal when it gets too dark in your room. Sometimes you may need more light for reading but do not realise it. This can let you know when to switch on your room lights. Another option is leaving the kit in one place and measuring the change of natural light over a whole day. For long term measurements, the graph shown at code.itriangle.cz is useful for this purpose. Examples of good practice: Understanding how our eye works is important, and it is good to try to find the differences in how our eyes perceive light and the measurements from the light sensor. Try to guess what kind of filters will let through more or less light. First make some assumptions using only your eyes and then try to prove it with measurements. Because the program creates a noise when the light sensor is in complete darkness, you could create a creature that does not like being touched on the back of its neck. See the example we created below. It's an oversized worm that will start screaming and make an unhappy face when it is touched at the back of its neck. When the worm has enough space and light around, the worm is happy and quiet. (PIC) What did you create? We would like to show others what you made, so please share your creations with us! :) Technical notes: The light sensor is not designed to measure direct sunlight. If used under direct sunlight, the sensor may be over-saturated with light and any measurements done may not be accurate.Lesson 009 – Motion sensor PIR You need: iTriangle online, PIR motion sensor, buzzer Buzzer PIR motion sensor Introduction: Detect the motion of an object using a PIR sensor that responds to infrared light emitted by the moving object. Infrared radiation is a part of the electromagnetic spectrum that is invisible to the human eye. All objects that have a temperature above -273.15 °C (0 Kelvin) emit this thermal radiation. The natural temperature of human is around 37 °C. People therefore emit a large amount of heat that can be measured by PIR motion sensor. The PIR sensor measures temperature in different segments of its field of view. The temperature measured by each segment is individually evaluated and recorded for comparison with other segment measurements. Task: Find out how long the PIR sensor needs to detect a movement near the sensor. Every type of PIR sensor has different setting and sensitivity. In this task we will check the sensor's settings. Examine what the sensor can detect according to the size, temperature and speed of an object. Tutorial: Step 1: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Choose an object you want the PIR sensor to detect. Start the graphical measurements. If the sensor detects an object, the graph will show a value of 1. If no object is detected, the value is 0. Find out how long the sensor needs between detected movements (value 1 does not immediately change to 0 – there is a set delay in the ability to detect movements). Calculate the arithmetic mean of delay from the measured values and use these findings in the next step. (example of measurement results) Step 2: Re-use the stand and settings from the previous step. Choose the object you want the PIR sensor to detect according to its size and temperature. The speed of its movement will also play a part. Start the program. When you move the object around, the PIR sensor and the sensor will be able to detect it and a buzzer will play a tone. If nothing is detected, the buzzer will stay quiet. Make sure you give the sensor enough time to recover from each detection (you measured this recovery time in the previous step). What did you find out? Are different objects detected in the same way? What role do temperature and speed plays in detecting movement? Extra mile: Putt a blanket into a freezer until it is frozen, then cover yourself with it and move in front of the sensor. Does it detect you? What if you hold a paper cover between you and the sensor? Can you trick the sensor? Examples of good practice: Technical notes: The PIR sensor can detect state changes only over longer time periods. The recovery time between two consecutive detections is about 5 s.Lesson 010 – Burglar alarm You need: iTriangle online, 4 in 1 sensor, buzzer 4 in 1 sensor Buzzer Introduction: An accelerometer is a sensor that measures how quickly an object moves from its rest position. The 3-axis accelerometer can simultaneously measure acceleration values ​​in the x, y and z axes. An accelerometer can be used to construct a motion vector, i.e., the direction of movement in space and the acceleration value in the given direction. Acceleration is reported in units of G, which is the acceleration due to gravity. For humans, acceleration or deceleration of around 20G will result in internal organ damage and death. Task: Learn how a 3-axis accelerometer works. Use a long cable to connect the accelerometer to iTriangle online so you can move the 4 in 1 sensor away from the rest of the construction. Construct a movement detector and use it as a safety module to detect the movement of the object it is attached to. Tutorial: Step 1 Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Choose an object you want the PIR sensor to detect. Start the graphical measurements. Try to move the sensor each time along one axis so that the measured value is constant – the acceleration along the given axis is constant. Another option is to move the sensor so that the acceleration value is zero – the speed is constant. What is the difference in sensor movements along different axes and at different speeds? Step 2 Re-use the stand and settings from the previous step. Attach the iTriangle online to an object of your choice that you want to have an alarm (cars usually have these alarms against burglars). Start the program (you can set limit values for the buzzer to start making noise – make sure it's not too low or high, some tweaking with the limit numbers might be needed) Challenge others to move your object from one place to another and hope that you set the alarm correctly! Extra mile: Place the sensor at rest in one place. If the value along one or more axes is non-zero, why? What is the value of the acceleration / negative acceleration (deceleration) you get by clapping your hands with the sensor in one of them? Construct a movement detector and use it as a safety module to detect the movement of the object it is attached to. Examples of good practice: Technical notes: The z-axis extends vertically upwards, the x-axis extends lengthwise from the connector across the sensor plate and the y-axis extends perpendicular to the x-axis along the description on the printed circuit board. Axis orientation is indicated on the printed circuit board for the following sensors: magnetometer, accelerometer and gyroscope.Lesson 011 – Soil moisture sensor You need: iTriangle online, soil moisture sensor, LED display 8x8 Soil moisture sensor Buzzer 8x8 LED display Introduction: The humidity sensor measures the current passing through individual electrodes. This current is dependent on the humidity and chemical composition of the monitored environment. The more water (ions) present in the environment, the more conductive the environment. A humidity sensor detects small currents in mA and low DC voltages up to 3.3V. However, weak electrolysis also takes place in the monitored environment. A very small amount of corrosion will occur on the electrodes, which will accumulate salts over a long time. The pH of the environment may also change over a longer period because of the chemical reaction. To prevent these phenomena from happening in long-term measurements, do not measure continuously for long periods and limit measurements only to a few per day. Task: Learn how to detect moisture in the soil of a plant and understand the principle of this measurement. Create an indicator for a plant that lets you know when more it needs more water. Tutorial: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Choose an object you want the PIR sensor to detect. Start the program. Four things may happen: If the water content is high, a happy face will show on the LED display If there is just enough water present, a neutral face will show on the LED display If there is not enough water in the soil, a sad face will show on the LED display If the soil is too dry, a sad face will show on the LED display and the buzzer will make a sound The program will run for 60 seconds  until "End of program" is shown on the LED display. The length of the program and  values for when different faces are shown on the LED display can be changed. Extra mile: Examples of good practice: Technical notes: Over time, corrosion will occur and the electrodes will lose their shine. To prolong the sensor’s functionality, clean and dry the electrodes thoroughly after each experiment. Do not use the sensor to measure the conductivity of alkaline or acidic liquids.Lesson 012 – Light sensor (advanced) You need: iTriangle online, light sensor, push button switch, 8x8 LED display 8x8 LED display Push button switch Light sensor Introduction: Light is the visible part of the spectrum of the electromagnetic radiation that surrounds us. Light is characterized mainly by colour and intensity, which depends directly on the light source. Light intensity is a physical quantity denoted by E and expresses the amount of light (luminous flux) falling on a surface. Its unit is lux (lx). The differences in light across Europe can be somewhere around 0.5 lx at night and up to 70,000 lx during the day. To measure the whole available spectrum, light sensors would need an enormous range. For this reason, the light sensor in this kit is set for much lower spectrum, as it is more accurate in lower light settings. Task: Measure the ability of different types of filters to allow light to go through them. Measure the differences between various materials, colours and thicknesses. Tutorial: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Choose a light source and different types of filters. Start the program. Press the push button switch to start the program. Measurements will repeat 20 times. If the light measured is lower than the value set in the program, the LED display will light up. Streets lights automatically turn on and off in a similar way. You can try different types of filters and distances of the filters from the light sensor (e.g., white or coloured paper, colourful plastics, glass, sun glasses or a glass alternately filled with liquids of different colours. You can also discover the different beam angles of various light sources (diodes, LED light bulbs, incandescent light bulbs, candles or similar). Extra mile: Examples of good practice: Technical notes: It is important to position the light sensor where other light sources will not affect the measurements (different light conditions outside or changing light conditions inside a room). If the light is too strong (direct sunlight), the sensor will become saturated. Its maximum measurable value is 1023. If you need to measure the strength of the light source, you can do so in the graphical representation of the measurements. Related tasks: 008Lesson 013 – Burglar alarm (advanced) You need: iTriangle online, PIR sensor, buzzer Buzzer Push button switch PIR motion sensor Introduction: Infrared radiation is a part of the electromagnetic spectrum that is invisible to the human eye. All objects that have a temperature above -273.15 °C (0 Kelvin) emit this thermal radiation. The natural temperature of human is around 37 °C. People therefore emit a large amount of heat that can be measured by PIR motion sensor. The PIR sensor measures temperature in different segments of its field of view. The temperature measured by each segment is individually evaluated and recorded for comparison with other segment measurements. Task: Use the motion detector (PIR sensor) that reacts to infrared light emitted by an object in motion. Construct a simplified version of a burglar alarm. Tutorial: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Choose the objects you want the alarm to detect. Start the program. To activate the burglar alarm, continuously press the push button switch until the buzzer produces two tones. The first tone is lower in pitch and second is higher. When you hear the second tone, release the push button switch. Now check what kind of objects it can detect. When the PIR sensor detects movement, the buzzer will play a melody as an alarm. You can deactivate the alarm by pressing the push button switch at any stage of the program – when you hear the high and low tones, you can release the push button switch and the alarm will be deactivated. The program is initially set to operate for one minute only. This time can be extended by adjusting certain values in the program. Extra mile: Examples of good practice: Technical notes: The PIR sensor can detect state changes only over longer time periods. The recovery time between two consecutive detections is about 5 s. Related tasks: 009Lesson 003 – Measuring the relative humidity of the environment You need: iTriangle online, 2 in 1 humidity and temperature sensor, polyethylene bag, straw, bowl made from a plastic bottle 2 in 1 sensor – humidity and temperature Introduction: The relative humidity of air indicates the ratio of the instantaneous amount of water vapour in the air to the water vapour content of the air at the same pressure and temperature at full saturation. It is stated as a percentage (%). Relative humidity is dependent on the air temperature and the amount of water vapour it contains. The higher the temperature, the higher the amount of water vapour the air can absorb. Conversely, the lower the temperature, the less water vapour the air can contain. The human body contains water in all its cells, its blood and tissue fluids. The body excretes water through breathing, sweating and passing urine. Water is replenished in the body through the intake of food and drink. The recommended daily intake of water is up to 3 liters. Without food, a person can survive for 14 days, without water, only a few days. This is why drinking enough water is very important. Task: Learn about the relative humidity of a place of your choice (your classroom, a corridor or outside) and compare it to the relative humidity measured in an open area with a bowl of water placed below the sensor, or a closed space with a bowl of water placed inside. At the end, you can check the humidity of your own breath. Tutorial: Step 1: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Decide on a place where you want to make your measurements. Start the graphical measurements. Observe the measurements for the open environment and any changes in humidity. We can verify experimentally the dependence of relative humidity on the differences in parameters such as: the surface area of the water where we make our measurements the distance of the water's surface to our measuring device the temperature of the water's surface where we make our measurements Step 2: Re-use the stand from the previous step. Fill the bowl from the plastic bottle with some water and place it under the sensor. Wrap everything into a polyethylene bag. Start your graphical measurements. Observe for changes in humidity in the closed environment. Water will evaporate and increase the relative humidity of the enclosed air until it is saturated with water vapour. A longer time is needed for these measurements. Compare and discuss the results of measurements from steps 1 and 2. Step 3: Reuse the stand from the previous steps and remove the moisture sensor from the holder. Place the moisture sensor into a polyethylene bag and insert a straw so that one end of the straw is inside and one end is in the open air. Seal the bag. Start the graphical measurements. Blow air in through the straw continuously and observe the changes in the graphical representation of the closed environment's humidity. Write the results of your measurements into the table below: Relative humidity of my breath Relative humidity of an open space Relative humidity above a freely placed bowl of water Relative humidity of a closed environment inside a polyethylene bag containing a bowl of water Step 1: Step 2: Step 3: Extra mile: Examples of good practice: Technical notes: Sample lesson You need: iTriangle MASTER online, buzzer, LED display, 2 in 1 humidity and temperature sensor, light sensor Buzzer LED display 2 in 1 humidity and temperature sensor Light sensor Introduction: Light is the visible part of the spectrum of the electromagnetic radiation that surrounds us. Light is characterized mainly by colour and intensity, which depends directly on the light source. Light intensity is a physical quantity denoted by E and expresses the amount of light (luminous flux) falling on a surface. Its unit is lux (lx). The differences in light across Europe can be somewhere around 0.5 lx at night and up to 70,000 lx during the day. To measure the whole available spectrum, light sensors would need an enormous range. For this reason, the light sensor in this kit is set for much lower spectrum, as it is more accurate in lower light settings. Task: Find out how the intensity of incident light changes depending on the light source, the distance from the light source and type of filters placed between the sensor and light source. Tutorial: Construct a simple stand with iTriangle online and connect the sensors and components as pictured below. Connect iTriangle online and upgrade its firmware by following these steps. Choose a light source and different types of filters. Start the program. Measured light values will be shown on the display. The display also shows measurements from the 2 in 1 humidity and temperature sensor. You can look at other lessons to see how to use the 2 in 1 sensor. Try different types of filters and place them at different distances from the light sensor (e.g., white or coloured paper, colourful plastics, glass, sun glasses or a glass alternately filled with liquids of different colours. You can also discover the different beam angles of various light sources (diodes, LED light bulbs, incandescent light bulbs, candles or similar). Measurements on LED display: Temp – temperature in °C Humid – relative humidity in % Lumin –- luminescence measured in a relative scale The online block programming is set up to measure the temperature, relative humidity and light levels 50 times and show the values ​​on the LED display. The Arduino program also continuously measures temperature, relative humidity and light and writes values ​​to the display. According to the amount of incident light, the buzzer will simultaneously play (or not play) different tones. If you reduce the amount of light to the sensor, the tones will also reduce. You can create a melody by moving the sensor between darker and lighter areas of illumination. Try using different light sources. Technical notes: iTriangle sensors and actors and their specifications Complete list of supported devices Name Interface Link 4 in 1 sensor I2C link Button Digital link Buzzer Digital link Continuous servo 360 dg Digital link Generic analog IN Analog link Generic digital IN Digital link Generic digital OUT Digital link Generic PWM OUT Digital link Hall Analog link IR Digital link LED matrix 8x8 I2C link LED stripe Digital link Light Analog link Luminance Analog link Moisture Analog link PIR motion Digital link High pressure Analog link Relay Digital link Servo 180 dg Digital link Sound Analog link One wire temperature Digital link Temperature and humidity Digital link High accuracy temperature and humidity I2C link Tone generator Digital link Ultrasonic Digital link Voltage Analog link Waterpump Digital link 4 in 1 sensor The iTriangle 4 in 1 sensor is based on the IMU 10DOF v2.0 and is an upgraded version of the IMU-10DOF and replaces BMP180 with BMP280. As the successor to the widely adopted BMP180, the BMP280 delivers high performance in all applications that require precise pressure measurement. This module is based on the MPU-9250 and BMP280. The MPU-9250 is a 9-axis MotionTracking device that combines a 3-axis gyroscope, 3-axis accelerometer, 3-axis magnetometer and a Digital Motion Processor (DMP). The BMP280 is a high precision, ultra-low power digital pressure sensor for consumer applications. This module is very suitable for application in smartphones, tablets and wearable devices. Specifications I2C Grove interface, including GND, VCC, SDA and SCL MPU-9250 I2C address selectable Low Power Consumption 400 kHz Fast Mode I2C for communicating with all registers Digital-output X-, Y- and Z-Axis angular rate sensors (gyroscopes) with a user-programmable full-scale range of ±250, ±500, ±1000 and ±2000 °/sec Digital-output 3-Axis accelerometer with a programmable full scale range of ±2, ±4, ±8 and ±16 g Digital-output magnetometer with a full scale range of ±4800 uT Digital-output barometer with range of 300 ~ 1100 hPa (+9000 m ~ -500 m relative to sea level) Dimensions: 25.43 mm x 20.35 mm Hardware Overview MPU-9250 I2C address select pad. Default connection a and b, address is 0x68. If b and c connection, address is 0x69 MPU-9250 interrupt pin. The interrupt should be configured, available interrupt sources are: motion detection, fifo overflow, data ready, i2c master error Orientation of Axes. The diagram below shows the orientation of the axes of sensitivity and the polarity of rotation. The BMP280 is an absolute barometric pressure sensor especially designed for mobile applications. The sensor module is housed in an extremely compact 8-pin metal-lid LGA package with a footprint of only 2.0 × 2.5 mm and 0.95 mm package height. Its small dimensions and a low power consumption of 2.7 μA @1Hz allow application in battery driven devices such as mobile phones, GPS modules or watches. Push button switch The iTriangle - Push button switch is a momentary switch type. It consists of one independent "momentary on/off" button. "Momentary" means that the button rebounds on its own after it is released. The button outputs a HIGH signal when pressed, and LOW when released. The pin marked "Sig" refers to "Signal" while "NC" refers to "No Connection". There are two versions of this button available as showed in the pictures. The only difference is the direction of the Grove socket. Features Easy to use momentary ON/OFF button Uses Standard 4-pin iTriangle Cables Buzzer The iTriangle - Buzzer module has a piezo buzzer as its main component. The piezo can be connected to digital outputs and will emit a tone when the output is HIGH. Alternatively, it can be connected to an analogue pulse-width modulation output to generate various tones and effects. Features Easy to use piezoelectric buzzer Uses Standard 4-pin iTriangle Cables Specifications Items Specification Operating Voltage 4–8 V Sound Output ≥85 dB Resonant Frequency 2300 ± 300 Hz Continuous servo 360 dg Generic analog IN Generic digital IN Generic digital OUT Generic PWM OUT Hall Sensor The iTriangle - Hall Sensor measures the Hall Effect, which is the production of a voltage difference across an electrical conductor transverse to an electric current in the conductor and a magnetic field perpendicular to the current. This device has a continuous-time switch. The output of this device switches low (turns on) when a magnetic field (south polarity) perpendicular to the Hall sensor exceeds the operating point threshold BOP, and switches high (turn off) when the magnetic field disappears. The switch can be used to measure RPM. Features iTriangle compatible interface 400 ns transition period for rise and fall. Continuous-time hall effect sensor Reverse battery protection Specifications Item Min Typical Max Unit Supply Voltage 3.8 5.0 24 V Supply Current 4.1 - 24 mA Operating Temperature -40 - 85 ºC IR Sensor The iTriangle - IR Distance Interrupter is used to detect any object blocking the path of light. The module consists of an IR LED and photosensor (phototransistor) pair. The light emitted by the IR LED is reflected by any object placed in front of the sensor. This reflection is detected by the photosensor (phototransistor). Any white (or lighter) coloured surface reflects more than a black (or darker) coloured surface. When the reflected light is detected, it produces a Digital HIGH (or Binary 1) output on the SIG pin. The on-board LED indicator will also glow. If no reflection is detected or if the object is too far from the sensor, the output on the SIG pin stays at Digital LOW (Binary 0). The on-board LED indicator will be off as well. The detectable range of this sensor is 7.5–40 cm. The module incorporates a Rail-to-Rail Operational Amplifier to amplify the output of phototransistor. There is a potentiometer that can be used to adjust the gain of the amplifier (detection sensitivity). With this sensor, you can build the following (but not limited to) applications: line-following robots, optical encoders and object counting applications. Features iTriangle compatible and easy to use Highly sensitive and reliable Larger detectable distance Adjustable sensitivity for various occasions More durable Specifications Parameter Value Operating voltage(V) 3.3 or 5 Volts Operating current(mA) Maximum: 20 mA Effective detectable distance 7.5–40 cm Weight 2.5 g (for the module), 8.5 g (packaged) Hardware Overview ITR9909 Reflective photosensor – highly sensitive reflective photosensor. LM393 operational amplifier – rail-to-rail operational amplifier. LED Indicator – the LED will turn on when the received infrared light intensity exceeds a preset level. Light sensitivity adjusting potentiometer – adjust the sensitivity of reflective photosensor to light. LED matrix 8x8 LED stripe Light sensor The iTriangle - Light sensor integrates a photo-resistor (light dependent resistor) to detect the intensity of light. The resistance of the photo-resistor decreases as the intensity of light increases. A dual OpAmp chip LM358 on board produces voltage corresponding to the intensity of light (i.e., based on resistance value). The output signal is an analogue value. The brighter the light, the larger the value. This module can be used to build, for example, a light controlled switch that turns off lights during the day and turns them on at night. The light sensor value only approximates the intensity of light, it DOES NOT represent the exact Lumen value. Features Analogue value output High reliability and sensitivity Small footprint Detects a broad spectrum of light Specifications Item Value Operating voltage 3~5 V Operating current 0.5~3 mA Response time 20–30 milliseconds Peak Wavelength 540 nm Weight 4 g Luminance sensor The iTriangle - Luminance sensor detects the intensity of the ambient light on a surface area. It uses an APDS-9002 analogue output ambient light photo sensor. This has response similar to the human eye. This Luminance sensor can be used in applications where automated residential or commercial light adjustment is required. Specifications Parameter Value VCC 2.4~5.5 V Linear output range 0.0~2.3 V Luminance measurement range 0~1000 Lux Moisture sensor The iTriangle - Moisture sensor can be used to detect moisture in soil or determine whether water is near the sensor. Let the plant in your garden reach out for human help when it is thirsty! This sensor is very easy to use. Simply insert it in into the soil and read the data. With this sensor, you can create a little project for your plant to send you a message such as "I 'm thirsty, please water me!" Features Soil moisture sensor for measuring soil electrical resistance Easy to use 2.0 cm X 6.0 cm module Specifications Item Condition Min Typical Max Unit Voltage - 3.3 - 5 V Current - 0 - 35 mA Output Value Sensor in dry soilSensor in humid soilSensor in water 0300700 - 300700950 - PIR motion sensor The iTriangle - PIR motion sensor is used for making motion detecting applications such as alarm burglar systems, visitor presence monitoring, light switches and robots. This motion sensor is a compact, low power consumption and cost effective PIR sensor suitable for applications with relatively small detection distance requirements. The detection distance in the datasheet is 3–5 m, though we recommend 2m as the best detection distance and 25 ℃ as the most suitable temperature during use. The sensitivity of the sensor is adjustable. A reserved pin out on the back of the board allows you to solder a slide rheostat to adjust the sensitivity. If you think the sensor is not sensitive enough, raising the plastic cap slightly will help enhance its sensitivity. Please note that the sensor's orientation can influence its sensitivity. For more accurate detection, please place the sensor as in the picture below. Features Low power consumption Adjustable sensitivity Grove interface Specifications Dimensions 20  x 20 x 12 mm Weight G.W 8g Battery Not included Sensor chip S16-L221D Supply Voltage 2.7–3.3 V Working Current 12–20 μA Sensitivity 120–530 μV Max. detection range 2 m (@25 ℃) High pressure Relay The iTriangle-Relay module is a digital normally-open switch. This module allows you to control high voltage circuits with low voltage, for example, 5 volts on the controller. It has an indicator LED on board, that lights up when the controlled terminals are closed. Specifications Parameter V1.2 Operating Voltage 3.3~5 V Operating Current 100 mA Relay Life 100,000 Cycles Max Switching Voltage 250 V AC/30 V DC Max Switching Current 5 A Servo 180 dg The iTriangle - Servo is DC motor with gears and a feedback system. It can be used in robot driving mechanisms. The module is a bonus product for iTriangle lovers. We have added a standard iTriangle standard to the three-wire servo. You can now plug and play the motor as any typical iTriangle module without any interference from jumper wires. If you prefer a proto servo, see the EMAX 9g ES08A High Sensitive Mini Servo. They are the same model and both of good quality with a low price. Features Small size iTriangle compatible interface Easy to use Specifications Item Min Typical Max Unit Working Voltage 4.8 5.0 6.0 V Torque 1.5/1.8 Kg.cm Speed 0.12/0.16 s/60° Size 32 x 11.5 x 24 mm Weight 8.5 g Sound sensor The iTriangle - Sound sensor can detect the sound intensity of the environment. The main component of the module is a simple microphone, which is based on an LM386 amplifier and an electret microphone. This module's output is analogue and can be easily sampled and tested with iTriangle. Features Easy to use Provides an analogue output signal Easily integrates with logic modules on the input side of iTriangle circuits This sound sensor is used only to detect the presence of sound in the nearby environment. Please do not use the module to collect sound signals. For example, you can use it to make a sound activated lamp, but not as a recording device. Specifications Item Value Operating Voltage Range 3.⅗ V Operating Current (VCC=5 V) 4~5 mA Voltage Gain (V=6 V, f=1 kHz) 26 dB Microphone sensitivity (1 kHz) 52–48 dB Microphone Impedance 2.2k Ohm Microphone Frequency 16–20 kHz Microphone S/N Radio 54 dB Thermometer The iTriangle - Thermometer has a waterproof probe suitable for temperature detection immersed in water and a 2-m long wire. The chip inside this sensor is DS18B20, which is widely used. The original version has three wires inside. To get it working with iTriangle, you need to add extra resistance. We have adjusted this sensor with extra resistance and a connection port so it can be used as a regular iTriangle sensor. This makes it easy to connect a one wire temperature sensor for Seeeduino, which is derived from Arduino and compatible with all Arduino platforms. For convenience, we have listed some resources at the bottom of this page. You can also find many resources from Google or other OSHW communities. The cable cannot be subjected to temperatures over 70 °C for extended periods. Features Requires only one wire for data interface Waterproof iTriangle compatible Accepts 3.0–5.5 V power supply Wide temperature sensitivity range: -55 °C to +125 °C High accuracy: ±0.5 °C (-10 °C to +85 °C) Temperature and humidity sensor The iTriangle - Temperature & Humidity sensor provides a pre-calibrated digital output. A unique capacitive sensor element measures relative humidity and a negative temperature coefficient (NTC) thermistor measures temperature. It has excellent reliability and long term stability. Please note that this sensor will not work for temperatures below zero Celsius. Features Relative Humidity and temperature measurement Calibrated, full-range temperature compensation Digital signal Long term stability Long transmission distance (>20 m) Low power consumption Specifications Items Min PCB Size 2.0 x 4.0 cm Interface 2.0 mm pitch pin header IO Structure SIG, VCC, GND, NC ROHS YES Electronic Characteristics Items Conditions Min Norm Max Unit VCC - 3.3 - 5 Volts Measuring Current Supply - 1.3 - 2.1 mA Average Current Supply - 0.5 - 1.1 mA Measuring Range Humidity 20% - 90% RH Temperature 0 - 50 °C Accuracy Humidity - - ±5% RH Temperature ±2 °C Sensitivity Humidity - 1% RH Temperature 1 °C Repeatability Humidity ±1% RH Temperature ±1 °C Long-term Stability ±1% RH/year Signal Collecting Period 2 S High accuracy temperature and humidity sensor This is a multi-functional sensor that gives you temperature and relative humidity information simultaneously. It utilizes a TH02 sensor that can meet measurement requirements for general purposes. It provides reliable readings in an environment with humidity conditions of 0–80% RH and temperatures of 0–70°C, covering the needs of most home and daily applications not subject to extreme conditions. Specifications Broad operating voltage range (3.3~5 V) Low Power Consumption (350 µA during RH conversion) 0 to 100% RH operating range Measuring Range: Humidity: 0–80% RH Temperature: 0~70 °C Accuracy: Humidity: ±4.5 % RH Temperature: ±0.5 °C I2C host interface Excellent long term stability Tone generator Ultrasonic ranger The iTriangle - Ultrasonic ranger is a non-contact distance measurement module that works at 40 KHz. When a pulse trigger signal with more than 10 uS is provided through the signal pin, the module will issue 8 cycles of 40 kHz and detect the echo. The pulse width of the echo signal is proportional to the measured distance according to the formula: distance = echo signal high time * Sound speed (340 m/s)/2. The Ultrasonic Ranger's TRIG and ECHO signal share 1 SIG pin. Do not hot plug the ultrasonic ranger, otherwise the sensor will be damaged. The measured area must be no less than 0.5 square meters and smooth. Specifications Parameter Value/Range Operating voltage 3.2~5.2 V Operating current 8 mA Ultrasonic frequency 40 kHz Measuring range 2–350 cm Resolution 1 cm Output PWM Size 50 x 25 x 16 mm Weight 13 g Measurement angle 15° Working temperature -10~60 °C Trigger signal 10 uS TTL Echo signal TTL Voltage sensor The iTriangle – Voltage sensor provides an interface for measuring external voltage, eliminating the need to connect a resistance to input interface. The voltage gain can be selected via a dial switch. The module is easy to use. Features External voltage interface and iTriangle compatible Easy to use Adjustable gain Specifications Item Min Typical Max Unit Working Voltage 4.7 5.0 5.3 VDC Measurement Accuracy / <=1 / % External Voltage Range (select 3) 0.3 / 12.9 V External Voltage Range (Select 10) 1.0 / 43 V Dimensions / 24 x 20 / mm Waterpump TODO The first look and your first experiment with iTriangle MASTER TODO The first look and your first experiment with iTriangle 4.0 online central unit